diff --git a/DEPS b/DEPS
index 423e3f6..0f257d45 100644
--- a/DEPS
+++ b/DEPS
@@ -299,15 +299,15 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': 'bda263d1662f5265d5068a39e708655ce8d57dd8',
+  'skia_revision': 'a164720807546097088f7f3aaafaa3abcb76ca7f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': '540f15a2c7bd2d0a93e041553a46c2fe7f979eb3',
+  'v8_revision': 'b39d2f97cf09c6a9e07b49329c8be08eb7ea1184',
   # 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': 'f76ecaeed1d0188b52f293af27922518a23d878e',
+  'angle_revision': 'c23dbe331608d869927fd104d15c5be272e4c706',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -350,7 +350,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling freetype
   # and whatever else without interference from each other.
-  'freetype_revision': '713580f41dcc2054d7fa56265f03eeb9c67e0937',
+  'freetype_revision': '7f9499044e3baa901de99251a007aa66e750b26c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling freetype
   # and whatever else without interference from each other.
@@ -386,7 +386,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': '3f06e8987583e27960ce523aec58ac78853bf3a5',
+  'devtools_frontend_revision': '628c4c4d103b1c6466f33f9a6ce497435307376a',
   # 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.
@@ -426,7 +426,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': '2d6f90771b4745441e281aee5d40d4148a508bfc',
+  'dawn_revision': 'db9d4453f87b98813c230b3a908c60c472ccf506',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -470,11 +470,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'libcxxabi_revision':    'f7460fc60ab56553f0b3b0853f1ea60aa51b9478',
+  'libcxxabi_revision':    '5559ffe8ca32471e894f4cb04b7d18d28862677f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'libunwind_revision':    'c4ed9cba55ce96b94a1f676890dcac8673cdedfd',
+  'libunwind_revision':    'aecf8d01b908e9dbfe6741da2fe7425879df3537',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -490,7 +490,7 @@
 
   # If you change this, also update the libc++ revision in
   # //buildtools/deps_revisions.gni.
-  'libcxx_revision':       '43c39fecf3aa3cd542e41ffa8720720a1629ff41',
+  'libcxx_revision':       'abad4bb576d98d81c2d5861c3862cc87145f7dad',
 
   # GN CIPD package version.
   'gn_version': 'git_revision:b25a2f8c2d33f02082f0f258350f5e22c0973108',
@@ -764,7 +764,7 @@
 
   'src/clank': {
     'url': 'https://chrome-internal.googlesource.com/clank/internal/apps.git' + '@' +
-    '6919860fdbee73e3412420f7777172aaa21e5aaf',
+    '05019a17e835afa456f4fd6e6accb0196d543c08',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -863,7 +863,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/linux-amd64',
-          'version': 'ASXxLj9jOzDFy1UqFP4fx7EKVHk8DU-bJH9Eg5teH4AC',
+          'version': 'Iwuz6pGPpzrtCE1rn9cApzxm7n1gjt0kv7W1YXhYC0cC',
         },
       ],
       'dep_type': 'cipd',
@@ -874,7 +874,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/mac-amd64',
-          'version': '5riL5eBswRhKMeQXrej2uBm5vkbQqRmRHQN0UHMQPkoC',
+          'version': 'qic_nW46s3VENogeZuhkZ1Ifi0ug1Eht_hogKi2A7JcC',
         },
       ],
       'dep_type': 'cipd',
@@ -953,7 +953,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'Q8JPQbrQ0L3piEiSuY49ZgHsn3rkbi1UpetSEm8GmCYC',
+          'version': 'waVlDuvM1_o0siiUN39LBaTpj0pfqoBRglXQgdicJicC',
       },
     ],
     'condition': 'checkout_android',
@@ -1174,7 +1174,7 @@
   # Tools used when building Chrome for Chrome OS. This affects both the Simple
   # Chrome workflow, as well as the chromeos-chrome ebuild.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '0c0617fd0903c94dd3b0440b5200de00041c99b6',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'd8b809e8e21d67eb17bd3c32350111def487f90f',
       'condition': 'checkout_chromeos',
   },
 
@@ -1212,7 +1212,7 @@
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
 
   'src/third_party/devtools-frontend-internal': {
-      'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '94992adedb6758d99cce5bf56e83f00c46de8c91',
+      'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + 'aef22f715178521044bb96955acd32e8632b7f0d',
     'condition': 'checkout_src_internal',
   },
 
@@ -1684,7 +1684,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'f396a983fe100dec36e2c7d9285ca8a74e0ade91',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'e85c60ec550a5b4f09e5e8efcad6b355f5a7c52d',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1724,7 +1724,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/r8',
-              'version': 'zPOmDMk4QXwcUPUy6oi9KUfzwEIlk0aIB0fl0KQWCGAC',
+              'version': 'PwglNZFRNPkBBXdnY9NfrZFk2ULWDTRxhV9rl2kvkpUC',
           },
       ],
       'condition': 'checkout_android',
@@ -1869,7 +1869,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '6c8361e98f1daba65902f5e2fc1297893ac14b67',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '8188e59076fb8e80ae66bf716474d9dea7deed65',
+    Var('webrtc_git') + '/src.git' + '@' + '262b2d8509eb8a7d31b2d04e82ded32d8f832ead',
 
   # Wuffs' canonical repository is at github.com/google/wuffs, but we use
   # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file.
@@ -1939,7 +1939,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@ee60eaa85819ddb1ed0b58c5f0d4fcb5225ba131',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@c5df4847594059f78c806a2efcff11bbd5b281c4',
     'condition': 'checkout_src_internal',
   },
 
@@ -1969,7 +1969,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': 'kfBmEH0HYrsxJ3dRE4eqoYadu5PS8mP1_5rMbxr6DCgC',
+        'version': 'IxILSYlC0YHXfaGjZ1PCXk7FjnJctVaEJzRlAraZcX4C',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 37075ae..b258a336 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -2949,7 +2949,6 @@
             r"^chrome/chrome_elf/dll_hash/dll_hash_main\.cc$",
             r"^chrome/installer/setup/.*",
             r"^chromecast/",
-            r"^components/browser_watcher/dump_stability_report_main_win\.cc$",
             r"^components/media_control/renderer/media_playback_options\.cc$",
             r"^components/policy/core/common/policy_logger\.cc$",
             r"^components/viz/service/display/"
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java
index 14e8cbd..e747194 100644
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java
@@ -65,6 +65,7 @@
 import org.chromium.android_webview.gfx.AwDrawFnImpl;
 import org.chromium.android_webview.renderer_priority.RendererPriority;
 import org.chromium.base.ThreadUtils;
+import org.chromium.base.compat.ApiHelperForO;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.ScopedSysTraceEvent;
 import org.chromium.components.content_capture.ContentCaptureFeatures;
@@ -488,6 +489,11 @@
                 }
             }
 
+            // Needed for https://crbug.com/1417872
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+                ApiHelperForO.setDefaultFocusHighlightEnabled(mWebView, false);
+            }
+
             if (mAppTargetSdkVersion >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
                 // If the app targets >= JB MR2 then we require that WebView is only used from a
                 // single thread. So, we:
diff --git a/ash/clipboard/clipboard_history_controller_impl.cc b/ash/clipboard/clipboard_history_controller_impl.cc
index c640d8c..993b6ae 100644
--- a/ash/clipboard/clipboard_history_controller_impl.cc
+++ b/ash/clipboard/clipboard_history_controller_impl.cc
@@ -284,6 +284,9 @@
 }
 
 void ClipboardHistoryControllerImpl::Shutdown() {
+  if (IsMenuShowing()) {
+    context_menu_->Cancel();
+  }
   nudge_controller_.reset();
 }
 
@@ -875,6 +878,7 @@
   ui::KeyEvent ctrl_release(ui::ET_KEY_RELEASED, ui::VKEY_CONTROL, ui::EF_NONE);
   host->DeliverEventToSink(&ctrl_release);
 
+  clipboard_history_util::RecordClipboardHistoryItemPasted(item);
   base::UmaHistogramEnumeration("Ash.ClipboardHistory.PasteType", paste_type);
 
   for (auto& observer : observers_)
diff --git a/ash/clipboard/clipboard_history_menu_model_adapter.cc b/ash/clipboard/clipboard_history_menu_model_adapter.cc
index 8e7db67..23b0b0d3 100644
--- a/ash/clipboard/clipboard_history_menu_model_adapter.cc
+++ b/ash/clipboard/clipboard_history_menu_model_adapter.cc
@@ -395,7 +395,8 @@
 
   std::unique_ptr<ClipboardHistoryItemView> item_view =
       ClipboardHistoryItemView::CreateFromClipboardHistoryItem(
-          GetItemFromCommandId(command_id), resource_manager_, container);
+          GetItemFromCommandId(command_id).id(), clipboard_history_,
+          resource_manager_, container);
   item_view->Init();
   item_views_by_command_id_.insert(std::make_pair(command_id, item_view.get()));
   container->AddChildView(std::move(item_view));
diff --git a/ash/clipboard/views/clipboard_history_bitmap_item_view.cc b/ash/clipboard/views/clipboard_history_bitmap_item_view.cc
index df94c0df..9a5c4469 100644
--- a/ash/clipboard/views/clipboard_history_bitmap_item_view.cc
+++ b/ash/clipboard/views/clipboard_history_bitmap_item_view.cc
@@ -50,13 +50,14 @@
                       public ui::ImplicitAnimationObserver,
                       public ClipboardHistoryResourceManager::Observer {
  public:
-  FadeImageView(const ClipboardHistoryItem* clipboard_history_item,
-                const ClipboardHistoryResourceManager* resource_manager,
-                base::RepeatingClosure update_callback)
-      : views::ImageView(),
+  FadeImageView(
+      base::RepeatingCallback<const ClipboardHistoryItem*()> item_resolver,
+      const ClipboardHistoryResourceManager* resource_manager,
+      base::RepeatingClosure update_callback)
+      : item_resolver_(item_resolver),
         resource_manager_(resource_manager),
-        clipboard_history_item_(*clipboard_history_item),
         update_callback_(update_callback) {
+    DCHECK(item_resolver_);
     resource_manager_->AddObserver(this);
     SetImageFromModel();
     DCHECK(update_callback_);
@@ -74,8 +75,10 @@
   // ClipboardHistoryResourceManager::Observer:
   void OnCachedImageModelUpdated(
       const std::vector<base::UnguessableToken>& item_ids) override {
-    if (!base::Contains(item_ids, clipboard_history_item_.id()))
+    const auto* item = item_resolver_.Run();
+    if (!item || !base::Contains(item_ids, item->id())) {
       return;
+    }
 
     // Fade the old image out, then swap in the new image.
     DCHECK_EQ(FadeAnimationState::kNoFadeAnimation, animation_state_);
@@ -115,11 +118,11 @@
   void SetImageFromModel() {
     // TODO(b/267677307): Make cached image an item field, set and updated
     // directly by the resource manager.
-    const gfx::ImageSkia& image =
-        *(resource_manager_->GetImageModel(clipboard_history_item_)
-              .GetImage()
-              .ToImageSkia());
-    SetImage(image);
+    if (const auto* item = item_resolver_.Run()) {
+      const gfx::ImageSkia& image =
+          *(resource_manager_->GetImageModel(*item).GetImage().ToImageSkia());
+      SetImage(image);
+    }
 
     // When fading in a new image, the ImageView's image has likely changed
     // sizes.
@@ -138,11 +141,12 @@
   // The current animation state.
   FadeAnimationState animation_state_ = FadeAnimationState::kNoFadeAnimation;
 
-  // The resource manager, owned by ClipboardHistoryController.
-  const ClipboardHistoryResourceManager* const resource_manager_;
+  // Generates a *possibly null* pointer to the clipboard history item
+  // represented by this image.
+  base::RepeatingCallback<const ClipboardHistoryItem*()> item_resolver_;
 
-  // The ClipboardHistoryItem represented by this class.
-  const ClipboardHistoryItem clipboard_history_item_;
+  // Owned by `ClipboardHistoryController`.
+  const ClipboardHistoryResourceManager* const resource_manager_;
 
   // Used to notify of image changes.
   base::RepeatingClosure update_callback_;
@@ -220,11 +224,17 @@
   }
 
   std::unique_ptr<views::ImageView> BuildImageView() {
-    const auto* clipboard_history_item = container_->clipboard_history_item();
+    const auto* clipboard_history_item = container_->GetClipboardHistoryItem();
+    DCHECK(clipboard_history_item);
     switch (container_->data_format_) {
       case ui::ClipboardInternalFormat::kHtml:
         return std::make_unique<FadeImageView>(
-            clipboard_history_item, container_->resource_manager_,
+            // `Unretained()` is safe because `container_` will ultimately own
+            // this `FadeImageView`.
+            base::BindRepeating(
+                &ClipboardHistoryBitmapItemView::GetClipboardHistoryItem,
+                base::Unretained(container_)),
+            container_->resource_manager_,
             base::BindRepeating(&BitmapContentsView::UpdateImageViewSize,
                                 weak_ptr_factory_.GetWeakPtr()));
       case ui::ClipboardInternalFormat::kPng: {
@@ -302,13 +312,14 @@
 // ClipboardHistoryBitmapItemView
 
 ClipboardHistoryBitmapItemView::ClipboardHistoryBitmapItemView(
-    const ClipboardHistoryItem* clipboard_history_item,
+    const base::UnguessableToken& item_id,
+    const ClipboardHistory* clipboard_history,
     const ClipboardHistoryResourceManager* resource_manager,
     views::MenuItemView* container)
-    : ClipboardHistoryItemView(clipboard_history_item, container),
+    : ClipboardHistoryItemView(item_id, clipboard_history, container),
       resource_manager_(resource_manager),
       data_format_(*clipboard_history_util::CalculateMainFormat(
-          clipboard_history_item->data())) {
+          GetClipboardHistoryItem()->data())) {
   switch (data_format_) {
     case ui::ClipboardInternalFormat::kHtml:
       SetAccessibleName(
diff --git a/ash/clipboard/views/clipboard_history_bitmap_item_view.h b/ash/clipboard/views/clipboard_history_bitmap_item_view.h
index d0d9fa64..b30c47f7 100644
--- a/ash/clipboard/views/clipboard_history_bitmap_item_view.h
+++ b/ash/clipboard/views/clipboard_history_bitmap_item_view.h
@@ -5,12 +5,13 @@
 #ifndef ASH_CLIPBOARD_VIEWS_CLIPBOARD_HISTORY_BITMAP_ITEM_VIEW_H_
 #define ASH_CLIPBOARD_VIEWS_CLIPBOARD_HISTORY_BITMAP_ITEM_VIEW_H_
 
-#include "ash/clipboard/clipboard_history_item.h"
 #include "ash/clipboard/views/clipboard_history_item_view.h"
+#include "base/unguessable_token.h"
 #include "ui/base/clipboard/clipboard_data.h"
 #include "ui/base/metadata/metadata_header_macros.h"
 
 namespace ash {
+class ClipboardHistory;
 class ClipboardHistoryResourceManager;
 
 // The menu item showing a bitmap.
@@ -18,7 +19,8 @@
  public:
   METADATA_HEADER(ClipboardHistoryBitmapItemView);
   ClipboardHistoryBitmapItemView(
-      const ClipboardHistoryItem* clipboard_history_item,
+      const base::UnguessableToken& item_id,
+      const ClipboardHistory* clipboard_history,
       const ClipboardHistoryResourceManager* resource_manager,
       views::MenuItemView* container);
   ClipboardHistoryBitmapItemView(const ClipboardHistoryBitmapItemView& rhs) =
diff --git a/ash/clipboard/views/clipboard_history_file_item_view.cc b/ash/clipboard/views/clipboard_history_file_item_view.cc
index 8a26c07..244ba49 100644
--- a/ash/clipboard/views/clipboard_history_file_item_view.cc
+++ b/ash/clipboard/views/clipboard_history_file_item_view.cc
@@ -23,9 +23,10 @@
 namespace ash {
 
 ClipboardHistoryFileItemView::ClipboardHistoryFileItemView(
-    const ClipboardHistoryItem* clipboard_history_item,
+    const base::UnguessableToken& item_id,
+    const ClipboardHistory* clipboard_history,
     views::MenuItemView* container)
-    : ClipboardHistoryTextItemView(clipboard_history_item, container) {}
+    : ClipboardHistoryTextItemView(item_id, clipboard_history, container) {}
 ClipboardHistoryFileItemView::~ClipboardHistoryFileItemView() = default;
 
 std::unique_ptr<ClipboardHistoryFileItemView::ContentsView>
@@ -33,12 +34,14 @@
   auto contents_view = ClipboardHistoryTextItemView::CreateContentsView();
 
   // `file_icon` should be `contents_view`'s first child.
-  views::ImageView* file_icon = contents_view->AddChildViewAt(
-      std::make_unique<views::ImageView>(), /*index=*/0);
-  file_icon->SetImageSize(kIconSize);
-  file_icon->SetProperty(views::kMarginsKey, kIconMargin);
-  file_icon->SetImage(clipboard_history_util::GetIconForFileClipboardItem(
-      clipboard_history_item(), base::UTF16ToUTF8(text())));
+  if (const auto* item = GetClipboardHistoryItem()) {
+    views::ImageView* file_icon = contents_view->AddChildViewAt(
+        std::make_unique<views::ImageView>(), /*index=*/0);
+    file_icon->SetImageSize(kIconSize);
+    file_icon->SetProperty(views::kMarginsKey, kIconMargin);
+    file_icon->SetImage(clipboard_history_util::GetIconForFileClipboardItem(
+        item, base::UTF16ToUTF8(text())));
+  }
 
   return contents_view;
 }
diff --git a/ash/clipboard/views/clipboard_history_file_item_view.h b/ash/clipboard/views/clipboard_history_file_item_view.h
index 5b0ab604..a50e15be 100644
--- a/ash/clipboard/views/clipboard_history_file_item_view.h
+++ b/ash/clipboard/views/clipboard_history_file_item_view.h
@@ -6,6 +6,7 @@
 #define ASH_CLIPBOARD_VIEWS_CLIPBOARD_HISTORY_FILE_ITEM_VIEW_H_
 
 #include "ash/clipboard/views/clipboard_history_text_item_view.h"
+#include "base/unguessable_token.h"
 #include "ui/base/metadata/metadata_header_macros.h"
 
 namespace views {
@@ -13,14 +14,15 @@
 }
 
 namespace ash {
+class ClipboardHistory;
 
 // The menu item showing the copied file.
 class ClipboardHistoryFileItemView : public ClipboardHistoryTextItemView {
  public:
   METADATA_HEADER(ClipboardHistoryFileItemView);
-  ClipboardHistoryFileItemView(
-      const ClipboardHistoryItem* clipboard_history_item,
-      views::MenuItemView* container);
+  ClipboardHistoryFileItemView(const base::UnguessableToken& item_id,
+                               const ClipboardHistory* clipboard_history,
+                               views::MenuItemView* container);
   ClipboardHistoryFileItemView(const ClipboardHistoryFileItemView& rhs) =
       delete;
   ClipboardHistoryFileItemView& operator=(
diff --git a/ash/clipboard/views/clipboard_history_item_view.cc b/ash/clipboard/views/clipboard_history_item_view.cc
index aa7c95f..a0f9018 100644
--- a/ash/clipboard/views/clipboard_history_item_view.cc
+++ b/ash/clipboard/views/clipboard_history_item_view.cc
@@ -4,6 +4,7 @@
 
 #include "ash/clipboard/views/clipboard_history_item_view.h"
 
+#include "ash/clipboard/clipboard_history.h"
 #include "ash/clipboard/clipboard_history_item.h"
 #include "ash/clipboard/clipboard_history_util.h"
 #include "ash/clipboard/views/clipboard_history_bitmap_item_view.h"
@@ -15,6 +16,7 @@
 #include "base/auto_reset.h"
 #include "base/functional/bind.h"
 #include "base/metrics/histogram_macros.h"
+#include "base/unguessable_token.h"
 #include "ui/accessibility/ax_node_data.h"
 #include "ui/base/clipboard/clipboard_data.h"
 #include "ui/base/metadata/metadata_impl_macros.h"
@@ -28,6 +30,15 @@
 namespace ash {
 namespace {
 using Action = clipboard_history_util::Action;
+
+const ClipboardHistoryItem* GetClipboardHistoryItemImpl(
+    const base::UnguessableToken& item_id,
+    const ClipboardHistory* clipboard_history) {
+  const auto& items = clipboard_history->GetItems();
+  const auto& item_iter =
+      base::ranges::find(items, item_id, &ClipboardHistoryItem::id);
+  return item_iter == items.cend() ? nullptr : &(*item_iter);
+}
 }  // namespace
 
 ClipboardHistoryItemView::ContentsView::ContentsView(
@@ -72,30 +83,37 @@
 // static
 std::unique_ptr<ClipboardHistoryItemView>
 ClipboardHistoryItemView::CreateFromClipboardHistoryItem(
-    const ClipboardHistoryItem& item,
+    const base::UnguessableToken& item_id,
+    const ClipboardHistory* clipboard_history,
     const ClipboardHistoryResourceManager* resource_manager,
     views::MenuItemView* container) {
-  const auto display_format = item.display_format();
+  const auto* item = GetClipboardHistoryItemImpl(item_id, clipboard_history);
+  const auto display_format = item->display_format();
   UMA_HISTOGRAM_ENUMERATION(
       "Ash.ClipboardHistory.ContextMenu.DisplayFormatShown", display_format);
   switch (display_format) {
     case ClipboardHistoryItem::DisplayFormat::kText:
-      return std::make_unique<ClipboardHistoryTextItemView>(&item, container);
+      return std::make_unique<ClipboardHistoryTextItemView>(
+          item_id, clipboard_history, container);
     case ClipboardHistoryItem::DisplayFormat::kPng:
     case ClipboardHistoryItem::DisplayFormat::kHtml:
       return std::make_unique<ClipboardHistoryBitmapItemView>(
-          &item, resource_manager, container);
+          item_id, clipboard_history, resource_manager, container);
     case ClipboardHistoryItem::DisplayFormat::kFile:
-      return std::make_unique<ClipboardHistoryFileItemView>(&item, container);
+      return std::make_unique<ClipboardHistoryFileItemView>(
+          item_id, clipboard_history, container);
   }
 }
 
 ClipboardHistoryItemView::~ClipboardHistoryItemView() = default;
 
 ClipboardHistoryItemView::ClipboardHistoryItemView(
-    const ClipboardHistoryItem* clipboard_history_item,
+    const base::UnguessableToken& item_id,
+    const ClipboardHistory* clipboard_history,
     views::MenuItemView* container)
-    : clipboard_history_item_(clipboard_history_item), container_(container) {}
+    : item_id_(item_id),
+      clipboard_history_(clipboard_history),
+      container_(container) {}
 
 bool ClipboardHistoryItemView::AdvancePseudoFocus(bool reverse) {
   if (pseudo_focus_ == PseudoFocus::kEmpty) {
@@ -241,23 +259,9 @@
   Activate(Action::kSelectItemHoveredByMouse, ui::EF_NONE);
 }
 
-void ClipboardHistoryItemView::MaybeRecordButtonPressedHistogram() const {
-  switch (action_) {
-    case Action::kDelete:
-      clipboard_history_util::RecordClipboardHistoryItemDeleted(
-          *clipboard_history_item_);
-      return;
-    case Action::kPaste:
-      clipboard_history_util::RecordClipboardHistoryItemPasted(
-          *clipboard_history_item_);
-      return;
-    case Action::kSelect:
-    case Action::kSelectItemHoveredByMouse:
-      return;
-    case Action::kEmpty:
-      NOTREACHED();
-      return;
-  }
+const ClipboardHistoryItem* ClipboardHistoryItemView::GetClipboardHistoryItem()
+    const {
+  return GetClipboardHistoryItemImpl(item_id_, clipboard_history_);
 }
 
 gfx::Size ClipboardHistoryItemView::CalculatePreferredSize() const {
@@ -284,7 +288,6 @@
   DCHECK_NE(action_, action);
 
   base::AutoReset<Action> action_to_take(&action_, action);
-  MaybeRecordButtonPressedHistogram();
 
   views::MenuDelegate* delegate = container_->GetDelegate();
   const int command_id = container_->GetCommand();
diff --git a/ash/clipboard/views/clipboard_history_item_view.h b/ash/clipboard/views/clipboard_history_item_view.h
index 0db6583..5aea624 100644
--- a/ash/clipboard/views/clipboard_history_item_view.h
+++ b/ash/clipboard/views/clipboard_history_item_view.h
@@ -7,6 +7,7 @@
 
 #include "ash/ash_export.h"
 #include "ash/clipboard/clipboard_history_util.h"
+#include "base/unguessable_token.h"
 #include "ui/base/metadata/metadata_header_macros.h"
 #include "ui/views/view.h"
 #include "ui/views/view_targeter_delegate.h"
@@ -16,6 +17,7 @@
 }  // namespace views
 
 namespace ash {
+class ClipboardHistory;
 class ClipboardHistoryDeleteButton;
 class ClipboardHistoryItem;
 class ClipboardHistoryMainButton;
@@ -27,7 +29,8 @@
   METADATA_HEADER(ClipboardHistoryItemView);
   static std::unique_ptr<ClipboardHistoryItemView>
   CreateFromClipboardHistoryItem(
-      const ClipboardHistoryItem& item,
+      const base::UnguessableToken& item_id,
+      const ClipboardHistory* clipboard_history,
       const ClipboardHistoryResourceManager* resource_manager,
       views::MenuItemView* container);
 
@@ -106,18 +109,14 @@
     ClipboardHistoryItemView* const container_;
   };
 
-  ClipboardHistoryItemView(const ClipboardHistoryItem* clipboard_history_item,
+  ClipboardHistoryItemView(const base::UnguessableToken& item_id,
+                           const ClipboardHistory* clipboard_history,
                            views::MenuItemView* container);
 
-  // Maybe record histograms after the button is pressed.
-  void MaybeRecordButtonPressedHistogram() const;
-
   // Creates the contents view.
   virtual std::unique_ptr<ContentsView> CreateContentsView() = 0;
 
-  const ClipboardHistoryItem* clipboard_history_item() const {
-    return clipboard_history_item_;
-  }
+  const ClipboardHistoryItem* GetClipboardHistoryItem() const;
 
  private:
   // Indicates the child under pseudo focus, i.e. the view responding to the
@@ -157,8 +156,11 @@
   // Updates `pseudo_focus_` and children visibility.
   void SetPseudoFocus(PseudoFocus new_pseudo_focus);
 
-  // Owned by ClipboardHistoryMenuModelAdapter.
-  const ClipboardHistoryItem* const clipboard_history_item_;
+  // Unique identifier for the `ClipboardHistoryItem` this view represents.
+  const base::UnguessableToken item_id_;
+
+  // Owned by `ClipboardHistoryControllerImpl`.
+  const base::raw_ptr<const ClipboardHistory> clipboard_history_;
 
   views::MenuItemView* const container_;
 
diff --git a/ash/clipboard/views/clipboard_history_text_item_view.cc b/ash/clipboard/views/clipboard_history_text_item_view.cc
index f5a80b1..9e2c627 100644
--- a/ash/clipboard/views/clipboard_history_text_item_view.cc
+++ b/ash/clipboard/views/clipboard_history_text_item_view.cc
@@ -57,10 +57,11 @@
 // ClipboardHistoryTextItemView
 
 ClipboardHistoryTextItemView::ClipboardHistoryTextItemView(
-    const ClipboardHistoryItem* clipboard_history_item,
+    const base::UnguessableToken& item_id,
+    const ClipboardHistory* clipboard_history,
     views::MenuItemView* container)
-    : ClipboardHistoryItemView(clipboard_history_item, container),
-      text_(clipboard_history_item->display_text()) {
+    : ClipboardHistoryItemView(item_id, clipboard_history, container),
+      text_(GetClipboardHistoryItem()->display_text()) {
   SetAccessibleName(text_);
 }
 
diff --git a/ash/clipboard/views/clipboard_history_text_item_view.h b/ash/clipboard/views/clipboard_history_text_item_view.h
index 5380539..eaa7ca4 100644
--- a/ash/clipboard/views/clipboard_history_text_item_view.h
+++ b/ash/clipboard/views/clipboard_history_text_item_view.h
@@ -6,6 +6,7 @@
 #define ASH_CLIPBOARD_VIEWS_CLIPBOARD_HISTORY_TEXT_ITEM_VIEW_H_
 
 #include "ash/clipboard/views/clipboard_history_item_view.h"
+#include "base/unguessable_token.h"
 #include "ui/base/metadata/metadata_header_macros.h"
 
 namespace views {
@@ -13,14 +14,15 @@
 }  // namespace views
 
 namespace ash {
+class ClipboardHistory;
 
 // The menu item showing the plain text.
 class ClipboardHistoryTextItemView : public ClipboardHistoryItemView {
  public:
   METADATA_HEADER(ClipboardHistoryTextItemView);
-  ClipboardHistoryTextItemView(
-      const ClipboardHistoryItem* clipboard_history_item,
-      views::MenuItemView* container);
+  ClipboardHistoryTextItemView(const base::UnguessableToken& item_id,
+                               const ClipboardHistory* clipboard_history,
+                               views::MenuItemView* container);
   ClipboardHistoryTextItemView(const ClipboardHistoryTextItemView& rhs) =
       delete;
   ClipboardHistoryItemView& operator=(const ClipboardHistoryTextItemView& rhs) =
diff --git a/ash/constants/ash_pref_names.cc b/ash/constants/ash_pref_names.cc
index 0e0ff3a..12a2b614 100644
--- a/ash/constants/ash_pref_names.cc
+++ b/ash/constants/ash_pref_names.cc
@@ -1329,6 +1329,24 @@
 const char kRecordArcAppSyncMetrics[] =
     "ash.should_record_arc_app_sync_metrics";
 
+// A boolean pref set to true if primary mouse button is the left button.
+const char kPrimaryMouseButtonRight[] = "settings.mouse.primary_right";
+
+// A integer pref for the touchpad sensitivity.
+const char kMouseSensitivity[] = "settings.mouse.sensitivity2";
+
+// A boolean pref set to true if mouse acceleration is enabled. When disabled
+// only simple linear scaling is applied based on sensitivity.
+const char kMouseAcceleration[] = "settings.mouse.acceleration";
+
+// A integer pref for the touchpad scroll sensitivity, in the range
+// [PointerSensitivity::kLowest, PointerSensitivity::kHighest].
+const char kMouseScrollSensitivity[] = "settings.mouse.scroll_sensitivity";
+
+// A boolean pref set to true if mouse scroll acceleration is enabled. When
+// disabled, only simple linear scaling is applied based on sensitivity.
+const char kMouseScrollAcceleration[] = "settings.mouse.scroll_acceleration";
+
 // NOTE: New prefs should start with the "ash." prefix. Existing prefs moved
 // into this file should not be renamed, since they may be synced.
 
diff --git a/ash/constants/ash_pref_names.h b/ash/constants/ash_pref_names.h
index 0d18c6c..b28c840 100644
--- a/ash/constants/ash_pref_names.h
+++ b/ash/constants/ash_pref_names.h
@@ -617,6 +617,17 @@
 
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kRecordArcAppSyncMetrics[];
 
+// Input device settings.
+COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kPrimaryMouseButtonRight[];
+
+COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kMouseSensitivity[];
+
+COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kMouseAcceleration[];
+
+COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kMouseScrollSensitivity[];
+
+COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kMouseScrollAcceleration[];
+
 }  // namespace prefs
 }  // namespace ash
 
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index 38b99cb..33935962 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -714,8 +714,21 @@
       else
         non_toplevel_windows.Add(child);
     }
-    while (!toplevel_windows.windows().empty())
+    while (!toplevel_windows.windows().empty()) {
+      aura::Window* toplevel_window = toplevel_windows.windows().back();
+      // Complete in progress animations before deleting the window. This is
+      // done as deleting the window implicitly cancels animations (as long
+      // as the toplevel_window is the layer owner), which may delete the
+      // window.
+      if (toplevel_window->layer()->owner() == toplevel_window) {
+        toplevel_window->layer()->CompleteAllAnimations();
+        if (toplevel_windows.windows().empty() ||
+            toplevel_windows.windows().back() != toplevel_window) {
+          continue;
+        }
+      }
       delete toplevel_windows.Pop();
+    }
   }
 
   // Reset layout manager so that it won't fire unnecessary layout evetns.
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index 5d8ccfb7..9df6356 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">'n Fout het voorgekom</translation>
 <translation id="2482878487686419369">Kennisgewings</translation>
 <translation id="2484513351006226581">Druk <ph name="KEYBOARD_SHORTCUT" /> om sleutelborduitleg te wissel.</translation>
+<translation id="2487915095798731898">Sluit aan</translation>
 <translation id="2501920221385095727">Taaisleutels</translation>
 <translation id="2509468283778169019">HOOFLETTERSLOT is aan</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index 9d8ed19..bafd0f5 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">ስህተት ተከስቷል</translation>
 <translation id="2482878487686419369">ማስታወቂያዎች</translation>
 <translation id="2484513351006226581">የቁልፍ ሰሌዳ አቀማመጥን ለመቀየር <ph name="KEYBOARD_SHORTCUT" />ን ይጫኑ</translation>
+<translation id="2487915095798731898">ተቀላቀል</translation>
 <translation id="2501920221385095727">ተጣባቂ ቁልፎች</translation>
 <translation id="2509468283778169019">CAPS LOCK በርቷል</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 9131874c..f23debac 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -289,6 +289,7 @@
 <translation id="2475982808118771221">حدث خطأ</translation>
 <translation id="2482878487686419369">الإشعارات</translation>
 <translation id="2484513351006226581">انقر على <ph name="KEYBOARD_SHORTCUT" /> لتبديل تنسيق لوحة المفاتيح.</translation>
+<translation id="2487915095798731898">انضمام</translation>
 <translation id="2501920221385095727">مفاتيح الثبات</translation>
 <translation id="2509468283778169019">‏مفتاح CAPS LOCK قيد التفعيل</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb
index 2108f97..091f308a 100644
--- a/ash/strings/ash_strings_az.xtb
+++ b/ash/strings/ash_strings_az.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Xəta baş verdi</translation>
 <translation id="2482878487686419369">Bildirişlər</translation>
 <translation id="2484513351006226581">Klaviatura düzülüşünü dəyişmək üçün <ph name="KEYBOARD_SHORTCUT" /> süyməsinə klikləyin.</translation>
+<translation id="2487915095798731898">Qoşulun</translation>
 <translation id="2501920221385095727">Əvəzedici açarlar</translation>
 <translation id="2509468283778169019">CAPS LOCK aktivdir</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index fc61834..b3363a6f 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Възникна грешка</translation>
 <translation id="2482878487686419369">Известия</translation>
 <translation id="2484513351006226581">Натиснете <ph name="KEYBOARD_SHORTCUT" /> за превключване на клавиатурната подредба.</translation>
+<translation id="2487915095798731898">Присъединяване</translation>
 <translation id="2501920221385095727">Оставащи клавиши</translation>
 <translation id="2509468283778169019">„CAPS LOCK“ е включен</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index abb1a06..a33e092 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">একটি ত্রুটি ঘটেছে</translation>
 <translation id="2482878487686419369">বিজ্ঞপ্তিগুলি</translation>
 <translation id="2484513351006226581">কীবোর্ড লে-আউট পরিবর্তন করতে <ph name="KEYBOARD_SHORTCUT" /> টিপুন।</translation>
+<translation id="2487915095798731898">যোগদান করুন</translation>
 <translation id="2501920221385095727">স্টিকি কীজ</translation>
 <translation id="2509468283778169019">CAPS LOCK চালু</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb
index df7b9c0..4e9c85bc 100644
--- a/ash/strings/ash_strings_bs.xtb
+++ b/ash/strings/ash_strings_bs.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Došlo je do greške</translation>
 <translation id="2482878487686419369">Obavještenja</translation>
 <translation id="2484513351006226581">Pritisnite <ph name="KEYBOARD_SHORTCUT" /> da promijenite raspored tastature.</translation>
+<translation id="2487915095798731898">Pridruži se</translation>
 <translation id="2501920221385095727">Ljepljive tipke</translation>
 <translation id="2509468283778169019">Uključena su velika slova</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index 0f2e3e2..6cad974ae 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">S'ha produït un error</translation>
 <translation id="2482878487686419369">Notificacions</translation>
 <translation id="2484513351006226581">Prem <ph name="KEYBOARD_SHORTCUT" /> per canviar la disposició del teclat.</translation>
+<translation id="2487915095798731898">Vull entrar-hi</translation>
 <translation id="2501920221385095727">Tecles permanents</translation>
 <translation id="2509468283778169019">BLOQ MAJ està activat.</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index 513c2db..9500099 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Došlo k chybě</translation>
 <translation id="2482878487686419369">Oznámení</translation>
 <translation id="2484513351006226581">Rozložení klávesnice změníte stisknutím kláves <ph name="KEYBOARD_SHORTCUT" /></translation>
+<translation id="2487915095798731898">Připojit se</translation>
 <translation id="2501920221385095727">Jedním prstem</translation>
 <translation id="2509468283778169019">CAPS LOCK je zapnutý</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index b3656f4..2da303e7 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Der opstod en fejl</translation>
 <translation id="2482878487686419369">Notifikationer</translation>
 <translation id="2484513351006226581">Tryk på <ph name="KEYBOARD_SHORTCUT" /> for at skifte tastaturlayout.</translation>
+<translation id="2487915095798731898">Deltag</translation>
 <translation id="2501920221385095727">Træge taster</translation>
 <translation id="2509468283778169019">CAPS LOCK er slået til</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index 0d4bf6a..27e5f33 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Ein Fehler ist aufgetreten.</translation>
 <translation id="2482878487686419369">Benachrichtigungen</translation>
 <translation id="2484513351006226581">Drücke <ph name="KEYBOARD_SHORTCUT" />, um das Tastaturlayout zu ändern.</translation>
+<translation id="2487915095798731898">Übernehmen</translation>
 <translation id="2501920221385095727">Sticky Keys</translation>
 <translation id="2509468283778169019">Feststelltaste aktiviert</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index fad1f2e..f5476ab1 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Παρουσιάστηκε σφάλμα</translation>
 <translation id="2482878487686419369">Ειδοποιήσεις</translation>
 <translation id="2484513351006226581">Πατήστε <ph name="KEYBOARD_SHORTCUT" />, για να αλλάξετε διάταξη πληκτρολογίου.</translation>
+<translation id="2487915095798731898">Συμμετοχή</translation>
 <translation id="2501920221385095727">Σταθερά πλήκτρα</translation>
 <translation id="2509468283778169019">Το CAPS LOCK είναι ενεργοποιημένο</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb
index 9c3d56e4..8ae51afb 100644
--- a/ash/strings/ash_strings_en-GB.xtb
+++ b/ash/strings/ash_strings_en-GB.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">An error occurred</translation>
 <translation id="2482878487686419369">Notifications</translation>
 <translation id="2484513351006226581">Hit <ph name="KEYBOARD_SHORTCUT" /> to switch keyboard layout.</translation>
+<translation id="2487915095798731898">Join</translation>
 <translation id="2501920221385095727">Sticky keys</translation>
 <translation id="2509468283778169019">CAPS LOCK is on</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index d241ef2..49677aa 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Se ha producido un error</translation>
 <translation id="2482878487686419369">Notificaciones</translation>
 <translation id="2484513351006226581">Presiona <ph name="KEYBOARD_SHORTCUT" /> para cambiar la configuración del teclado.</translation>
+<translation id="2487915095798731898">Unirse</translation>
 <translation id="2501920221385095727">Teclas especiales</translation>
 <translation id="2509468283778169019">BLOQ MAYÚS está activado.</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index 2e3ecb27..9aab5c1 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Se ha producido un error.</translation>
 <translation id="2482878487686419369">Notificaciones</translation>
 <translation id="2484513351006226581">Pulsa <ph name="KEYBOARD_SHORTCUT" /> para cambiar el diseño del teclado.</translation>
+<translation id="2487915095798731898">Unirse</translation>
 <translation id="2501920221385095727">Teclas persistentes</translation>
 <translation id="2509468283778169019">Bloqueo de mayúsculas activado</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb
index be9900f8..fe00b3e2 100644
--- a/ash/strings/ash_strings_et.xtb
+++ b/ash/strings/ash_strings_et.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Tekkis viga</translation>
 <translation id="2482878487686419369">Märguanded</translation>
 <translation id="2484513351006226581">Klaviatuuripaigutuse muutmiseks vajutage klahvikombinatsiooni <ph name="KEYBOARD_SHORTCUT" />.</translation>
+<translation id="2487915095798731898">Liitu</translation>
 <translation id="2501920221385095727">Nakkeklahvid</translation>
 <translation id="2509468283778169019">SUURTÄHELUKK on sisse lülitatud</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb
index 90890821..d47fd0b00 100644
--- a/ash/strings/ash_strings_eu.xtb
+++ b/ash/strings/ash_strings_eu.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Errore bat gertatu da</translation>
 <translation id="2482878487686419369">Jakinarazpenak</translation>
 <translation id="2484513351006226581">Teklatuaren diseinua aldatzeko, sakatu <ph name="KEYBOARD_SHORTCUT" />.</translation>
+<translation id="2487915095798731898">Sartu</translation>
 <translation id="2501920221385095727">Tekla itsaskorrak</translation>
 <translation id="2509468283778169019">BLOK MAIUS aktibatuta dago</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index 87ae1a8..8b5dbaae 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">یک خطا روی داد</translation>
 <translation id="2482878487686419369">اعلان‌ها</translation>
 <translation id="2484513351006226581">برای تغییر جانمایی صفحه‌کلید، <ph name="KEYBOARD_SHORTCUT" /> را فشار دهید.</translation>
+<translation id="2487915095798731898">پیوستن</translation>
 <translation id="2501920221385095727">کلیدهای چسبان</translation>
 <translation id="2509468283778169019">‏CAPS LOCK روشن است</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 34c35b30..fb9a347f 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Tapahtui virhe</translation>
 <translation id="2482878487686419369">Ilmoitukset</translation>
 <translation id="2484513351006226581">Paina <ph name="KEYBOARD_SHORTCUT" /> vaihtaaksesi näppäimistöasettelua.</translation>
+<translation id="2487915095798731898">Liity</translation>
 <translation id="2501920221385095727">Päälle jäävät näppäimet</translation>
 <translation id="2509468283778169019">CAPS LOCK on päällä</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 56dc011c..d7a5c11 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">May isang naganap na error</translation>
 <translation id="2482878487686419369">Mga Abiso</translation>
 <translation id="2484513351006226581">Pindutin ang <ph name="KEYBOARD_SHORTCUT" /> upang palitan ang layout ng keyboard.</translation>
+<translation id="2487915095798731898">Sumali</translation>
 <translation id="2501920221385095727">Mga sticky key</translation>
 <translation id="2509468283778169019">Naka-on ang CAPS LOCK</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb
index 2110e3ac..3f682f90 100644
--- a/ash/strings/ash_strings_fr-CA.xtb
+++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Une erreur s'est produite</translation>
 <translation id="2482878487686419369">Notifications</translation>
 <translation id="2484513351006226581">Appuyez sur <ph name="KEYBOARD_SHORTCUT" /> pour changer la disposition du clavier.</translation>
+<translation id="2487915095798731898">Joindre</translation>
 <translation id="2501920221385095727">Touches rémanentes</translation>
 <translation id="2509468283778169019">Touche VERR MAJ activée</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index 4412ced..3f490ca964b 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Une erreur s'est produite.</translation>
 <translation id="2482878487686419369">Notifications</translation>
 <translation id="2484513351006226581">Appuyez sur <ph name="KEYBOARD_SHORTCUT" /> pour changer la disposition du clavier.</translation>
+<translation id="2487915095798731898">Rejoindre</translation>
 <translation id="2501920221385095727">Touches persistantes</translation>
 <translation id="2509468283778169019">Touche VERR MAJ activée</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb
index 4c0f87e..d4db7cb 100644
--- a/ash/strings/ash_strings_gl.xtb
+++ b/ash/strings/ash_strings_gl.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Produciuse un erro</translation>
 <translation id="2482878487686419369">Notificacións</translation>
 <translation id="2484513351006226581">Para cambiar o deseño de teclado, preme <ph name="KEYBOARD_SHORTCUT" />.</translation>
+<translation id="2487915095798731898">Unirse</translation>
 <translation id="2501920221385095727">Teclas presas</translation>
 <translation id="2509468283778169019">Bloqueo de maiúsculas activado</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index 344d7665..768edf3a 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">કોઈ ભૂલ આવી છે</translation>
 <translation id="2482878487686419369">નોટિફિકેશનો</translation>
 <translation id="2484513351006226581">કીબોર્ડ લેઆઉટ સ્વિચ કરવા માટે <ph name="KEYBOARD_SHORTCUT" />ને દબાવો.</translation>
+<translation id="2487915095798731898">જોડાઓ</translation>
 <translation id="2501920221385095727">સ્ટિકી કી</translation>
 <translation id="2509468283778169019">CAPS LOCK ચાલુ છે</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index e5fc8375..f4e99fa 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">कोई गड़बड़ी आई</translation>
 <translation id="2482878487686419369">सूचनाएं</translation>
 <translation id="2484513351006226581">कीबोर्ड लेआउट स्विच करने के लिए <ph name="KEYBOARD_SHORTCUT" /> दबाएं.</translation>
+<translation id="2487915095798731898">जुड़ें</translation>
 <translation id="2501920221385095727">स्टिकी बटन</translation>
 <translation id="2509468283778169019">CAPS LOCK चालू है</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index 754128a..7d89339 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Došlo je do pogreške</translation>
 <translation id="2482878487686419369">Obavijesti</translation>
 <translation id="2484513351006226581">Pritisnite <ph name="KEYBOARD_SHORTCUT" /> da biste promijenili raspored tipkovnice.</translation>
+<translation id="2487915095798731898">Pridruži se</translation>
 <translation id="2501920221385095727">Ljepljive tipke</translation>
 <translation id="2509468283778169019">Opcija CAPS LOCK uključena</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index 91a50f25..228a858 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Hiba történt</translation>
 <translation id="2482878487686419369">Értesítések</translation>
 <translation id="2484513351006226581">A billentyűzetkiosztás átváltásához nyomja meg a(z) <ph name="KEYBOARD_SHORTCUT" /> billentyűparancsot.</translation>
+<translation id="2487915095798731898">Csatlakozás</translation>
 <translation id="2501920221385095727">Beragadó billentyűk</translation>
 <translation id="2509468283778169019">A CAPS LOCK be van kapcsolva</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb
index 45b862b8..1f4adce 100644
--- a/ash/strings/ash_strings_hy.xtb
+++ b/ash/strings/ash_strings_hy.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Սխալ առաջացավ</translation>
 <translation id="2482878487686419369">Ծանուցումներ</translation>
 <translation id="2484513351006226581">Ստեղնաշարի դասավորությունը փոխելու համար սեղմեք <ph name="KEYBOARD_SHORTCUT" />։</translation>
+<translation id="2487915095798731898">Միանալ</translation>
 <translation id="2501920221385095727">Կպչուն ստեղներ</translation>
 <translation id="2509468283778169019">CAPS LOCK-ը միացված է</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index 4586dbf..a9abb086 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Terjadi error</translation>
 <translation id="2482878487686419369">Notifikasi</translation>
 <translation id="2484513351006226581">Tekan <ph name="KEYBOARD_SHORTCUT" /> untuk mengganti tata letak keyboard.</translation>
+<translation id="2487915095798731898">Gabung</translation>
 <translation id="2501920221385095727">Tombol lekat</translation>
 <translation id="2509468283778169019">CAPS LOCK aktif</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb
index 1f44428..3a85ad4 100644
--- a/ash/strings/ash_strings_is.xtb
+++ b/ash/strings/ash_strings_is.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Villa kom upp</translation>
 <translation id="2482878487686419369">Tilkynningar</translation>
 <translation id="2484513351006226581">Ýttu á <ph name="KEYBOARD_SHORTCUT" /> til að skipta um lyklaskipan.</translation>
+<translation id="2487915095798731898">Tengjast</translation>
 <translation id="2501920221385095727">Festilyklar</translation>
 <translation id="2509468283778169019">Hástafalás er á</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index 0ac0f45..c08911b 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Si è verificato un errore</translation>
 <translation id="2482878487686419369">Notifiche</translation>
 <translation id="2484513351006226581">Premi <ph name="KEYBOARD_SHORTCUT" /> per cambiare il layout della tastiera.</translation>
+<translation id="2487915095798731898">Partecipa</translation>
 <translation id="2501920221385095727">Tasti permanenti</translation>
 <translation id="2509468283778169019">BLOC MAIUSC è attivo</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index 3832a24..add8db7 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">אירעה שגיאה</translation>
 <translation id="2482878487686419369">התראות</translation>
 <translation id="2484513351006226581">צריך להקיש על <ph name="KEYBOARD_SHORTCUT" /> כדי להחליף פריסת מקלדת.</translation>
+<translation id="2487915095798731898">הצטרפות</translation>
 <translation id="2501920221385095727">מקשים דביקים</translation>
 <translation id="2509468283778169019">‏CAPS LOCK מופעל</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index cdd5092..8a1b0d8 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">エラーが発生しました</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2484513351006226581">キーボード レイアウトを切り替えるには <ph name="KEYBOARD_SHORTCUT" /> キーを押します。</translation>
+<translation id="2487915095798731898">参加</translation>
 <translation id="2501920221385095727">固定キー</translation>
 <translation id="2509468283778169019">Caps Lock がオンになっています</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index 315a50a3..86af8713 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">შეცდომა მოხდა</translation>
 <translation id="2482878487686419369">შეტყობინებები</translation>
 <translation id="2484513351006226581">კლავიატურის განლაგების გადასართველად გამოიყენეთ კლავიშთა კომბინაცია: <ph name="KEYBOARD_SHORTCUT" />.</translation>
+<translation id="2487915095798731898">გაწევრიანება</translation>
 <translation id="2501920221385095727">კლავიშების ფიქსაცია</translation>
 <translation id="2509468283778169019">CAPS LOCK ჩართულია</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb
index 6c883fa..35276f0d 100644
--- a/ash/strings/ash_strings_kk.xtb
+++ b/ash/strings/ash_strings_kk.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Қате орын алды</translation>
 <translation id="2482878487686419369">Хабарландырулар</translation>
 <translation id="2484513351006226581">Пернетақтаны ауыстыру үшін <ph name="KEYBOARD_SHORTCUT" /> пернелерін басыңыз.</translation>
+<translation id="2487915095798731898">Қосылу</translation>
 <translation id="2501920221385095727">Жабысқақ пернелер</translation>
 <translation id="2509468283778169019">CAPS LOCK қосулы</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb
index 6b3aa14..4798306 100644
--- a/ash/strings/ash_strings_km.xtb
+++ b/ash/strings/ash_strings_km.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">កំហុសឆ្គងមួយបានកើតឡើង</translation>
 <translation id="2482878487686419369">ការជូនដំណឹង</translation>
 <translation id="2484513351006226581">ចុច <ph name="KEYBOARD_SHORTCUT" /> ដើម្បី​ប្តូរប្លង់​ក្តារ​ចុច។</translation>
+<translation id="2487915095798731898">ចូលរួម</translation>
 <translation id="2501920221385095727">គ្រាប់ចុចស្អិត</translation>
 <translation id="2509468283778169019">CAPS LOCK ត្រូវបានបើក</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index 5fc9e98..1cccb0b 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">ದೋಷವೊಂದು ಕಾಣಿಸಿಕೊಂಡಿದೆ</translation>
 <translation id="2482878487686419369">ಸೂಚನೆಗಳು</translation>
 <translation id="2484513351006226581">ಕೀಬೋರ್ಡ್ ಲೇಔಟ್ ಬದಲಾಯಿಸಲು <ph name="KEYBOARD_SHORTCUT" /> ಒತ್ತಿರಿ.</translation>
+<translation id="2487915095798731898">ಸೇರ್ಪಡೆಗೊಳ್ಳು</translation>
 <translation id="2501920221385095727">ಸ್ಟಿಕಿ ಕೀಗಳು</translation>
 <translation id="2509468283778169019">CAPS LOCK ಆನ್ ಆಗಿದೆ</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index 4cac4c2..96a733d 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">오류가 발생했습니다.</translation>
 <translation id="2482878487686419369">알림</translation>
 <translation id="2484513351006226581">키보드 레이아웃을 전환하려면 <ph name="KEYBOARD_SHORTCUT" />을(를) 누르세요.</translation>
+<translation id="2487915095798731898">가입</translation>
 <translation id="2501920221385095727">고정키</translation>
 <translation id="2509468283778169019">CAPS LOCK이 켜져 있습니다.</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
index f8a36e4..352d3f3 100644
--- a/ash/strings/ash_strings_ky.xtb
+++ b/ash/strings/ash_strings_ky.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Ката кетти</translation>
 <translation id="2482878487686419369">Билдирмелер</translation>
 <translation id="2484513351006226581">Баскычтоптун калыбын которуу үчүн <ph name="KEYBOARD_SHORTCUT" /> басып коюңуз.</translation>
+<translation id="2487915095798731898">Кошулуу</translation>
 <translation id="2501920221385095727">Жабышчаак баскычтар функциясы</translation>
 <translation id="2509468283778169019">Caps Lock күйүп турат</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index 93b803e7..d87bdfe 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">ເກີດຄວາມຜິດພາດຂຶ້ນ.</translation>
 <translation id="2482878487686419369">ການແຈ້ງເຕືອນ</translation>
 <translation id="2484513351006226581">ແຕະ <ph name="KEYBOARD_SHORTCUT" /> ເພື່ອປ່ຽນໂຄງຮ່າງແປ້ນພິມ.</translation>
+<translation id="2487915095798731898">ເຂົ້າຮ່ວມ</translation>
 <translation id="2501920221385095727">ປຸ່ມສະຕິກກີ້</translation>
 <translation id="2509468283778169019">CAPS LOCK ເປີດຢູ່</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 9fd507b6..a7940a34 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Įvyko klaida</translation>
 <translation id="2482878487686419369">Pranešimai</translation>
 <translation id="2484513351006226581">Paspauskite <ph name="KEYBOARD_SHORTCUT" />, kad perjungtumėte klaviatūros išdėstymą.</translation>
+<translation id="2487915095798731898">Prisijungti</translation>
 <translation id="2501920221385095727">Fiksuotos pozicijos klavišai</translation>
 <translation id="2509468283778169019">DIDŽIŲJŲ RAIDŽIŲ RAŠYMAS įjungtas</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index e313436..d47b470 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Radās kļūda</translation>
 <translation id="2482878487686419369">Paziņojumi</translation>
 <translation id="2484513351006226581">Nospiediet īsinājumtaustiņu <ph name="KEYBOARD_SHORTCUT" />, lai pārslēgtu tastatūras izkārtojumu.</translation>
+<translation id="2487915095798731898">Pievienoties</translation>
 <translation id="2501920221385095727">Taustiņu ķēde</translation>
 <translation id="2509468283778169019">Funkcija Caps Lock ir ieslēgta</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb
index 5c1b420c5..72dea2e 100644
--- a/ash/strings/ash_strings_mk.xtb
+++ b/ash/strings/ash_strings_mk.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Настана грешка</translation>
 <translation id="2482878487686419369">Известувања</translation>
 <translation id="2484513351006226581">Притиснете <ph name="KEYBOARD_SHORTCUT" /> за да го префрлите распоредот на тастатурата.</translation>
+<translation id="2487915095798731898">Приклучи се</translation>
 <translation id="2501920221385095727">Лепливи копчиња</translation>
 <translation id="2509468283778169019">Вклучено е CAPS LOCK</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 99bbd3ba..b0ee2d1 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">ഒരു പിശക് സംഭവിച്ചു</translation>
 <translation id="2482878487686419369">അറിയിപ്പുകൾ</translation>
 <translation id="2484513351006226581">കീബോര്‍‌ഡ് ലേഔട്ട് മാറാൻ <ph name="KEYBOARD_SHORTCUT" /> അമർത്തുക.</translation>
+<translation id="2487915095798731898">ചേരുക</translation>
 <translation id="2501920221385095727">സ്‌റ്റിക്കി കീകൾ</translation>
 <translation id="2509468283778169019">CAPS LOCK ഓൺ ആണ്</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 8a6b9aa..19e2761 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Алдаа гарлаа</translation>
 <translation id="2482878487686419369">Мэдэгдэл</translation>
 <translation id="2484513351006226581">Гарын бүдүүвчийг солихын тулд <ph name="KEYBOARD_SHORTCUT" />-г дарна уу.</translation>
+<translation id="2487915095798731898">Нэгдэх</translation>
 <translation id="2501920221385095727">Холбогч түлхүүр</translation>
 <translation id="2509468283778169019">CAPS LOCK асаалттай байна</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index da0bfc13..c46ae49 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">एक एरर आली आहे</translation>
 <translation id="2482878487686419369">सूचना</translation>
 <translation id="2484513351006226581">कीबोर्डचा लेआउट स्विच करण्यासाठी <ph name="KEYBOARD_SHORTCUT" /> दाबा.</translation>
+<translation id="2487915095798731898">सामील व्हा</translation>
 <translation id="2501920221385095727">स्टिकी की</translation>
 <translation id="2509468283778169019">CAPS LOCK सुरू आहे</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index af093421..51a11771 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Ralat berlaku</translation>
 <translation id="2482878487686419369">Pemberitahuan</translation>
 <translation id="2484513351006226581">Tekan <ph name="KEYBOARD_SHORTCUT" /> untuk menukar atur letak papan kekunci.</translation>
+<translation id="2487915095798731898">Sertai</translation>
 <translation id="2501920221385095727">Kekunci lekit</translation>
 <translation id="2509468283778169019">Kekunci CAPS LOCK dihidupkan</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb
index 4f1fd4de..61aa735 100644
--- a/ash/strings/ash_strings_my.xtb
+++ b/ash/strings/ash_strings_my.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">အမှားတစ်ခု ဖြစ်ခဲ့သည်။</translation>
 <translation id="2482878487686419369">အကြောင်းကြားစာ</translation>
 <translation id="2484513351006226581">ကီးဘုတ်လက်ကွက် ပြောင်းရန် <ph name="KEYBOARD_SHORTCUT" /> ကို နှိပ်ပါ။</translation>
+<translation id="2487915095798731898">ချိတ်ဆက်ပါ</translation>
 <translation id="2501920221385095727">Sticky keys</translation>
 <translation id="2509468283778169019">စာလုံးကြီးရန် သော့ခလုတ် ပွင့်နေ</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb
index 48f7e69..55be6fe8 100644
--- a/ash/strings/ash_strings_ne.xtb
+++ b/ash/strings/ash_strings_ne.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">त्रुटि भयो</translation>
 <translation id="2482878487686419369">सूचनाहरू</translation>
 <translation id="2484513351006226581">किबोर्डको लेआउट स्विच गर्न <ph name="KEYBOARD_SHORTCUT" /> मा थिच्नुहोस्।</translation>
+<translation id="2487915095798731898">सामेल हुनुहोस्</translation>
 <translation id="2501920221385095727">स्टिकी कुञ्जीहरू</translation>
 <translation id="2509468283778169019">CAPS LOCK खुला छ</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index 204a922..6cfecb4 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Er is een fout opgetreden</translation>
 <translation id="2482878487686419369">Meldingen</translation>
 <translation id="2484513351006226581">Druk op <ph name="KEYBOARD_SHORTCUT" /> om van toetsenbordindeling te wisselen.</translation>
+<translation id="2487915095798731898">Deelnemen</translation>
 <translation id="2501920221385095727">Plaktoetsen</translation>
 <translation id="2509468283778169019">CAPS LOCK staat aan</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index fd36721..c9e4313 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Det oppstod en feil</translation>
 <translation id="2482878487686419369">Varsler</translation>
 <translation id="2484513351006226581">Trykk på <ph name="KEYBOARD_SHORTCUT" /> for å bytte tastaturoppsett.</translation>
+<translation id="2487915095798731898">Bli med</translation>
 <translation id="2501920221385095727">Trege taster</translation>
 <translation id="2509468283778169019">Caps Lock er på</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb
index b3726e6..b23d4af 100644
--- a/ash/strings/ash_strings_pa.xtb
+++ b/ash/strings/ash_strings_pa.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">ਇੱਕ ਗੜਬੜ ਹੋਈ</translation>
 <translation id="2482878487686419369">ਸੂਚਨਾਵਾਂ</translation>
 <translation id="2484513351006226581">ਕੀ-ਬੋਰਡ ਖਾਕਾ ਬਦਲਣ ਲਈ <ph name="KEYBOARD_SHORTCUT" /> ਦਬਾਓ।</translation>
+<translation id="2487915095798731898">ਸ਼ਾਮਲ ਹੋਵੋ</translation>
 <translation id="2501920221385095727">ਸਟਿਕੀ ਕੁੰਜੀਆਂ</translation>
 <translation id="2509468283778169019">CAPS LOCK ਔਨ ਹੈ</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index d4b488c5..8f874c7 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Wystąpił błąd</translation>
 <translation id="2482878487686419369">Powiadomienia</translation>
 <translation id="2484513351006226581">Naciśnij <ph name="KEYBOARD_SHORTCUT" />, by przełączyć układ klawiatury.</translation>
+<translation id="2487915095798731898">Dołącz</translation>
 <translation id="2501920221385095727">Klawisze trwałe</translation>
 <translation id="2509468283778169019">CAPS LOCK jest włączony.</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 610907b..8a7b547 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Ocorreu um erro</translation>
 <translation id="2482878487686419369">Notificações</translation>
 <translation id="2484513351006226581">Pressione <ph name="KEYBOARD_SHORTCUT" /> para alterar o layout do teclado.</translation>
+<translation id="2487915095798731898">Participar</translation>
 <translation id="2501920221385095727">Teclas aderentes</translation>
 <translation id="2509468283778169019">CAPS LOCK está ativado</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index 44f4a50..b5331866d 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Ocorreu um erro</translation>
 <translation id="2482878487686419369">Notificações</translation>
 <translation id="2484513351006226581">Prima <ph name="KEYBOARD_SHORTCUT" /> para mudar o esquema do teclado.</translation>
+<translation id="2487915095798731898">Aderir</translation>
 <translation id="2501920221385095727">Teclas aderentes</translation>
 <translation id="2509468283778169019">CAPS LOCK está ativado</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index a9c47830..8b063889 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">A apărut o eroare</translation>
 <translation id="2482878487686419369">Notificări</translation>
 <translation id="2484513351006226581">Apasă <ph name="KEYBOARD_SHORTCUT" /> pentru a schimba aspectul tastaturii.</translation>
+<translation id="2487915095798731898">Urmează</translation>
 <translation id="2501920221385095727">Taste adezive</translation>
 <translation id="2509468283778169019">Tasta CAPS LOCK este activată</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index 62cca84b..c7c81f6 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Произошел сбой.</translation>
 <translation id="2482878487686419369">Уведомления</translation>
 <translation id="2484513351006226581">Чтобы переключить раскладку клавиатуры, нажмите клавиши <ph name="KEYBOARD_SHORTCUT" />.</translation>
+<translation id="2487915095798731898">Присоединиться</translation>
 <translation id="2501920221385095727">Залипание клавиш</translation>
 <translation id="2509468283778169019">Включен режим CAPS LOCK</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb
index 61d5f0ee..99d95abe 100644
--- a/ash/strings/ash_strings_si.xtb
+++ b/ash/strings/ash_strings_si.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">දෝෂයක් සිදු විණි</translation>
 <translation id="2482878487686419369">දැනුම්දීම්</translation>
 <translation id="2484513351006226581">යතුරු පුවරු පිරිසැලසුම මාරු කිරීමට <ph name="KEYBOARD_SHORTCUT" /> ඔබන්න.</translation>
+<translation id="2487915095798731898">එක්වන්න</translation>
 <translation id="2501920221385095727">ඇලෙන යතුරු</translation>
 <translation id="2509468283778169019">කැප්ස් ලොක් සක්‍රීයයි</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index c23e22e..0697f3a8c 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Vyskytla sa chyba</translation>
 <translation id="2482878487686419369">Upozornenia</translation>
 <translation id="2484513351006226581">Stlačením klávesov <ph name="KEYBOARD_SHORTCUT" /> zmeníte rozloženie klávesnice.</translation>
+<translation id="2487915095798731898">Pripojiť sa</translation>
 <translation id="2501920221385095727">Funkcia sticky keys</translation>
 <translation id="2509468283778169019">Kláves CAPS LOCK je zapnutý</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index a3508b01..8ff3995 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Prišlo je do napake</translation>
 <translation id="2482878487686419369">Obvestila</translation>
 <translation id="2484513351006226581">Pritisnite <ph name="KEYBOARD_SHORTCUT" />, če želite preklopiti postavitev tipkovnice</translation>
+<translation id="2487915095798731898">Pridruži se</translation>
 <translation id="2501920221385095727">Zaklepanje tipk</translation>
 <translation id="2509468283778169019">Tipka CAPS LOCK je vklopljena</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb
index 050cbfc1..70cb0954 100644
--- a/ash/strings/ash_strings_sq.xtb
+++ b/ash/strings/ash_strings_sq.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Ndodhi një gabim</translation>
 <translation id="2482878487686419369">Njoftimet</translation>
 <translation id="2484513351006226581">Shtyp <ph name="KEYBOARD_SHORTCUT" /> për të ndryshuar planin e tastierës.</translation>
+<translation id="2487915095798731898">Bashkohu</translation>
 <translation id="2501920221385095727">Tastet e përhershme</translation>
 <translation id="2509468283778169019">KYÇJA E KAPITALEVE është aktive</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb
index cebe8673..0c0558e 100644
--- a/ash/strings/ash_strings_sr-Latn.xtb
+++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Došlo je do greške</translation>
 <translation id="2482878487686419369">Obaveštenja</translation>
 <translation id="2484513351006226581">Pritisnite <ph name="KEYBOARD_SHORTCUT" /> da biste promenili raspored tastature.</translation>
+<translation id="2487915095798731898">Pridruži me</translation>
 <translation id="2501920221385095727">Lepljivi tasteri</translation>
 <translation id="2509468283778169019">CAPS LOCK je uključen</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index 66dd354..897ccda 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Дошло је до грешке</translation>
 <translation id="2482878487686419369">Обавештења</translation>
 <translation id="2484513351006226581">Притисните <ph name="KEYBOARD_SHORTCUT" /> да бисте променили распоред тастатуре.</translation>
+<translation id="2487915095798731898">Придружи ме</translation>
 <translation id="2501920221385095727">Лепљиви тастери</translation>
 <translation id="2509468283778169019">CAPS LOCK је укључен</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index 67907e7c..72ff68c 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Det uppstod ett fel</translation>
 <translation id="2482878487686419369">Aviseringar</translation>
 <translation id="2484513351006226581">Tryck på <ph name="KEYBOARD_SHORTCUT" /> om du vill byta tangentbordslayout.</translation>
+<translation id="2487915095798731898">Delta</translation>
 <translation id="2501920221385095727">Tröga tangenter</translation>
 <translation id="2509468283778169019">CAPS LOCK är på</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index de8cda7..4a98c5b 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Hitilafu fulani imetokea</translation>
 <translation id="2482878487686419369">Arifa</translation>
 <translation id="2484513351006226581">Gusa <ph name="KEYBOARD_SHORTCUT" /> ili ubadilishe mpangilio wa kibodi.</translation>
+<translation id="2487915095798731898">Jiunge</translation>
 <translation id="2501920221385095727">Vitufe vya kusalia kwa muda</translation>
 <translation id="2509468283778169019">Caps Lock imewashwa.</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index 1716497..95f542e6 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">ஒரு பிழை ஏற்பட்டது</translation>
 <translation id="2482878487686419369">அறிவிப்புகள்</translation>
 <translation id="2484513351006226581">கீபோர்டைத் தளவமைப்பை மாற்ற, <ph name="KEYBOARD_SHORTCUT" /> விசையை அழுத்தவும்.</translation>
+<translation id="2487915095798731898">சேர்</translation>
 <translation id="2501920221385095727">ஸ்டிக்கி விசைகள்</translation>
 <translation id="2509468283778169019">CAPS LOCK இயக்கத்தில்</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index aa6a4b0d..6c010bf4 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">ఒక ఎర్రర్ ఏర్పడింది</translation>
 <translation id="2482878487686419369">నోటిఫికేషన్‌లు</translation>
 <translation id="2484513351006226581">కీబోర్డ్ లేఅవుట్‌ను మార్చడానికి <ph name="KEYBOARD_SHORTCUT" />ని నొక్కండి.</translation>
+<translation id="2487915095798731898">చేర్చు</translation>
 <translation id="2501920221385095727">స్టిక్కీ కీలు</translation>
 <translation id="2509468283778169019">CAPS LOCK ఆన్‌లో ఉంది</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index 23dd757..c6b216f4 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">มีข้อผิดพลาดเกิดขึ้น</translation>
 <translation id="2482878487686419369">การแจ้งเตือน</translation>
 <translation id="2484513351006226581">กด <ph name="KEYBOARD_SHORTCUT" /> เพื่อสลับรูปแบบแป้นพิมพ์</translation>
+<translation id="2487915095798731898">เข้าร่วม</translation>
 <translation id="2501920221385095727">คีย์ติดหนึบ</translation>
 <translation id="2509468283778169019">Caps Lock เปิดอยู่</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index e363142b..235bd95 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Bir hata oluştu</translation>
 <translation id="2482878487686419369">Bildirimler</translation>
 <translation id="2484513351006226581">Klavye düzenini değiştirmek için <ph name="KEYBOARD_SHORTCUT" /> tuşlarına basın.</translation>
+<translation id="2487915095798731898">Katıl</translation>
 <translation id="2501920221385095727">Yapışkan tuşlar</translation>
 <translation id="2509468283778169019">CAPS LOCK açık</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 902c1ef5..01c96ff 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Сталася помилка</translation>
 <translation id="2482878487686419369">Сповіщення</translation>
 <translation id="2484513351006226581">Натисніть комбінацію клавіш <ph name="KEYBOARD_SHORTCUT" />, щоб змінити розкладку клавіатури.</translation>
+<translation id="2487915095798731898">Приєднатися</translation>
 <translation id="2501920221385095727">Залипання клавіш</translation>
 <translation id="2509468283778169019">Режим CAPS LOCK увімкнено</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb
index 0d48df93..836ecae 100644
--- a/ash/strings/ash_strings_ur.xtb
+++ b/ash/strings/ash_strings_ur.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">ایک خرابی پیش آگئی</translation>
 <translation id="2482878487686419369">اطلاعات</translation>
 <translation id="2484513351006226581">کی بورڈ کا لے آؤٹ سوئچ کرنے کے لیے <ph name="KEYBOARD_SHORTCUT" /> دبائیں۔</translation>
+<translation id="2487915095798731898">شامل ہوں</translation>
 <translation id="2501920221385095727">اسٹکی کلیدیں</translation>
 <translation id="2509468283778169019">‏CAPS LOCK آن ہے</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index 7d83d4f6..8098230 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Xatolik yuz berdi</translation>
 <translation id="2482878487686419369">Bildirishnomalar</translation>
 <translation id="2484513351006226581">Klaviatura terilmasini almashtirish uchun <ph name="KEYBOARD_SHORTCUT" /> tugmalarini bosing.</translation>
+<translation id="2487915095798731898">Qo‘shilish</translation>
 <translation id="2501920221385095727">Yopishqoq tugmalar</translation>
 <translation id="2509468283778169019">CAPS LOCK yoniq</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index d6eadfd..46ed6f8 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Đã xảy ra lôi</translation>
 <translation id="2482878487686419369">Thông báo</translation>
 <translation id="2484513351006226581">Hãy nhấn <ph name="KEYBOARD_SHORTCUT" /> để chuyển bố cục bàn phím.</translation>
+<translation id="2487915095798731898">Tham gia</translation>
 <translation id="2501920221385095727">Phím cố định</translation>
 <translation id="2509468283778169019">Đang bật CAPS LOCK</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index 8d9e7cd..a621008 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">出现错误</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2484513351006226581">按 <ph name="KEYBOARD_SHORTCUT" />键可切换键盘布局。</translation>
+<translation id="2487915095798731898">加入</translation>
 <translation id="2501920221385095727">粘滞键</translation>
 <translation id="2509468283778169019">CAPS LOCK 已打开</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index 84308fa..de5ee32e 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">發生錯誤</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2484513351006226581">按下 <ph name="KEYBOARD_SHORTCUT" /> 鍵可切換鍵盤配置。</translation>
+<translation id="2487915095798731898">加入</translation>
 <translation id="2501920221385095727">相黏鍵</translation>
 <translation id="2509468283778169019">大寫鍵已啟用</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index b171040e..a804b3a 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">發生錯誤</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2484513351006226581">按下 <ph name="KEYBOARD_SHORTCUT" />可切換鍵盤配置。</translation>
+<translation id="2487915095798731898">加入</translation>
 <translation id="2501920221385095727">相黏鍵</translation>
 <translation id="2509468283778169019">大寫鍵已啟用</translation>
 <translation id="2515586267016047495">Alt</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb
index 655967c..c35adf2 100644
--- a/ash/strings/ash_strings_zu.xtb
+++ b/ash/strings/ash_strings_zu.xtb
@@ -288,6 +288,7 @@
 <translation id="2475982808118771221">Kuvele iphutha</translation>
 <translation id="2482878487686419369">Izaziso</translation>
 <translation id="2484513351006226581">Shaya u-<ph name="KEYBOARD_SHORTCUT" /> ukuze ushintshe isendlalelo sekhibhodi.</translation>
+<translation id="2487915095798731898">Joyina</translation>
 <translation id="2501920221385095727">Okhiye abanamathelayo</translation>
 <translation id="2509468283778169019">I-CAPS LOCK ivuliwe</translation>
 <translation id="2515586267016047495">I-Alt</translation>
diff --git a/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.cc b/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.cc
index 13516938..3caf5ba 100644
--- a/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.cc
+++ b/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.cc
@@ -4,14 +4,46 @@
 
 #include "ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.h"
 
+#include "ash/constants/ash_pref_names.h"
 #include "ash/public/mojom/input_device_settings.mojom-forward.h"
 #include "ash/public/mojom/input_device_settings.mojom.h"
+#include "ash/shell.h"
 #include "ash/system/input_device_settings/input_device_settings_defaults.h"
 #include "ash/system/input_device_settings/input_device_settings_pref_names.h"
+#include "ash/system/input_device_settings/input_device_tracker.h"
 #include "base/check.h"
 #include "components/prefs/pref_service.h"
 
 namespace ash {
+namespace {
+
+mojom::MouseSettingsPtr GetDefaultMouseSettings() {
+  mojom::MouseSettingsPtr settings = mojom::MouseSettings::New();
+  settings->swap_right = kDefaultSwapRight;
+  settings->sensitivity = kDefaultSensitivity;
+  settings->reverse_scrolling = kDefaultReverseScrolling;
+  settings->acceleration_enabled = kDefaultAccelerationEnabled;
+  settings->scroll_sensitivity = kDefaultSensitivity;
+  settings->scroll_acceleration = kDefaultScrollAcceleration;
+  return settings;
+}
+
+// GetMouseSettingsFromPrefs returns a mouse settings based on user prefs
+// to be used as settings for new mouses.
+mojom::MouseSettingsPtr GetMouseSettingsFromPrefs(PrefService* prefs) {
+  mojom::MouseSettingsPtr settings = mojom::MouseSettings::New();
+  settings->swap_right = prefs->GetBoolean(prefs::kPrimaryMouseButtonRight);
+  settings->sensitivity = prefs->GetInteger(prefs::kMouseSensitivity);
+  settings->reverse_scrolling = prefs->GetBoolean(prefs::kMouseReverseScroll);
+  settings->acceleration_enabled = prefs->GetBoolean(prefs::kMouseAcceleration);
+  settings->scroll_sensitivity =
+      prefs->GetInteger(prefs::kMouseScrollSensitivity);
+  settings->scroll_acceleration =
+      prefs->GetBoolean(prefs::kMouseScrollAcceleration);
+  return settings;
+}
+
+}  // namespace
 
 MousePrefHandlerImpl::MousePrefHandlerImpl() = default;
 MousePrefHandlerImpl::~MousePrefHandlerImpl() = default;
@@ -22,7 +54,7 @@
       pref_service->GetDict(prefs::kMouseDeviceSettingsDictPref);
   const auto* settings_dict = devices_dict.FindDict(mouse->device_key);
   if (!settings_dict) {
-    mouse->settings = GetNewMouseSettings(*mouse);
+    mouse->settings = GetNewMouseSettings(pref_service, *mouse);
   } else {
     mouse->settings =
         RetreiveMouseSettings(pref_service, *mouse, *settings_dict);
@@ -69,17 +101,15 @@
 }
 
 mojom::MouseSettingsPtr MousePrefHandlerImpl::GetNewMouseSettings(
+    PrefService* prefs,
     const mojom::Mouse& mouse) {
-  // TODO(michaelcheco): Implement pulling from old device settings if the
-  // device was observed in the transition period.
-  mojom::MouseSettingsPtr settings = mojom::MouseSettings::New();
-  settings->swap_right = kDefaultSwapRight;
-  settings->sensitivity = kDefaultSensitivity;
-  settings->reverse_scrolling = kDefaultReverseScrolling;
-  settings->acceleration_enabled = kDefaultAccelerationEnabled;
-  settings->scroll_sensitivity = kDefaultSensitivity;
-  settings->scroll_acceleration = kDefaultScrollAcceleration;
-  return settings;
+  // TODO(michaelcheco): Remove once transitioned to per-device settings.
+  if (Shell::Get()->input_device_tracker()->WasDevicePreviouslyConnected(
+          InputDeviceTracker::InputDeviceCategory::kMouse, mouse.device_key)) {
+    return GetMouseSettingsFromPrefs(prefs);
+  }
+
+  return GetDefaultMouseSettings();
 }
 
 mojom::MouseSettingsPtr MousePrefHandlerImpl::RetreiveMouseSettings(
diff --git a/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.h b/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.h
index 7b378d7..e300118 100644
--- a/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.h
+++ b/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.h
@@ -27,7 +27,8 @@
                            const mojom::Mouse& mouse) override;
 
  private:
-  mojom::MouseSettingsPtr GetNewMouseSettings(const mojom::Mouse& Mouse);
+  mojom::MouseSettingsPtr GetNewMouseSettings(PrefService* prefs,
+                                              const mojom::Mouse& Mouse);
   mojom::MouseSettingsPtr RetreiveMouseSettings(
       PrefService* prefs,
       const mojom::Mouse& mouse,
diff --git a/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_unittest.cc b/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_unittest.cc
index 185d1054..7a4117b6 100644
--- a/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_unittest.cc
+++ b/ash/system/input_device_settings/pref_handlers/mouse_pref_handler_unittest.cc
@@ -2,10 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "ash/system/input_device_settings/input_device_settings_defaults.h"
 #include "ash/system/input_device_settings/pref_handlers/mouse_pref_handler_impl.h"
 
+#include "ash/constants/ash_pref_names.h"
 #include "ash/public/mojom/input_device_settings.mojom.h"
+#include "ash/shell.h"
+#include "ash/system/input_device_settings/input_device_settings_defaults.h"
 #include "ash/system/input_device_settings/input_device_settings_pref_names.h"
 #include "ash/test/ash_test_base.h"
 #include "components/prefs/pref_registry_simple.h"
@@ -20,6 +22,13 @@
 const std::string kMouseKey1 = "device_key1";
 const std::string kMouseKey2 = "device_key2";
 
+const bool kTestSwapRight = false;
+const int kTestSensitivity = 2;
+const bool kTestReverseScrolling = false;
+const bool kTestAccelerationEnabled = false;
+const int kTestScrollSensitivity = 3;
+const bool kTestScrollAcceleration = false;
+
 const mojom::MouseSettings kMouseSettingsDefault(
     /*swap_right=*/kDefaultSwapRight,
     /*sensitivity=*/kDefaultSensitivity,
@@ -69,6 +78,20 @@
 
     pref_service_->registry()->RegisterDictionaryPref(
         prefs::kMouseDeviceSettingsDictPref);
+    // We are using these test constants as a a way to differentiate values
+    // retrieved from prefs or default mouse settings.
+    pref_service_->registry()->RegisterBooleanPref(
+        prefs::kPrimaryMouseButtonRight, kTestSwapRight);
+    pref_service_->registry()->RegisterIntegerPref(prefs::kMouseSensitivity,
+                                                   kTestSensitivity);
+    pref_service_->registry()->RegisterBooleanPref(prefs::kMouseReverseScroll,
+                                                   kTestReverseScrolling);
+    pref_service_->registry()->RegisterBooleanPref(prefs::kMouseAcceleration,
+                                                   kTestAccelerationEnabled);
+    pref_service_->registry()->RegisterIntegerPref(
+        prefs::kMouseScrollSensitivity, kTestScrollSensitivity);
+    pref_service_->registry()->RegisterBooleanPref(
+        prefs::kMouseScrollAcceleration, kTestScrollAcceleration);
   }
 
   void CheckMouseSettingsAndDictAreEqual(
@@ -247,6 +270,22 @@
   CheckMouseSettingsAndDictAreEqual(kMouseSettingsDefault, *settings_dict);
 }
 
+TEST_F(MousePrefHandlerTest, MouseObserveredInTransitionPeriod) {
+  mojom::Mouse mouse;
+  mouse.device_key = kMouseKey1;
+  Shell::Get()->input_device_tracker()->OnMouseConnected(mouse);
+  // Initialize mouse settings for the device and check that the Test
+  // prefs were used as defaults.
+  mojom::MouseSettingsPtr settings =
+      CallInitializeMouseSettings(mouse.device_key);
+  ASSERT_EQ(settings->swap_right, kTestSwapRight);
+  ASSERT_EQ(settings->sensitivity, kTestSensitivity);
+  ASSERT_EQ(settings->reverse_scrolling, kTestReverseScrolling);
+  ASSERT_EQ(settings->acceleration_enabled, kTestAccelerationEnabled);
+  ASSERT_EQ(settings->scroll_sensitivity, kTestScrollSensitivity);
+  ASSERT_EQ(settings->scroll_acceleration, kTestScrollAcceleration);
+}
+
 class MouseSettingsPrefConversionTest
     : public MousePrefHandlerTest,
       public testing::WithParamInterface<
diff --git a/base/BUILD.gn b/base/BUILD.gn
index d8b947bb..b73c8c8 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -308,9 +308,6 @@
     "cxx20_is_constant_evaluated.h",
     "cxx20_to_address.h",
     "dcheck_is_on.h",
-    "debug/activity_analyzer.cc",
-    "debug/activity_analyzer.h",
-    "debug/activity_tracker.cc",
     "debug/activity_tracker.h",
     "debug/alias.cc",
     "debug/alias.h",
@@ -3033,8 +3030,6 @@
     "cpu_unittest.cc",
     "cxx17_backports_unittest.cc",
     "cxx20_is_constant_evaluated_unittest.cc",
-    "debug/activity_analyzer_unittest.cc",
-    "debug/activity_tracker_unittest.cc",
     "debug/alias_unittest.cc",
     "debug/asan_service_unittest.cc",
     "debug/crash_logging_unittest.cc",
@@ -4650,13 +4645,6 @@
   deps = [ "//base" ]
 }
 
-fuzzer_test("base_activity_analyzer_fuzzer") {
-  sources = [ "debug/activity_analyzer_fuzzer.cc" ]
-  deps = [ "//base" ]
-  dict = "debug/activity_analyzer_fuzzer.dict"
-  seed_corpus = "test/data/activity_analyzer_fuzzer"
-}
-
 if (is_mac) {
   protoc_convert("base_mach_port_rendezvous_convert_corpus") {
     sources = [
diff --git a/base/allocator/partition_allocator/pointers/raw_ptr.h b/base/allocator/partition_allocator/pointers/raw_ptr.h
index a41c60789..ac926de5 100644
--- a/base/allocator/partition_allocator/pointers/raw_ptr.h
+++ b/base/allocator/partition_allocator/pointers/raw_ptr.h
@@ -134,11 +134,6 @@
   //
   // Test only.
   kUseCountingWrapperForTest = (1 << 4),
-
-  // Helper trait that can be used to test raw_ptr's behaviour or conversions.
-  //
-  // Test only.
-  kDummyForTest = (1 << 5),
 };
 
 // Used to combine RawPtrTraits:
@@ -165,12 +160,12 @@
 }
 
 constexpr bool AreValid(RawPtrTraits traits) {
-  return Remove(traits,
-                RawPtrTraits::kMayDangle | RawPtrTraits::kDisableMTECheckedPtr |
-                    RawPtrTraits::kDisableHooks |
-                    RawPtrTraits::kAllowPtrArithmetic |
-                    RawPtrTraits::kUseCountingWrapperForTest |
-                    RawPtrTraits::kDummyForTest) == RawPtrTraits::kEmpty;
+  return Remove(traits, RawPtrTraits::kMayDangle |
+                            RawPtrTraits::kDisableMTECheckedPtr |
+                            RawPtrTraits::kDisableHooks |
+                            RawPtrTraits::kAllowPtrArithmetic |
+                            RawPtrTraits::kUseCountingWrapperForTest) ==
+         RawPtrTraits::kEmpty;
 }
 
 template <RawPtrTraits Traits>
@@ -839,37 +834,17 @@
 #endif  // BUILDFLAG(ENABLE_BACKUP_REF_PTR_SUPPORT) ||
         // BUILDFLAG(USE_ASAN_UNOWNED_PTR)
 
-  // Cross-kind copy constructor.
-  // Move is not supported as different traits may use different ref-counts, so
-  // let move operations degrade to copy, which handles it well.
   template <RawPtrTraits PassedTraits,
             typename Unused = std::enable_if_t<Traits != PassedTraits>>
   PA_ALWAYS_INLINE explicit raw_ptr(const raw_ptr<T, PassedTraits>& p) noexcept
       : wrapped_ptr_(Impl::WrapRawPtrForDuplication(
             raw_ptr_traits::TraitsToImpl<PassedTraits>::Impl::
-                UnsafelyUnwrapPtrForDuplication(p.wrapped_ptr_))) {
-    // Limit cross-kind conversions only to cases where kMayDangle gets added,
-    // because that's needed for Unretained(Ref)Wrapper. Use a static_assert,
-    // instead of disabling via SFINAE, so that the compiler catches other
-    // conversions. Otherwise implicit raw_ptr<T> -> T* -> raw_ptr<> route will
-    // be taken.
-    static_assert(Traits == (PassedTraits | RawPtrTraits::kMayDangle));
-  }
+                UnsafelyUnwrapPtrForDuplication(p.wrapped_ptr_))) {}
 
-  // Cross-kind assignment.
-  // Move is not supported as different traits may use different ref-counts, so
-  // let move operations degrade to copy, which handles it well.
   template <RawPtrTraits PassedTraits,
             typename Unused = std::enable_if_t<Traits != PassedTraits>>
   PA_ALWAYS_INLINE raw_ptr& operator=(
       const raw_ptr<T, PassedTraits>& p) noexcept {
-    // Limit cross-kind assignments only to cases where kMayDangle gets added,
-    // because that's needed for Unretained(Ref)Wrapper. Use a static_assert,
-    // instead of disabling via SFINAE, so that the compiler catches other
-    // conversions. Otherwise implicit raw_ptr<T> -> T* -> raw_ptr<> route will
-    // be taken.
-    static_assert(Traits == (PassedTraits | RawPtrTraits::kMayDangle));
-
     Impl::ReleaseWrappedPtr(wrapped_ptr_);
     wrapped_ptr_ = Impl::WrapRawPtrForDuplication(
         raw_ptr_traits::TraitsToImpl<PassedTraits>::Impl::
diff --git a/base/allocator/partition_allocator/pointers/raw_ptr_unittest.cc b/base/allocator/partition_allocator/pointers/raw_ptr_unittest.cc
index 376ab43d..452ad003 100644
--- a/base/allocator/partition_allocator/pointers/raw_ptr_unittest.cc
+++ b/base/allocator/partition_allocator/pointers/raw_ptr_unittest.cc
@@ -1352,7 +1352,7 @@
   EXPECT_EQ(&x, absl::get<raw_ptr<int>>(vary));
 }
 
-TEST_F(RawPtrTest, CrossKindConversion) {
+TEST_F(RawPtrTest, CrossKindConversions) {
   int x = 123;
   CountingRawPtr<int> ptr1 = &x;
 
@@ -1360,37 +1360,28 @@
   RawPtrCountingMayDangleImpl::ClearCounters();
 
   CountingRawPtrMayDangle<int> ptr2(ptr1);
-  CountingRawPtrMayDangle<int> ptr3(std::move(ptr1));  // Falls back to copy.
 
   EXPECT_THAT((CountingRawPtrExpectations<RawPtrCountingImpl>{
                   .get_for_dereference_cnt = 0,
                   .get_for_extraction_cnt = 0,
-                  .get_for_duplication_cnt = 2}),
+                  .get_for_duplication_cnt = 1}),
               CountersMatch());
   EXPECT_THAT((CountingRawPtrExpectations<RawPtrCountingMayDangleImpl>{
-                  .wrap_raw_ptr_cnt = 0, .wrap_raw_ptr_for_dup_cnt = 2}),
+                  .wrap_raw_ptr_cnt = 0, .wrap_raw_ptr_for_dup_cnt = 1}),
               CountersMatch());
-}
-
-TEST_F(RawPtrTest, CrossKindAssignment) {
-  int x = 123;
-  CountingRawPtr<int> ptr1 = &x;
 
   RawPtrCountingImpl::ClearCounters();
   RawPtrCountingMayDangleImpl::ClearCounters();
 
-  CountingRawPtrMayDangle<int> ptr2;
-  CountingRawPtrMayDangle<int> ptr3;
-  ptr2 = ptr1;
-  ptr3 = std::move(ptr1);  // Falls back to copy.
+  CountingRawPtr<int> ptr3(ptr2);
 
-  EXPECT_THAT((CountingRawPtrExpectations<RawPtrCountingImpl>{
+  EXPECT_THAT((CountingRawPtrExpectations<RawPtrCountingMayDangleImpl>{
                   .get_for_dereference_cnt = 0,
                   .get_for_extraction_cnt = 0,
-                  .get_for_duplication_cnt = 2}),
+                  .get_for_duplication_cnt = 1}),
               CountersMatch());
-  EXPECT_THAT((CountingRawPtrExpectations<RawPtrCountingMayDangleImpl>{
-                  .wrap_raw_ptr_cnt = 0, .wrap_raw_ptr_for_dup_cnt = 2}),
+  EXPECT_THAT((CountingRawPtrExpectations<RawPtrCountingImpl>{
+                  .wrap_raw_ptr_cnt = 0, .wrap_raw_ptr_for_dup_cnt = 1}),
               CountersMatch());
 }
 
@@ -1850,36 +1841,48 @@
 }
 
 // Check the assignment operator works, even across raw_ptr with different
-// dangling policies (only `not dangling` -> `dangling` direction is supported).
+// dangling policies.
 TEST_F(BackupRefPtrTest, DanglingPtrAssignment) {
   ScopedInstallDanglingRawPtrChecks enable_dangling_raw_ptr_checks;
 
   void* ptr = allocator_.root()->Alloc(16, "");
 
-  raw_ptr<void, DisableDanglingPtrDetection> dangling_ptr;
+  raw_ptr<void, DisableDanglingPtrDetection> dangling_ptr_1;
+  raw_ptr<void, DisableDanglingPtrDetection> dangling_ptr_2;
   raw_ptr<void> not_dangling_ptr;
 
-  not_dangling_ptr = ptr;
-  dangling_ptr = not_dangling_ptr;
+  dangling_ptr_1 = ptr;
+
+  not_dangling_ptr = dangling_ptr_1;
+  dangling_ptr_1 = nullptr;
+
+  dangling_ptr_2 = not_dangling_ptr;
   not_dangling_ptr = nullptr;
 
   allocator_.root()->Free(ptr);
 
-  dangling_ptr = nullptr;
+  dangling_ptr_1 = dangling_ptr_2;
+  dangling_ptr_2 = nullptr;
+
+  not_dangling_ptr = dangling_ptr_1;
+  dangling_ptr_1 = nullptr;
 }
 
 // Check the copy constructor works, even across raw_ptr with different dangling
-// policies (only `not dangling` -> `dangling` direction is supported).
+// policies.
 TEST_F(BackupRefPtrTest, DanglingPtrCopyContructor) {
   ScopedInstallDanglingRawPtrChecks enable_dangling_raw_ptr_checks;
 
   void* ptr = allocator_.root()->Alloc(16, "");
 
-  raw_ptr<void> not_dangling_ptr(ptr);
-  raw_ptr<void, DisableDanglingPtrDetection> dangling_ptr(not_dangling_ptr);
+  raw_ptr<void, DisableDanglingPtrDetection> dangling_ptr_1(ptr);
+  raw_ptr<void> not_dangling_ptr_1(ptr);
 
-  not_dangling_ptr = nullptr;
-  dangling_ptr = nullptr;
+  raw_ptr<void, DisableDanglingPtrDetection> dangling_ptr_2(not_dangling_ptr_1);
+  raw_ptr<void> not_dangling_ptr_2(dangling_ptr_1);
+
+  not_dangling_ptr_1 = nullptr;
+  not_dangling_ptr_2 = nullptr;
 
   allocator_.root()->Free(ptr);
 }
diff --git a/base/allocator/partition_allocator/pointers/raw_ptr_unittest.nc b/base/allocator/partition_allocator/pointers/raw_ptr_unittest.nc
index 6375ade..4cc2688 100644
--- a/base/allocator/partition_allocator/pointers/raw_ptr_unittest.nc
+++ b/base/allocator/partition_allocator/pointers/raw_ptr_unittest.nc
@@ -227,66 +227,6 @@
 #endif  // !BUILDFLAG(HAS_64_BIT_POINTERS)
 }
 
-#elif defined(NCTEST_CROSS_KIND_CONVERSION_FROM_MAY_DANGLE) // [r"static assertion failed due to requirement '\(base::RawPtrTraits\)0U == \(\(base::RawPtrTraits\)1U | RawPtrTraits::kMayDangle\)'"]
-
-void WontCompile() {
-  raw_ptr<int, base::RawPtrTraits::kMayDangle> ptr = new int(3);
-  [[maybe_unused]] raw_ptr<int> ptr2(ptr);
-}
-
-#elif defined(NCTEST_CROSS_KIND_CONVERSION_FROM_DUMMY) // [r"static assertion failed due to requirement '\(base::RawPtrTraits\)0U == \(\(base::RawPtrTraits\)1U | RawPtrTraits::kMayDangle\)'"]
-
-void WontCompile() {
-  raw_ptr<int, base::RawPtrTraits::kDummyForTest> ptr = new int(3);
-  [[maybe_unused]] raw_ptr<int, base::RawPtrTraits::kMayDangle> ptr2(ptr);
-}
-
-#elif defined(NCTEST_CROSS_KIND_MOVE_CONVERSION_FROM_MAY_DANGLE) // [r"static assertion failed due to requirement '\(base::RawPtrTraits\)0U == \(\(base::RawPtrTraits\)1U | RawPtrTraits::kMayDangle\)'"]
-
-void WontCompile() {
-  raw_ptr<int, base::RawPtrTraits::kMayDangle> ptr = new int(3);
-  [[maybe_unused]] raw_ptr<int> ptr2(std::move(ptr));
-}
-
-#elif defined(NCTEST_CROSS_KIND_MOVE_CONVERSION_FROM_DUMMY) // [r"static assertion failed due to requirement '\(base::RawPtrTraits\)0U == \(\(base::RawPtrTraits\)1U | RawPtrTraits::kMayDangle\)'"]
-
-void WontCompile() {
-  raw_ptr<int, base::RawPtrTraits::kDummyForTest> ptr = new int(3);
-  [[maybe_unused]] raw_ptr<int, base::RawPtrTraits::kMayDangle> ptr2(std::move(ptr));
-}
-
-#elif defined(NCTEST_CROSS_KIND_ASSIGNMENT_FROM_MAY_DANGLE) // [r"static assertion failed due to requirement '\(base::RawPtrTraits\)1U == \(\(base::RawPtrTraits\)16U | RawPtrTraits::kMayDangle\)'"]
-
-void WontCompile() {
-  raw_ptr<int, base::RawPtrTraits::kMayDangle> ptr = new int(3);
-  raw_ptr<int> ptr2;
-  ptr2 = ptr;
-}
-
-#elif defined(NCTEST_CROSS_KIND_ASSIGNMENT_FROM_DUMMY) // [r"static assertion failed due to requirement '\(base::RawPtrTraits\)1U == \(\(base::RawPtrTraits\)16U | RawPtrTraits::kMayDangle\)'"]
-
-void WontCompile() {
-  raw_ptr<int, base::RawPtrTraits::kDummyForTest> ptr = new int(3);
-  raw_ptr<int, base::RawPtrTraits::kMayDangle> ptr2;
-  ptr2 = ptr;
-}
-
-#elif defined(NCTEST_CROSS_KIND_MOVE_ASSIGNMENT_FROM_MAY_DANGLE) // [r"static assertion failed due to requirement '\(base::RawPtrTraits\)1U == \(\(base::RawPtrTraits\)16U | RawPtrTraits::kMayDangle\)'"]
-
-void WontCompile() {
-  raw_ptr<int, base::RawPtrTraits::kMayDangle> ptr = new int(3);
-  raw_ptr<int> ptr2;
-  ptr2 = std::move(ptr);
-}
-
-#elif defined(NCTEST_CROSS_KIND_MOVE_ASSIGNMENT_FROM_DUMMY) // [r"static assertion failed due to requirement '\(base::RawPtrTraits\)1U == \(\(base::RawPtrTraits\)16U | RawPtrTraits::kMayDangle\)'"]
-
-void WontCompile() {
-  raw_ptr<int, base::RawPtrTraits::kDummyForTest> ptr = new int(3);
-  raw_ptr<int, base::RawPtrTraits::kMayDangle> ptr2;
-  ptr2 = std::move(ptr);
-}
-
 #endif
 
 }  // namespace
diff --git a/base/debug/OWNERS b/base/debug/OWNERS
index 8aedfab..2b98b84 100644
--- a/base/debug/OWNERS
+++ b/base/debug/OWNERS
@@ -1,5 +1,2 @@
-# For activity tracking:
-per-file activity_*=bcwhite@chromium.org
-
 # For ASan integration:
 per-file asan_service*=file://base/memory/MIRACLE_PTR_OWNERS
diff --git a/base/debug/activity_analyzer.cc b/base/debug/activity_analyzer.cc
deleted file mode 100644
index a8ef8a9..0000000
--- a/base/debug/activity_analyzer.cc
+++ /dev/null
@@ -1,407 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/debug/activity_analyzer.h"
-
-#include <utility>
-
-#include "base/check_op.h"
-#include "base/containers/contains.h"
-#include "base/files/file.h"
-#include "base/files/file_path.h"
-#include "base/files/memory_mapped_file.h"
-#include "base/metrics/histogram_functions.h"
-#include "base/metrics/histogram_macros.h"
-#include "base/no_destructor.h"
-#include "base/ranges/algorithm.h"
-#include "base/strings/string_util.h"
-#include "build/build_config.h"
-
-namespace base {
-namespace debug {
-
-namespace {
-
-const ActivityUserData::Snapshot& GetEmptyUserDataSnapshot() {
-  // An empty snapshot that can be returned when there otherwise is none.
-  static const NoDestructor<ActivityUserData::Snapshot> empty_snapshot;
-  return *empty_snapshot;
-}
-
-// DO NOT CHANGE VALUES. This is logged persistently in a histogram.
-enum AnalyzerCreationError {
-  kInvalidMemoryMappedFile,
-  kPmaBadFile,
-  kPmaUninitialized,
-  kPmaDeleted,
-  kPmaCorrupt,
-  kAnalyzerCreationErrorMax  // Keep this last.
-};
-
-void LogAnalyzerCreationError(AnalyzerCreationError error) {
-  UmaHistogramEnumeration("ActivityTracker.Collect.AnalyzerCreationError",
-                          error, kAnalyzerCreationErrorMax);
-}
-
-}  // namespace
-
-ThreadActivityAnalyzer::Snapshot::Snapshot() = default;
-ThreadActivityAnalyzer::Snapshot::~Snapshot() = default;
-
-ThreadActivityAnalyzer::ThreadActivityAnalyzer(
-    const ThreadActivityTracker& tracker)
-    : activity_snapshot_valid_(tracker.CreateSnapshot(&activity_snapshot_)) {}
-
-ThreadActivityAnalyzer::ThreadActivityAnalyzer(void* base, size_t size)
-    : ThreadActivityAnalyzer(ThreadActivityTracker(base, size)) {}
-
-ThreadActivityAnalyzer::ThreadActivityAnalyzer(
-    PersistentMemoryAllocator* allocator,
-    PersistentMemoryAllocator::Reference reference)
-    : ThreadActivityAnalyzer(allocator->GetAsArray<char>(
-                                 reference,
-                                 GlobalActivityTracker::kTypeIdActivityTracker,
-                                 PersistentMemoryAllocator::kSizeAny),
-                             allocator->GetAllocSize(reference)) {}
-
-ThreadActivityAnalyzer::~ThreadActivityAnalyzer() = default;
-
-void ThreadActivityAnalyzer::AddGlobalInformation(
-    GlobalActivityAnalyzer* global) {
-  if (!IsValid())
-    return;
-
-  // User-data is held at the global scope even though it's referenced at the
-  // thread scope.
-  activity_snapshot_.user_data_stack.clear();
-  for (auto& activity : activity_snapshot_.activity_stack) {
-    // The global GetUserDataSnapshot will return an empty snapshot if the ref
-    // or id is not valid.
-    activity_snapshot_.user_data_stack.push_back(global->GetUserDataSnapshot(
-        activity_snapshot_.process_id, activity.user_data_ref,
-        activity.user_data_id));
-  }
-}
-
-GlobalActivityAnalyzer::GlobalActivityAnalyzer(
-    std::unique_ptr<PersistentMemoryAllocator> allocator)
-    : allocator_(std::move(allocator)),
-      analysis_stamp_(0LL),
-      allocator_iterator_(allocator_.get()) {
-  DCHECK(allocator_);
-}
-
-GlobalActivityAnalyzer::~GlobalActivityAnalyzer() = default;
-
-// static
-std::unique_ptr<GlobalActivityAnalyzer>
-GlobalActivityAnalyzer::CreateWithAllocator(
-    std::unique_ptr<PersistentMemoryAllocator> allocator) {
-  if (allocator->GetMemoryState() ==
-      PersistentMemoryAllocator::MEMORY_UNINITIALIZED) {
-    LogAnalyzerCreationError(kPmaUninitialized);
-    return nullptr;
-  }
-  if (allocator->GetMemoryState() ==
-      PersistentMemoryAllocator::MEMORY_DELETED) {
-    LogAnalyzerCreationError(kPmaDeleted);
-    return nullptr;
-  }
-  if (allocator->IsCorrupt()) {
-    LogAnalyzerCreationError(kPmaCorrupt);
-    return nullptr;
-  }
-
-  return std::make_unique<GlobalActivityAnalyzer>(std::move(allocator));
-}
-
-#if !BUILDFLAG(IS_NACL)
-// static
-std::unique_ptr<GlobalActivityAnalyzer> GlobalActivityAnalyzer::CreateWithFile(
-    const FilePath& file_path) {
-  // Map the file read-write so it can guarantee consistency between
-  // the analyzer and any trackers that my still be active.
-  std::unique_ptr<MemoryMappedFile> mmfile(new MemoryMappedFile());
-  if (!mmfile->Initialize(file_path, MemoryMappedFile::READ_WRITE)) {
-    LogAnalyzerCreationError(kInvalidMemoryMappedFile);
-    return nullptr;
-  }
-
-  if (!FilePersistentMemoryAllocator::IsFileAcceptable(*mmfile, true)) {
-    LogAnalyzerCreationError(kPmaBadFile);
-    return nullptr;
-  }
-
-  return CreateWithAllocator(std::make_unique<FilePersistentMemoryAllocator>(
-      std::move(mmfile), 0, 0, StringPiece(), /*readonly=*/true));
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-// static
-std::unique_ptr<GlobalActivityAnalyzer>
-GlobalActivityAnalyzer::CreateWithSharedMemory(
-    base::ReadOnlySharedMemoryMapping mapping) {
-  if (!mapping.IsValid() ||
-      !ReadOnlySharedPersistentMemoryAllocator::IsSharedMemoryAcceptable(
-          mapping)) {
-    return nullptr;
-  }
-  return CreateWithAllocator(
-      std::make_unique<ReadOnlySharedPersistentMemoryAllocator>(
-          std::move(mapping), 0, StringPiece()));
-}
-
-ProcessId GlobalActivityAnalyzer::GetFirstProcess() {
-  PrepareAllAnalyzers();
-  return GetNextProcess();
-}
-
-ProcessId GlobalActivityAnalyzer::GetNextProcess() {
-  if (process_ids_.empty())
-    return 0;
-  ProcessId pid = process_ids_.back();
-  process_ids_.pop_back();
-  return pid;
-}
-
-ThreadActivityAnalyzer* GlobalActivityAnalyzer::GetFirstAnalyzer(
-    ProcessId pid) {
-  analyzers_iterator_ = analyzers_.begin();
-  analyzers_iterator_pid_ = pid;
-  if (analyzers_iterator_ == analyzers_.end())
-    return nullptr;
-  int64_t create_stamp;
-  if (analyzers_iterator_->second->GetProcessId(&create_stamp) == pid &&
-      create_stamp <= analysis_stamp_) {
-    return analyzers_iterator_->second.get();
-  }
-  return GetNextAnalyzer();
-}
-
-ThreadActivityAnalyzer* GlobalActivityAnalyzer::GetNextAnalyzer() {
-  DCHECK(analyzers_iterator_ != analyzers_.end());
-  int64_t create_stamp;
-  do {
-    ++analyzers_iterator_;
-    if (analyzers_iterator_ == analyzers_.end())
-      return nullptr;
-  } while (analyzers_iterator_->second->GetProcessId(&create_stamp) !=
-               analyzers_iterator_pid_ ||
-           create_stamp > analysis_stamp_);
-  return analyzers_iterator_->second.get();
-}
-
-ThreadActivityAnalyzer* GlobalActivityAnalyzer::GetAnalyzerForThread(
-    const ThreadKey& key) {
-  auto found = analyzers_.find(key);
-  if (found == analyzers_.end())
-    return nullptr;
-  return found->second.get();
-}
-
-ActivityUserData::Snapshot GlobalActivityAnalyzer::GetUserDataSnapshot(
-    ProcessId pid,
-    uint32_t ref,
-    uint32_t id) {
-  ActivityUserData::Snapshot snapshot;
-
-  void* memory = allocator_->GetAsArray<char>(
-      ref, GlobalActivityTracker::kTypeIdUserDataRecord,
-      PersistentMemoryAllocator::kSizeAny);
-  if (memory) {
-    size_t size = allocator_->GetAllocSize(ref);
-    const ActivityUserData user_data(memory, size);
-    user_data.CreateSnapshot(&snapshot);
-    ProcessId process_id;
-    int64_t create_stamp;
-    if (!ActivityUserData::GetOwningProcessId(memory, &process_id,
-                                              &create_stamp) ||
-        process_id != pid || user_data.id() != id) {
-      // This allocation has been overwritten since it was created. Return an
-      // empty snapshot because whatever was captured is incorrect.
-      snapshot.clear();
-    }
-  }
-
-  return snapshot;
-}
-
-const ActivityUserData::Snapshot&
-GlobalActivityAnalyzer::GetProcessDataSnapshot(ProcessId pid) {
-  auto iter = process_data_.find(pid);
-  if (iter == process_data_.end())
-    return GetEmptyUserDataSnapshot();
-  if (iter->second.create_stamp > analysis_stamp_)
-    return GetEmptyUserDataSnapshot();
-  DCHECK_EQ(pid, iter->second.process_id);
-  return iter->second.data;
-}
-
-std::vector<std::string> GlobalActivityAnalyzer::GetLogMessages() {
-  std::vector<std::string> messages;
-  PersistentMemoryAllocator::Reference ref;
-
-  PersistentMemoryAllocator::Iterator iter(allocator_.get());
-  while ((ref = iter.GetNextOfType(
-              GlobalActivityTracker::kTypeIdGlobalLogMessage)) != 0) {
-    const char* message = allocator_->GetAsArray<char>(
-        ref, GlobalActivityTracker::kTypeIdGlobalLogMessage,
-        PersistentMemoryAllocator::kSizeAny);
-    if (message)
-      messages.push_back(message);
-  }
-
-  return messages;
-}
-
-std::vector<GlobalActivityTracker::ModuleInfo>
-GlobalActivityAnalyzer::GetModules(ProcessId pid) {
-  std::vector<GlobalActivityTracker::ModuleInfo> modules;
-
-  PersistentMemoryAllocator::Iterator iter(allocator_.get());
-  const GlobalActivityTracker::ModuleInfoRecord* record;
-  while (
-      (record =
-           iter.GetNextOfObject<GlobalActivityTracker::ModuleInfoRecord>()) !=
-      nullptr) {
-    ProcessId process_id;
-    int64_t create_stamp;
-    if (!OwningProcess::GetOwningProcessId(&record->owner, &process_id,
-                                           &create_stamp) ||
-        pid != process_id || create_stamp > analysis_stamp_) {
-      continue;
-    }
-    GlobalActivityTracker::ModuleInfo info;
-    if (record->DecodeTo(&info, allocator_->GetAllocSize(
-                                    allocator_->GetAsReference(record)))) {
-      modules.push_back(std::move(info));
-    }
-  }
-
-  return modules;
-}
-
-GlobalActivityAnalyzer::ProgramLocation
-GlobalActivityAnalyzer::GetProgramLocationFromAddress(uint64_t address) {
-  // This should be implemented but it's never been a priority.
-  return { 0, 0 };
-}
-
-bool GlobalActivityAnalyzer::IsDataComplete() const {
-  DCHECK(allocator_);
-  return !allocator_->IsFull();
-}
-
-GlobalActivityAnalyzer::UserDataSnapshot::UserDataSnapshot() = default;
-GlobalActivityAnalyzer::UserDataSnapshot::UserDataSnapshot(
-    const UserDataSnapshot& rhs) = default;
-GlobalActivityAnalyzer::UserDataSnapshot::UserDataSnapshot(
-    UserDataSnapshot&& rhs) = default;
-GlobalActivityAnalyzer::UserDataSnapshot::~UserDataSnapshot() = default;
-
-void GlobalActivityAnalyzer::PrepareAllAnalyzers() {
-  // Record the time when analysis started.
-  analysis_stamp_ = base::Time::Now().ToInternalValue();
-
-  // Fetch all the records. This will retrieve only ones created since the
-  // last run since the PMA iterator will continue from where it left off.
-  uint32_t type;
-  PersistentMemoryAllocator::Reference ref;
-  while ((ref = allocator_iterator_.GetNext(&type)) != 0) {
-    switch (type) {
-      case GlobalActivityTracker::kTypeIdActivityTracker:
-      case GlobalActivityTracker::kTypeIdActivityTrackerFree:
-      case GlobalActivityTracker::kTypeIdProcessDataRecord:
-      case GlobalActivityTracker::kTypeIdProcessDataRecordFree:
-      case PersistentMemoryAllocator::kTypeIdTransitioning:
-        // Active, free, or transitioning: add it to the list of references
-        // for later analysis.
-        memory_references_.insert(ref);
-        break;
-    }
-  }
-
-  // Clear out any old information.
-  analyzers_.clear();
-  process_data_.clear();
-  process_ids_.clear();
-  std::set<ProcessId> seen_pids;
-
-  // Go through all the known references and create objects for them with
-  // snapshots of the current state.
-  for (PersistentMemoryAllocator::Reference memory_ref : memory_references_) {
-    // Get the actual data segment for the tracker. Any type will do since it
-    // is checked below.
-    void* const base = allocator_->GetAsArray<char>(
-        memory_ref, PersistentMemoryAllocator::kTypeIdAny,
-        PersistentMemoryAllocator::kSizeAny);
-    const size_t size = allocator_->GetAllocSize(memory_ref);
-    if (!base)
-      continue;
-
-    switch (allocator_->GetType(memory_ref)) {
-      case GlobalActivityTracker::kTypeIdActivityTracker: {
-        // Create the analyzer on the data. This will capture a snapshot of the
-        // tracker state. This can fail if the tracker is somehow corrupted or
-        // is in the process of shutting down.
-        std::unique_ptr<ThreadActivityAnalyzer> analyzer(
-            new ThreadActivityAnalyzer(base, size));
-        if (!analyzer->IsValid())
-          continue;
-        analyzer->AddGlobalInformation(this);
-
-        // Track PIDs.
-        ProcessId pid = analyzer->GetProcessId();
-        if (seen_pids.find(pid) == seen_pids.end()) {
-          process_ids_.push_back(pid);
-          seen_pids.insert(pid);
-        }
-
-        // Add this analyzer to the map of known ones, indexed by a unique
-        // thread
-        // identifier.
-        DCHECK(!base::Contains(analyzers_, analyzer->GetThreadKey()));
-        analyzer->allocator_reference_ = ref;
-        analyzers_[analyzer->GetThreadKey()] = std::move(analyzer);
-      } break;
-
-      case GlobalActivityTracker::kTypeIdProcessDataRecord: {
-        // Get the PID associated with this data record.
-        ProcessId process_id;
-        int64_t create_stamp;
-        ActivityUserData::GetOwningProcessId(base, &process_id, &create_stamp);
-        DCHECK(!base::Contains(process_data_, process_id));
-
-        // Create a snapshot of the data. This can fail if the data is somehow
-        // corrupted or the process shutdown and the memory being released.
-        UserDataSnapshot& snapshot = process_data_[process_id];
-        snapshot.process_id = process_id;
-        snapshot.create_stamp = create_stamp;
-        const ActivityUserData process_data(base, size);
-        if (!process_data.CreateSnapshot(&snapshot.data))
-          break;
-
-        // Check that nothing changed. If it did, forget what was recorded.
-        ActivityUserData::GetOwningProcessId(base, &process_id, &create_stamp);
-        if (process_id != snapshot.process_id ||
-            create_stamp != snapshot.create_stamp) {
-          process_data_.erase(process_id);
-          break;
-        }
-
-        // Track PIDs.
-        if (seen_pids.find(process_id) == seen_pids.end()) {
-          process_ids_.push_back(process_id);
-          seen_pids.insert(process_id);
-        }
-      } break;
-    }
-  }
-
-  // Reverse the list of PIDs so that they get popped in the order found.
-  ranges::reverse(process_ids_);
-}
-
-}  // namespace debug
-}  // namespace base
diff --git a/base/debug/activity_analyzer.h b/base/debug/activity_analyzer.h
deleted file mode 100644
index 8f864a5..0000000
--- a/base/debug/activity_analyzer.h
+++ /dev/null
@@ -1,260 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef BASE_DEBUG_ACTIVITY_ANALYZER_H_
-#define BASE_DEBUG_ACTIVITY_ANALYZER_H_
-
-#include <map>
-#include <memory>
-#include <set>
-#include <string>
-#include <vector>
-
-#include "base/base_export.h"
-#include "base/debug/activity_tracker.h"
-#include "base/memory/shared_memory_mapping.h"
-#include "build/build_config.h"
-
-namespace base {
-namespace debug {
-
-class GlobalActivityAnalyzer;
-
-// This class provides analysis of data captured from a ThreadActivityTracker.
-// When created, it takes a snapshot of the data held by the tracker and
-// makes that information available to other code.
-class BASE_EXPORT ThreadActivityAnalyzer {
- public:
-  struct BASE_EXPORT Snapshot : ThreadActivityTracker::Snapshot {
-    Snapshot();
-    ~Snapshot();
-
-    // The user-data snapshot for an activity, matching the |activity_stack|
-    // of ThreadActivityTracker::Snapshot, if any.
-    std::vector<ActivityUserData::Snapshot> user_data_stack;
-  };
-
-  // This class provides keys that uniquely identify a thread, even across
-  // multiple processes.
-  class ThreadKey {
-   public:
-    ThreadKey(ProcessId pid, int64_t tid) : pid_(pid), tid_(tid) {}
-
-    bool operator<(const ThreadKey& rhs) const {
-      if (pid_ != rhs.pid_)
-        return pid_ < rhs.pid_;
-      return tid_ < rhs.tid_;
-    }
-
-    bool operator==(const ThreadKey& rhs) const {
-      return (pid_ == rhs.pid_ && tid_ == rhs.tid_);
-    }
-
-   private:
-    ProcessId pid_;
-    int64_t tid_;
-  };
-
-  // Creates an analyzer for an existing activity |tracker|. A snapshot is taken
-  // immediately and the tracker is not referenced again.
-  explicit ThreadActivityAnalyzer(const ThreadActivityTracker& tracker);
-
-  // Creates an analyzer for a block of memory currently or previously in-use
-  // by an activity-tracker. A snapshot is taken immediately and the memory
-  // is not referenced again.
-  ThreadActivityAnalyzer(void* base, size_t size);
-
-  // Creates an analyzer for a block of memory held within a persistent-memory
-  // |allocator| at the given |reference|. A snapshot is taken immediately and
-  // the memory is not referenced again.
-  ThreadActivityAnalyzer(PersistentMemoryAllocator* allocator,
-                         PersistentMemoryAllocator::Reference reference);
-
-  ThreadActivityAnalyzer(const ThreadActivityAnalyzer&) = delete;
-  ThreadActivityAnalyzer& operator=(const ThreadActivityAnalyzer&) = delete;
-
-  ~ThreadActivityAnalyzer();
-
-  // Adds information from the global analyzer.
-  void AddGlobalInformation(GlobalActivityAnalyzer* global);
-
-  // Returns true iff the contained data is valid. Results from all other
-  // methods are undefined if this returns false.
-  bool IsValid() { return activity_snapshot_valid_; }
-
-  // Gets the process id and its creation stamp.
-  ProcessId GetProcessId(int64_t* out_stamp = nullptr) {
-    if (out_stamp)
-      *out_stamp = activity_snapshot_.create_stamp;
-    return activity_snapshot_.process_id;
-  }
-
-  // Gets the name of the thread.
-  const std::string& GetThreadName() {
-    return activity_snapshot_.thread_name;
-  }
-
-  // Gets the TheadKey for this thread.
-  ThreadKey GetThreadKey() {
-    return ThreadKey(activity_snapshot_.process_id,
-                     activity_snapshot_.thread_id);
-  }
-
-  const Snapshot& activity_snapshot() { return activity_snapshot_; }
-
- private:
-  friend class GlobalActivityAnalyzer;
-
-  // The snapshot of the activity tracker taken at the moment of construction.
-  Snapshot activity_snapshot_;
-
-  // Flag indicating if the snapshot data is valid.
-  bool activity_snapshot_valid_;
-
-  // A reference into a persistent memory allocator, used by the global
-  // analyzer to know where this tracker came from.
-  PersistentMemoryAllocator::Reference allocator_reference_ = 0;
-};
-
-
-// This class manages analyzers for all known processes and threads as stored
-// in a persistent memory allocator. It supports retrieval of them through
-// iteration and directly using a ThreadKey, which allows for cross-references
-// to be resolved.
-// Note that though atomic snapshots are used and everything has its snapshot
-// taken at the same time, the multi-snapshot itself is not atomic and thus may
-// show small inconsistencies between threads if attempted on a live system.
-class BASE_EXPORT GlobalActivityAnalyzer {
- public:
-  struct ProgramLocation {
-    int module;
-    uintptr_t offset;
-  };
-
-  using ThreadKey = ThreadActivityAnalyzer::ThreadKey;
-
-  // Creates a global analyzer from a persistent memory allocator.
-  explicit GlobalActivityAnalyzer(
-      std::unique_ptr<PersistentMemoryAllocator> allocator);
-
-  GlobalActivityAnalyzer(const GlobalActivityAnalyzer&) = delete;
-  GlobalActivityAnalyzer& operator=(const GlobalActivityAnalyzer&) = delete;
-
-  ~GlobalActivityAnalyzer();
-
-  // Creates a global analyzer using a given persistent-memory |allocator|.
-  static std::unique_ptr<GlobalActivityAnalyzer> CreateWithAllocator(
-      std::unique_ptr<PersistentMemoryAllocator> allocator);
-
-#if !BUILDFLAG(IS_NACL)
-  // Creates a global analyzer using the contents of a file given in
-  // |file_path|.
-  static std::unique_ptr<GlobalActivityAnalyzer> CreateWithFile(
-      const FilePath& file_path);
-#endif  // !BUILDFLAG(IS_NACL)
-
-  // Like above but accesses an allocator in a mapped shared-memory segment.
-  static std::unique_ptr<GlobalActivityAnalyzer> CreateWithSharedMemory(
-      base::ReadOnlySharedMemoryMapping mapping);
-
-  // Iterates over all known valid processes and returns their PIDs or zero
-  // if there are no more. Calls to GetFirstProcess() will perform a global
-  // snapshot in order to provide a relatively consistent state across the
-  // future calls to GetNextProcess() and GetFirst/NextAnalyzer(). PIDs are
-  // returned in the order they're found meaning that a first-launched
-  // controlling process will be found first. Note, however, that space
-  // freed by an exiting process may be re-used by a later process.
-  ProcessId GetFirstProcess();
-  ProcessId GetNextProcess();
-
-  // Iterates over all known valid analyzers for the a given process or returns
-  // null if there are no more.
-  //
-  // GetFirstProcess() must be called first in order to capture a global
-  // snapshot! Ownership stays with the global analyzer object and all existing
-  // analyzer pointers are invalidated when GetFirstProcess() is called.
-  ThreadActivityAnalyzer* GetFirstAnalyzer(ProcessId pid);
-  ThreadActivityAnalyzer* GetNextAnalyzer();
-
-  // Gets the analyzer for a specific thread or null if there is none.
-  // Ownership stays with the global analyzer object.
-  ThreadActivityAnalyzer* GetAnalyzerForThread(const ThreadKey& key);
-
-  // Extract user data based on a reference and its identifier.
-  ActivityUserData::Snapshot GetUserDataSnapshot(ProcessId pid,
-                                                 uint32_t ref,
-                                                 uint32_t id);
-
-  // Extract the data for a specific process. An empty snapshot will be
-  // returned if the process is not known.
-  const ActivityUserData::Snapshot& GetProcessDataSnapshot(ProcessId pid);
-
-  // Gets all log messages stored within.
-  std::vector<std::string> GetLogMessages();
-
-  // Gets modules corresponding to a pid. This pid must come from a call to
-  // GetFirst/NextProcess. Only modules that were first registered prior to
-  // GetFirstProcess's snapshot are returned.
-  std::vector<GlobalActivityTracker::ModuleInfo> GetModules(ProcessId pid);
-
-  // Gets the corresponding "program location" for a given "program counter".
-  // This will return {0,0} if no mapping could be found.
-  ProgramLocation GetProgramLocationFromAddress(uint64_t address);
-
-  // Returns whether the data is complete. Data can be incomplete if the
-  // recording size quota is hit.
-  bool IsDataComplete() const;
-
- private:
-  using AnalyzerMap =
-      std::map<ThreadKey, std::unique_ptr<ThreadActivityAnalyzer>>;
-
-  struct UserDataSnapshot {
-    // Complex class needs out-of-line ctor/dtor.
-    UserDataSnapshot();
-    UserDataSnapshot(const UserDataSnapshot& rhs);
-    UserDataSnapshot(UserDataSnapshot&& rhs);
-    ~UserDataSnapshot();
-
-    ProcessId process_id;
-    int64_t create_stamp;
-    ActivityUserData::Snapshot data;
-  };
-
-  // Finds, creates, and indexes analyzers for all known processes and threads.
-  void PrepareAllAnalyzers();
-
-  // The persistent memory allocator holding all tracking data.
-  std::unique_ptr<PersistentMemoryAllocator> allocator_;
-
-  // The time stamp when analysis began. This is used to prevent looking into
-  // process IDs that get reused when analyzing a live system.
-  int64_t analysis_stamp_;
-
-  // The iterator for finding tracking information in the allocator.
-  PersistentMemoryAllocator::Iterator allocator_iterator_;
-
-  // A set of all interesting memory references found within the allocator.
-  std::set<PersistentMemoryAllocator::Reference> memory_references_;
-
-  // A set of all process-data memory references found within the allocator.
-  std::map<ProcessId, UserDataSnapshot> process_data_;
-
-  // A set of all process IDs collected during PrepareAllAnalyzers. These are
-  // popped and returned one-by-one with calls to GetFirst/NextProcess().
-  std::vector<ProcessId> process_ids_;
-
-  // A map, keyed by ThreadKey, of all valid activity analyzers.
-  AnalyzerMap analyzers_;
-
-  // The iterator within the analyzers_ map for returning analyzers through
-  // first/next iteration.
-  AnalyzerMap::iterator analyzers_iterator_;
-  ProcessId analyzers_iterator_pid_;
-};
-
-}  // namespace debug
-}  // namespace base
-
-#endif  // BASE_DEBUG_ACTIVITY_ANALYZER_H_
diff --git a/base/debug/activity_analyzer_fuzzer.cc b/base/debug/activity_analyzer_fuzzer.cc
deleted file mode 100644
index a6cb5778..0000000
--- a/base/debug/activity_analyzer_fuzzer.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/debug/activity_analyzer.h"
-#include "base/logging.h"
-#include "base/metrics/persistent_memory_allocator.h"
-
-struct Environment {
-  Environment() { logging::SetMinLogLevel(logging::LOG_FATAL); }
-};
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  static Environment env;
-
-  if (size < 64u) {  // sizeof(base::PersistentMemoryAllocator::SharedMetadata)
-    return 0;
-  }
-
-  std::unique_ptr<base::PersistentMemoryAllocator> allocator =
-      std::make_unique<base::PersistentMemoryAllocator>(
-          const_cast<uint8_t*>(data), size, /*page_size=*/0, /*id=*/0,
-          /*name=*/"",
-          /*read_only=*/true);
-
-  base::debug::GlobalActivityAnalyzer gaa(std::move(allocator));
-  std::ignore = gaa.GetFirstProcess();
-
-  return 0;
-}
diff --git a/base/debug/activity_analyzer_fuzzer.dict b/base/debug/activity_analyzer_fuzzer.dict
deleted file mode 100644
index 0c0c088..0000000
--- a/base/debug/activity_analyzer_fuzzer.dict
+++ /dev/null
@@ -1,13 +0,0 @@
-"\x00\x00\x00\x00"
-"\x00\x00\x00\x00\x00\x00\x00\x00"
-
-kTypeIdActivityTracker = "\xB3\x81\x73\x5D"
-kTypeIdUserDataRecord = "\xDA\xDD\x5E\x61"
-kTypeIdGlobalLogMessage = "\xFA\x34\xF4\x4C"
-kTypeIdProcessDataRecord = "\xDA\xDE\x5E\x61"
-kTypeIdActivityTrackerFree = "\x4C\x7E\x8C\xA2"
-kTypeIdUserDataRecordFree = "\x25\x22\xA1\x9E"
-kTypeIdProcessDataRecordFree  = "\x25\x21\xA1\x9E"
-
-kGlobalCookie = "\xDC\x05\x83\x40"
-kBlockCookieAllocated = "\x69\x92\x79\xC8"
diff --git a/base/debug/activity_analyzer_unittest.cc b/base/debug/activity_analyzer_unittest.cc
deleted file mode 100644
index 414ab869..0000000
--- a/base/debug/activity_analyzer_unittest.cc
+++ /dev/null
@@ -1,562 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/debug/activity_analyzer.h"
-
-#include <atomic>
-#include <memory>
-
-#include "base/auto_reset.h"
-#include "base/containers/contains.h"
-#include "base/debug/activity_tracker.h"
-#include "base/files/file.h"
-#include "base/files/file_util.h"
-#include "base/files/memory_mapped_file.h"
-#include "base/files/scoped_temp_dir.h"
-#include "base/functional/bind.h"
-#include "base/memory/ptr_util.h"
-#include "base/memory/raw_ptr.h"
-#include "base/memory/read_only_shared_memory_region.h"
-#include "base/pending_task.h"
-#include "base/process/process.h"
-#include "base/strings/string_piece.h"
-#include "base/synchronization/condition_variable.h"
-#include "base/synchronization/lock.h"
-#include "base/test/spin_wait.h"
-#include "base/threading/platform_thread.h"
-#include "base/threading/simple_thread.h"
-#include "base/time/time.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace base {
-namespace debug {
-
-namespace {
-
-class TestActivityTracker {
- public:
-  TestActivityTracker(std::unique_ptr<char[]> memory, size_t mem_size)
-      : mem_segment_(std::move(memory)),
-        tracker_(memset(mem_segment_.get(), 0, mem_size), mem_size) {}
-
-  ~TestActivityTracker() = default;
-
-  ThreadActivityTracker& tracker() { return tracker_; }
-
- private:
-  std::unique_ptr<char[]> mem_segment_;  // Must outlive `tracker_`
-  ThreadActivityTracker tracker_;
-};
-
-}  // namespace
-
-
-class ActivityAnalyzerTest : public testing::Test {
- public:
-  const int kMemorySize = 1 << 20;  // 1MiB
-  const int kStackSize  = 1 << 10;  // 1KiB
-
-  ActivityAnalyzerTest() = default;
-
-  ~ActivityAnalyzerTest() override {
-    GlobalActivityTracker* global_tracker = GlobalActivityTracker::Get();
-    if (global_tracker) {
-      global_tracker->ReleaseTrackerForCurrentThreadForTesting();
-      delete global_tracker;
-    }
-  }
-
-  std::unique_ptr<TestActivityTracker> CreateActivityTracker() {
-    std::unique_ptr<char[]> memory(new char[kStackSize]);
-    return std::make_unique<TestActivityTracker>(std::move(memory), kStackSize);
-  }
-
-  template <typename Function>
-  void AsOtherProcess(ProcessId pid, Function function) {
-    std::unique_ptr<GlobalActivityTracker> old_global =
-        GlobalActivityTracker::ReleaseForTesting();
-    ASSERT_TRUE(old_global);
-
-    PersistentMemoryAllocator* old_allocator = old_global->allocator();
-    std::unique_ptr<PersistentMemoryAllocator> new_allocator(
-        std::make_unique<PersistentMemoryAllocator>(
-            const_cast<void*>(old_allocator->data()), old_allocator->size(), 0,
-            0, "", false));
-    GlobalActivityTracker::CreateWithAllocator(std::move(new_allocator), 3,
-                                               pid);
-
-    function();
-
-    GlobalActivityTracker::ReleaseForTesting();
-    GlobalActivityTracker::SetForTesting(std::move(old_global));
-  }
-
-  static void DoNothing() {}
-};
-
-TEST_F(ActivityAnalyzerTest, ThreadAnalyzerConstruction) {
-  std::unique_ptr<TestActivityTracker> tracker = CreateActivityTracker();
-  {
-    ThreadActivityAnalyzer analyzer(tracker->tracker());
-    EXPECT_TRUE(analyzer.IsValid());
-    EXPECT_EQ(PlatformThread::GetName(), analyzer.GetThreadName());
-  }
-
-  // More tests once Analyzer does more.
-}
-
-
-// GlobalActivityAnalyzer tests below.
-
-namespace {
-
-class SimpleActivityThread : public SimpleThread {
- public:
-  SimpleActivityThread(const std::string& name,
-                       const void* source,
-                       Activity::Type activity,
-                       const ActivityData& data)
-      : SimpleThread(name, Options()),
-        source_(source),
-        activity_(activity),
-        data_(data),
-        ready_(false),
-        exit_(false),
-        exit_condition_(&lock_) {}
-
-  SimpleActivityThread(const SimpleActivityThread&) = delete;
-  SimpleActivityThread& operator=(const SimpleActivityThread&) = delete;
-
-  ~SimpleActivityThread() override = default;
-
-  void Run() override {
-    ThreadActivityTracker::ActivityId id =
-        GlobalActivityTracker::Get()
-            ->GetOrCreateTrackerForCurrentThread()
-            ->PushActivity(source_, activity_, data_);
-
-    {
-      AutoLock auto_lock(lock_);
-      ready_.store(true, std::memory_order_release);
-      while (!exit_.load(std::memory_order_relaxed))
-        exit_condition_.Wait();
-    }
-
-    GlobalActivityTracker::Get()->GetTrackerForCurrentThread()->PopActivity(id);
-  }
-
-  void Exit() {
-    AutoLock auto_lock(lock_);
-    exit_.store(true, std::memory_order_relaxed);
-    exit_condition_.Signal();
-  }
-
-  void WaitReady() {
-    SPIN_FOR_1_SECOND_OR_UNTIL_TRUE(ready_.load(std::memory_order_acquire));
-  }
-
- private:
-  raw_ptr<const void> source_;
-  Activity::Type activity_;
-  ActivityData data_;
-
-  std::atomic<bool> ready_;
-  std::atomic<bool> exit_;
-  Lock lock_;
-  ConditionVariable exit_condition_;
-};
-
-}  // namespace
-
-// TODO(1061320): Flaky under tsan.
-#if defined(THREAD_SANITIZER)
-#define MAYBE_GlobalAnalyzerConstruction DISABLED_GlobalAnalyzerConstruction
-#else
-#define MAYBE_GlobalAnalyzerConstruction GlobalAnalyzerConstruction
-#endif
-TEST_F(ActivityAnalyzerTest, MAYBE_GlobalAnalyzerConstruction) {
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-  GlobalActivityTracker::Get()->process_data().SetString("foo", "bar");
-
-  PersistentMemoryAllocator* allocator =
-      GlobalActivityTracker::Get()->allocator();
-  GlobalActivityAnalyzer analyzer(std::make_unique<PersistentMemoryAllocator>(
-      const_cast<void*>(allocator->data()), allocator->size(), 0, 0, "", true));
-
-  // The only thread at this point is the test thread of this process.
-  const ProcessId pid = analyzer.GetFirstProcess();
-  ASSERT_NE(ProcessId{0}, pid);
-  ThreadActivityAnalyzer* ta1 = analyzer.GetFirstAnalyzer(pid);
-  ASSERT_TRUE(ta1);
-  EXPECT_FALSE(analyzer.GetNextAnalyzer());
-  ThreadActivityAnalyzer::ThreadKey tk1 = ta1->GetThreadKey();
-  EXPECT_EQ(ta1, analyzer.GetAnalyzerForThread(tk1));
-  EXPECT_EQ(ProcessId{0}, analyzer.GetNextProcess());
-
-  // Create a second thread that will do something.
-  SimpleActivityThread t2("t2", nullptr, Activity::ACT_TASK,
-                          ActivityData::ForTask(11));
-  t2.Start();
-  t2.WaitReady();
-
-  // Now there should be two. Calling GetFirstProcess invalidates any
-  // previously returned analyzer pointers.
-  ASSERT_EQ(pid, analyzer.GetFirstProcess());
-  EXPECT_TRUE(analyzer.GetFirstAnalyzer(pid));
-  EXPECT_TRUE(analyzer.GetNextAnalyzer());
-  EXPECT_FALSE(analyzer.GetNextAnalyzer());
-  EXPECT_EQ(ProcessId{0}, analyzer.GetNextProcess());
-
-  // Let thread exit.
-  t2.Exit();
-  t2.Join();
-
-  // Now there should be only one again.
-  ASSERT_EQ(pid, analyzer.GetFirstProcess());
-  ThreadActivityAnalyzer* ta2 = analyzer.GetFirstAnalyzer(pid);
-  ASSERT_TRUE(ta2);
-  EXPECT_FALSE(analyzer.GetNextAnalyzer());
-  ThreadActivityAnalyzer::ThreadKey tk2 = ta2->GetThreadKey();
-  EXPECT_EQ(ta2, analyzer.GetAnalyzerForThread(tk2));
-  EXPECT_EQ(tk1, tk2);
-  EXPECT_EQ(ProcessId{0}, analyzer.GetNextProcess());
-
-  // Verify that there is process data.
-  const ActivityUserData::Snapshot& data_snapshot =
-      analyzer.GetProcessDataSnapshot(pid);
-  ASSERT_LE(1U, data_snapshot.size());
-  EXPECT_EQ("bar", data_snapshot.at("foo").GetString());
-}
-
-TEST_F(ActivityAnalyzerTest, GlobalAnalyzerFromSharedMemory) {
-  base::MappedReadOnlyRegion shm =
-      base::ReadOnlySharedMemoryRegion::Create(kMemorySize);
-  ASSERT_TRUE(shm.IsValid());
-  base::WritableSharedMemoryMapping rw_mapping = std::move(shm.mapping);
-  base::ReadOnlySharedMemoryMapping ro_mapping = shm.region.Map();
-  ASSERT_TRUE(ro_mapping.IsValid());
-
-  GlobalActivityTracker::CreateWithSharedMemory(std::move(rw_mapping), 0, "",
-                                                3);
-  GlobalActivityTracker::Get()->process_data().SetString("foo", "bar");
-
-  std::unique_ptr<GlobalActivityAnalyzer> analyzer =
-      GlobalActivityAnalyzer::CreateWithSharedMemory(std::move(ro_mapping));
-
-  const ProcessId pid = analyzer->GetFirstProcess();
-  ASSERT_NE(ProcessId{0}, pid);
-  const ActivityUserData::Snapshot& data_snapshot =
-      analyzer->GetProcessDataSnapshot(pid);
-  ASSERT_LE(1U, data_snapshot.size());
-  EXPECT_EQ("bar", data_snapshot.at("foo").GetString());
-}
-
-TEST_F(ActivityAnalyzerTest, UserDataSnapshotTest) {
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-  ThreadActivityAnalyzer::Snapshot tracker_snapshot;
-
-  const char string1a[] = "string1a";
-  const char string1b[] = "string1b";
-  const char string2a[] = "string2a";
-  const char string2b[] = "string2b";
-
-  PersistentMemoryAllocator* allocator =
-      GlobalActivityTracker::Get()->allocator();
-  GlobalActivityAnalyzer global_analyzer(
-      std::make_unique<PersistentMemoryAllocator>(
-          const_cast<void*>(allocator->data()), allocator->size(), 0, 0, "",
-          true));
-
-  ThreadActivityTracker* tracker =
-      GlobalActivityTracker::Get()->GetOrCreateTrackerForCurrentThread();
-
-  {
-    ScopedActivity activity1(1, 11, 111);
-    ActivityUserData& user_data1 = activity1.user_data();
-    user_data1.Set("raw1", "foo1", 4);
-    user_data1.SetString("string1", "bar1");
-    user_data1.SetChar("char1", '1');
-    user_data1.SetInt("int1", -1111);
-    user_data1.SetUint("uint1", 1111);
-    user_data1.SetBool("bool1", true);
-    user_data1.SetReference("ref1", string1a, sizeof(string1a));
-    user_data1.SetStringReference("sref1", string1b);
-
-    {
-      ScopedActivity activity2(2, 22, 222);
-      ActivityUserData& user_data2 = activity2.user_data();
-      user_data2.Set("raw2", "foo2", 4);
-      user_data2.SetString("string2", "bar2");
-      user_data2.SetChar("char2", '2');
-      user_data2.SetInt("int2", -2222);
-      user_data2.SetUint("uint2", 2222);
-      user_data2.SetBool("bool2", false);
-      user_data2.SetReference("ref2", string2a, sizeof(string2a));
-      user_data2.SetStringReference("sref2", string2b);
-
-      ASSERT_TRUE(tracker->CreateSnapshot(&tracker_snapshot));
-      ASSERT_EQ(2U, tracker_snapshot.activity_stack.size());
-
-      ThreadActivityAnalyzer analyzer(*tracker);
-      analyzer.AddGlobalInformation(&global_analyzer);
-      const ThreadActivityAnalyzer::Snapshot& analyzer_snapshot =
-          analyzer.activity_snapshot();
-      ASSERT_EQ(2U, analyzer_snapshot.user_data_stack.size());
-      const ActivityUserData::Snapshot& user_data =
-          analyzer_snapshot.user_data_stack.at(1);
-      EXPECT_EQ(8U, user_data.size());
-      ASSERT_TRUE(Contains(user_data, "raw2"));
-      EXPECT_EQ("foo2", user_data.at("raw2").Get());
-      ASSERT_TRUE(Contains(user_data, "string2"));
-      EXPECT_EQ("bar2", user_data.at("string2").GetString());
-      ASSERT_TRUE(Contains(user_data, "char2"));
-      EXPECT_EQ('2', user_data.at("char2").GetChar());
-      ASSERT_TRUE(Contains(user_data, "int2"));
-      EXPECT_EQ(-2222, user_data.at("int2").GetInt());
-      ASSERT_TRUE(Contains(user_data, "uint2"));
-      EXPECT_EQ(2222U, user_data.at("uint2").GetUint());
-      ASSERT_TRUE(Contains(user_data, "bool2"));
-      EXPECT_FALSE(user_data.at("bool2").GetBool());
-      ASSERT_TRUE(Contains(user_data, "ref2"));
-      EXPECT_EQ(string2a, user_data.at("ref2").GetReference().data());
-      EXPECT_EQ(sizeof(string2a), user_data.at("ref2").GetReference().size());
-      ASSERT_TRUE(Contains(user_data, "sref2"));
-      EXPECT_EQ(string2b, user_data.at("sref2").GetStringReference().data());
-      EXPECT_EQ(strlen(string2b),
-                user_data.at("sref2").GetStringReference().size());
-    }
-
-    ASSERT_TRUE(tracker->CreateSnapshot(&tracker_snapshot));
-    ASSERT_EQ(1U, tracker_snapshot.activity_stack.size());
-
-    ThreadActivityAnalyzer analyzer(*tracker);
-    analyzer.AddGlobalInformation(&global_analyzer);
-    const ThreadActivityAnalyzer::Snapshot& analyzer_snapshot =
-        analyzer.activity_snapshot();
-    ASSERT_EQ(1U, analyzer_snapshot.user_data_stack.size());
-    const ActivityUserData::Snapshot& user_data =
-        analyzer_snapshot.user_data_stack.at(0);
-    EXPECT_EQ(8U, user_data.size());
-    EXPECT_EQ("foo1", user_data.at("raw1").Get());
-    EXPECT_EQ("bar1", user_data.at("string1").GetString());
-    EXPECT_EQ('1', user_data.at("char1").GetChar());
-    EXPECT_EQ(-1111, user_data.at("int1").GetInt());
-    EXPECT_EQ(1111U, user_data.at("uint1").GetUint());
-    EXPECT_TRUE(user_data.at("bool1").GetBool());
-    EXPECT_EQ(string1a, user_data.at("ref1").GetReference().data());
-    EXPECT_EQ(sizeof(string1a), user_data.at("ref1").GetReference().size());
-    EXPECT_EQ(string1b, user_data.at("sref1").GetStringReference().data());
-    EXPECT_EQ(strlen(string1b),
-              user_data.at("sref1").GetStringReference().size());
-  }
-
-  ASSERT_TRUE(tracker->CreateSnapshot(&tracker_snapshot));
-  ASSERT_EQ(0U, tracker_snapshot.activity_stack.size());
-}
-
-TEST_F(ActivityAnalyzerTest, GlobalUserDataTest) {
-  const ProcessId pid = GetCurrentProcId();
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-
-  const char string1[] = "foo";
-  const char string2[] = "bar";
-
-  PersistentMemoryAllocator* allocator =
-      GlobalActivityTracker::Get()->allocator();
-  GlobalActivityAnalyzer global_analyzer(
-      std::make_unique<PersistentMemoryAllocator>(
-          const_cast<void*>(allocator->data()), allocator->size(), 0, 0, "",
-          true));
-
-  ActivityUserData& process_data = GlobalActivityTracker::Get()->process_data();
-  ASSERT_NE(0U, process_data.id());
-  process_data.Set("raw", "foo", 3);
-  process_data.SetString("string", "bar");
-  process_data.SetBool("bool1", false);
-  process_data.SetBool("bool2", false)->store(true, std::memory_order_relaxed);
-  process_data.SetChar("char1", '7');
-  process_data.SetChar("char2", '8')->store('9', std::memory_order_relaxed);
-  process_data.SetInt("int", -9998)->fetch_sub(1, std::memory_order_relaxed);
-  process_data.SetUint("uint", 9998)->fetch_add(1, std::memory_order_relaxed);
-  process_data.SetReference("ref", string1, sizeof(string1));
-  process_data.SetStringReference("sref", string2);
-
-  ProcessId first_pid = global_analyzer.GetFirstProcess();
-  DCHECK_EQ(pid, first_pid);
-  const ActivityUserData::Snapshot& snapshot =
-      global_analyzer.GetProcessDataSnapshot(pid);
-  ASSERT_TRUE(Contains(snapshot, "raw"));
-  EXPECT_EQ("foo", snapshot.at("raw").Get());
-  ASSERT_TRUE(Contains(snapshot, "string"));
-  EXPECT_EQ("bar", snapshot.at("string").GetString());
-  ASSERT_TRUE(Contains(snapshot, "bool1"));
-  EXPECT_FALSE(snapshot.at("bool1").GetBool());
-  ASSERT_TRUE(Contains(snapshot, "bool2"));
-  EXPECT_TRUE(snapshot.at("bool2").GetBool());
-  ASSERT_TRUE(Contains(snapshot, "char1"));
-  EXPECT_EQ('7', snapshot.at("char1").GetChar());
-  ASSERT_TRUE(Contains(snapshot, "char2"));
-  EXPECT_EQ('9', snapshot.at("char2").GetChar());
-  ASSERT_TRUE(Contains(snapshot, "int"));
-  EXPECT_EQ(-9999, snapshot.at("int").GetInt());
-  ASSERT_TRUE(Contains(snapshot, "uint"));
-  EXPECT_EQ(9999U, snapshot.at("uint").GetUint());
-  ASSERT_TRUE(Contains(snapshot, "ref"));
-  EXPECT_EQ(string1, snapshot.at("ref").GetReference().data());
-  EXPECT_EQ(sizeof(string1), snapshot.at("ref").GetReference().size());
-  ASSERT_TRUE(Contains(snapshot, "sref"));
-  EXPECT_EQ(string2, snapshot.at("sref").GetStringReference().data());
-  EXPECT_EQ(strlen(string2), snapshot.at("sref").GetStringReference().size());
-}
-
-TEST_F(ActivityAnalyzerTest, GlobalModulesTest) {
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-  GlobalActivityTracker* global = GlobalActivityTracker::Get();
-
-  PersistentMemoryAllocator* allocator = global->allocator();
-  GlobalActivityAnalyzer global_analyzer(
-      std::make_unique<PersistentMemoryAllocator>(
-          const_cast<void*>(allocator->data()), allocator->size(), 0, 0, "",
-          true));
-
-  GlobalActivityTracker::ModuleInfo info1;
-  info1.is_loaded = true;
-  info1.address = 0x12345678;
-  info1.load_time = 1111;
-  info1.size = 0xABCDEF;
-  info1.timestamp = 111;
-  info1.age = 11;
-  info1.identifier[0] = 1;
-  info1.file = "anything";
-  info1.debug_file = "elsewhere";
-
-  global->RecordModuleInfo(info1);
-  std::vector<GlobalActivityTracker::ModuleInfo> modules1;
-  modules1 = global_analyzer.GetModules(global_analyzer.GetFirstProcess());
-  ASSERT_EQ(1U, modules1.size());
-  GlobalActivityTracker::ModuleInfo& stored1a = modules1[0];
-  EXPECT_EQ(info1.is_loaded, stored1a.is_loaded);
-  EXPECT_EQ(info1.address, stored1a.address);
-  EXPECT_NE(info1.load_time, stored1a.load_time);
-  EXPECT_EQ(info1.size, stored1a.size);
-  EXPECT_EQ(info1.timestamp, stored1a.timestamp);
-  EXPECT_EQ(info1.age, stored1a.age);
-  EXPECT_EQ(info1.identifier[0], stored1a.identifier[0]);
-  EXPECT_EQ(info1.file, stored1a.file);
-  EXPECT_EQ(info1.debug_file, stored1a.debug_file);
-
-  info1.is_loaded = false;
-  global->RecordModuleInfo(info1);
-  modules1 = global_analyzer.GetModules(global_analyzer.GetFirstProcess());
-  ASSERT_EQ(1U, modules1.size());
-  GlobalActivityTracker::ModuleInfo& stored1b = modules1[0];
-  EXPECT_EQ(info1.is_loaded, stored1b.is_loaded);
-  EXPECT_EQ(info1.address, stored1b.address);
-  EXPECT_NE(info1.load_time, stored1b.load_time);
-  EXPECT_EQ(info1.size, stored1b.size);
-  EXPECT_EQ(info1.timestamp, stored1b.timestamp);
-  EXPECT_EQ(info1.age, stored1b.age);
-  EXPECT_EQ(info1.identifier[0], stored1b.identifier[0]);
-  EXPECT_EQ(info1.file, stored1b.file);
-  EXPECT_EQ(info1.debug_file, stored1b.debug_file);
-
-  GlobalActivityTracker::ModuleInfo info2;
-  info2.is_loaded = true;
-  info2.address = 0x87654321;
-  info2.load_time = 2222;
-  info2.size = 0xFEDCBA;
-  info2.timestamp = 222;
-  info2.age = 22;
-  info2.identifier[0] = 2;
-  info2.file = "nothing";
-  info2.debug_file = "farewell";
-
-  global->RecordModuleInfo(info2);
-  std::vector<GlobalActivityTracker::ModuleInfo> modules2;
-  modules2 = global_analyzer.GetModules(global_analyzer.GetFirstProcess());
-  ASSERT_EQ(2U, modules2.size());
-  GlobalActivityTracker::ModuleInfo& stored2 = modules2[1];
-  EXPECT_EQ(info2.is_loaded, stored2.is_loaded);
-  EXPECT_EQ(info2.address, stored2.address);
-  EXPECT_NE(info2.load_time, stored2.load_time);
-  EXPECT_EQ(info2.size, stored2.size);
-  EXPECT_EQ(info2.timestamp, stored2.timestamp);
-  EXPECT_EQ(info2.age, stored2.age);
-  EXPECT_EQ(info2.identifier[0], stored2.identifier[0]);
-  EXPECT_EQ(info2.file, stored2.file);
-  EXPECT_EQ(info2.debug_file, stored2.debug_file);
-}
-
-TEST_F(ActivityAnalyzerTest, GlobalLogMessages) {
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-
-  PersistentMemoryAllocator* allocator =
-      GlobalActivityTracker::Get()->allocator();
-  GlobalActivityAnalyzer analyzer(std::make_unique<PersistentMemoryAllocator>(
-      const_cast<void*>(allocator->data()), allocator->size(), 0, 0, "", true));
-
-  GlobalActivityTracker::Get()->RecordLogMessage("hello world");
-  GlobalActivityTracker::Get()->RecordLogMessage("foo bar");
-
-  std::vector<std::string> messages = analyzer.GetLogMessages();
-  ASSERT_EQ(2U, messages.size());
-  EXPECT_EQ("hello world", messages[0]);
-  EXPECT_EQ("foo bar", messages[1]);
-}
-
-TEST_F(ActivityAnalyzerTest, GlobalMultiProcess) {
-  constexpr ProcessId kProcessIdA = 1001;
-  constexpr ProcessId kProcessIdB = 2002;
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3,
-                                               kProcessIdA);
-  GlobalActivityTracker* global = GlobalActivityTracker::Get();
-  PersistentMemoryAllocator* allocator = global->allocator();
-  EXPECT_EQ(kProcessIdA, global->process_id());
-
-  ProcessId process_id;
-  int64_t create_stamp;
-  ActivityUserData::GetOwningProcessId(
-      GlobalActivityTracker::Get()->process_data().GetBaseAddress(),
-      &process_id, &create_stamp);
-  ASSERT_EQ(kProcessIdA, process_id);
-
-  GlobalActivityTracker::Get()->process_data().SetInt("pid",
-                                                      global->process_id());
-
-  GlobalActivityAnalyzer analyzer(std::make_unique<PersistentMemoryAllocator>(
-      const_cast<void*>(allocator->data()), allocator->size(), 0, 0, "", true));
-
-  AsOtherProcess(kProcessIdB, [&global, kProcessIdB]() {
-    ASSERT_NE(global, GlobalActivityTracker::Get());
-    EXPECT_EQ(kProcessIdB, GlobalActivityTracker::Get()->process_id());
-
-    ProcessId process_id;
-    int64_t create_stamp;
-    ActivityUserData::GetOwningProcessId(
-        GlobalActivityTracker::Get()->process_data().GetBaseAddress(),
-        &process_id, &create_stamp);
-    ASSERT_EQ(kProcessIdB, process_id);
-
-    GlobalActivityTracker::Get()->process_data().SetInt(
-        "pid", GlobalActivityTracker::Get()->process_id());
-  });
-  ASSERT_EQ(global, GlobalActivityTracker::Get());
-  EXPECT_EQ(kProcessIdA, GlobalActivityTracker::Get()->process_id());
-
-  const ProcessId pid1 = analyzer.GetFirstProcess();
-  ASSERT_EQ(kProcessIdA, pid1);
-  const ProcessId pid2 = analyzer.GetNextProcess();
-  ASSERT_EQ(kProcessIdB, pid2);
-  EXPECT_EQ(ProcessId{0}, analyzer.GetNextProcess());
-
-  const ActivityUserData::Snapshot& pdata1 =
-      analyzer.GetProcessDataSnapshot(pid1);
-  const ActivityUserData::Snapshot& pdata2 =
-      analyzer.GetProcessDataSnapshot(pid2);
-  EXPECT_EQ(kProcessIdA, static_cast<ProcessId>(pdata1.at("pid").GetInt()));
-  EXPECT_EQ(kProcessIdB, static_cast<ProcessId>(pdata2.at("pid").GetInt()));
-}
-
-}  // namespace debug
-}  // namespace base
diff --git a/base/debug/activity_tracker.cc b/base/debug/activity_tracker.cc
deleted file mode 100644
index c1d4d4b1..0000000
--- a/base/debug/activity_tracker.cc
+++ /dev/null
@@ -1,1803 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/debug/activity_tracker.h"
-
-#include <algorithm>
-#include <limits>
-#include <utility>
-
-#include "base/atomic_sequence_num.h"
-#include "base/bits.h"
-#include "base/containers/contains.h"
-#include "base/debug/stack_trace.h"
-#include "base/files/file.h"
-#include "base/files/file_path.h"
-#include "base/files/memory_mapped_file.h"
-#include "base/logging.h"
-#include "base/memory/ptr_util.h"
-#include "base/metrics/field_trial.h"
-#include "base/metrics/histogram_macros.h"
-#include "base/notreached.h"
-#include "base/pending_task.h"
-#include "base/pickle.h"
-#include "base/process/process.h"
-#include "base/process/process_handle.h"
-#include "base/strings/string_piece.h"
-#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/threading/platform_thread.h"
-#include "build/build_config.h"
-
-#if BUILDFLAG(IS_WIN)
-#include <windows.h>
-#endif
-
-namespace base {
-namespace debug {
-
-namespace {
-
-// The minimum depth a stack should support.
-const int kMinStackDepth = 2;
-
-// The amount of memory set aside for holding arbitrary user data (key/value
-// pairs) globally or associated with ActivityData entries.
-const size_t kUserDataSize = 1 << 10;     // 1 KiB
-const size_t kProcessDataSize = 4 << 10;  // 4 KiB
-const size_t kMaxUserDataNameLength =
-    static_cast<size_t>(std::numeric_limits<uint8_t>::max());
-
-// A constant used to indicate that module information is changing.
-const uint32_t kModuleInformationChanging = 0x80000000;
-
-// The key used to record process information.
-const char kProcessPhaseDataKey[] = "process-phase";
-
-// An atomically incrementing number, used to check for recreations of objects
-// in the same memory space.
-AtomicSequenceNumber g_next_id;
-
-// Gets the next non-zero identifier. It is only unique within a process.
-uint32_t GetNextDataId() {
-  uint32_t id;
-  while ((id = static_cast<uint32_t>(g_next_id.GetNext())) == 0) {
-  }
-  return id;
-}
-
-// Gets the current process-id, either from the GlobalActivityTracker if it
-// exists (where the PID can be defined for testing) or from the system if
-// there isn't such.
-ProcessId GetProcessId() {
-  GlobalActivityTracker* global = GlobalActivityTracker::Get();
-  if (global)
-    return global->process_id();
-  return GetCurrentProcId();
-}
-
-// Finds and reuses a specific allocation or creates a new one.
-PersistentMemoryAllocator::Reference AllocateFrom(
-    PersistentMemoryAllocator* allocator,
-    uint32_t from_type,
-    size_t size,
-    uint32_t to_type) {
-  PersistentMemoryAllocator::Iterator iter(allocator);
-  PersistentMemoryAllocator::Reference ref;
-  while ((ref = iter.GetNextOfType(from_type)) != 0) {
-    DCHECK_LE(size, allocator->GetAllocSize(ref));
-    // This can fail if a another thread has just taken it. It is assumed that
-    // the memory is cleared during the "free" operation.
-    if (allocator->ChangeType(ref, to_type, from_type, /*clear=*/false))
-      return ref;
-  }
-
-  return allocator->Allocate(size, to_type);
-}
-
-// Converts "tick" timing into wall time.
-Time WallTimeFromTickTime(int64_t ticks_start, int64_t ticks, Time time_start) {
-  return time_start + TimeDelta::FromInternalValue(ticks - ticks_start);
-}
-
-}  // namespace
-
-union ThreadRef {
-  int64_t as_id;
-#if BUILDFLAG(IS_WIN)
-  // On Windows, the handle itself is often a pseudo-handle with a common
-  // value meaning "this thread" and so the thread-id is used. The former
-  // can be converted to a thread-id with a system call.
-  PlatformThreadId as_tid;
-#elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
-  // On Posix and Fuchsia, the handle is always a unique identifier so no
-  // conversion needs to be done. However, its value is officially opaque so
-  // there is no one correct way to convert it to a numerical identifier.
-  PlatformThreadHandle::Handle as_handle;
-#endif
-};
-
-OwningProcess::OwningProcess() = default;
-OwningProcess::~OwningProcess() = default;
-
-void OwningProcess::Release_Initialize(ProcessId pid) {
-  uint32_t old_id = data_id.load(std::memory_order_acquire);
-  DCHECK_EQ(0U, old_id);
-  process_id = static_cast<int64_t>(pid != 0 ? pid : GetProcessId());
-  create_stamp = Time::Now().ToInternalValue();
-  data_id.store(GetNextDataId(), std::memory_order_release);
-}
-
-void OwningProcess::SetOwningProcessIdForTesting(ProcessId pid, int64_t stamp) {
-  DCHECK_NE(0U, data_id);
-  process_id = static_cast<int64_t>(pid);
-  create_stamp = stamp;
-}
-
-// static
-bool OwningProcess::GetOwningProcessId(const void* memory,
-                                       ProcessId* out_id,
-                                       int64_t* out_stamp) {
-  const OwningProcess* info = reinterpret_cast<const OwningProcess*>(memory);
-  uint32_t id = info->data_id.load(std::memory_order_acquire);
-  if (id == 0)
-    return false;
-
-  *out_id = static_cast<ProcessId>(info->process_id);
-  *out_stamp = info->create_stamp;
-  return id == info->data_id.load(std::memory_order_seq_cst);
-}
-
-// It doesn't matter what is contained in this (though it will be all zeros)
-// as only the address of it is important.
-const ActivityData kNullActivityData = {};
-
-ActivityData ActivityData::ForThread(const PlatformThreadHandle& handle) {
-  ThreadRef thread_ref;
-  thread_ref.as_id = 0;  // Zero the union in case other is smaller.
-#if BUILDFLAG(IS_WIN)
-  thread_ref.as_tid = ::GetThreadId(handle.platform_handle());
-#elif BUILDFLAG(IS_POSIX)
-  thread_ref.as_handle = handle.platform_handle();
-#endif
-  return ForThread(thread_ref.as_id);
-}
-
-ActivityTrackerMemoryAllocator::ActivityTrackerMemoryAllocator(
-    PersistentMemoryAllocator* allocator,
-    uint32_t object_type,
-    uint32_t object_free_type,
-    size_t object_size,
-    size_t cache_size,
-    bool make_iterable)
-    : allocator_(allocator),
-      object_type_(object_type),
-      object_free_type_(object_free_type),
-      object_size_(object_size),
-      cache_size_(cache_size),
-      make_iterable_(make_iterable),
-      iterator_(allocator),
-      cache_values_(new Reference[cache_size]),
-      cache_used_(0) {
-  DCHECK(allocator);
-}
-
-ActivityTrackerMemoryAllocator::~ActivityTrackerMemoryAllocator() = default;
-
-ActivityTrackerMemoryAllocator::Reference
-ActivityTrackerMemoryAllocator::GetObjectReference() {
-  // First see if there is a cached value that can be returned. This is much
-  // faster than searching the memory system for free blocks.
-  while (cache_used_ > 0) {
-    Reference cached = cache_values_[--cache_used_];
-    // Change the type of the cached object to the proper type and return it.
-    // If the type-change fails that means another thread has taken this from
-    // under us (via the search below) so ignore it and keep trying. Don't
-    // clear the memory because that was done when the type was made "free".
-    if (allocator_->ChangeType(cached, object_type_, object_free_type_, false))
-      return cached;
-  }
-
-  // Fetch the next "free" object from persistent memory. Rather than restart
-  // the iterator at the head each time and likely waste time going again
-  // through objects that aren't relevant, the iterator continues from where
-  // it last left off and is only reset when the end is reached. If the
-  // returned reference matches |last|, then it has wrapped without finding
-  // anything.
-  const Reference last = iterator_.GetLast();
-  while (true) {
-    uint32_t type;
-    Reference found = iterator_.GetNext(&type);
-    if (found && type == object_free_type_) {
-      // Found a free object. Change it to the proper type and return it. If
-      // the type-change fails that means another thread has taken this from
-      // under us so ignore it and keep trying.
-      if (allocator_->ChangeType(found, object_type_, object_free_type_, false))
-        return found;
-    }
-    if (found == last) {
-      // Wrapped. No desired object was found.
-      break;
-    }
-    if (!found) {
-      // Reached end; start over at the beginning.
-      iterator_.Reset();
-    }
-  }
-
-  // No free block was found so instead allocate a new one.
-  Reference allocated = allocator_->Allocate(object_size_, object_type_);
-  if (allocated && make_iterable_)
-    allocator_->MakeIterable(allocated);
-  return allocated;
-}
-
-void ActivityTrackerMemoryAllocator::ReleaseObjectReference(Reference ref) {
-  // Mark object as free.
-  bool success = allocator_->ChangeType(ref, object_free_type_, object_type_,
-                                        /*clear=*/true);
-  DCHECK(success);
-
-  // Add this reference to our "free" cache if there is space. If not, the type
-  // has still been changed to indicate that it is free so this (or another)
-  // thread can find it, albeit more slowly, using the iteration method above.
-  if (cache_used_ < cache_size_)
-    cache_values_[cache_used_++] = ref;
-}
-
-// static
-void Activity::FillFrom(Activity* activity,
-                        const void* program_counter,
-                        const void* origin,
-                        Type type,
-                        const ActivityData& data) {
-  activity->time_internal = base::TimeTicks::Now().ToInternalValue();
-  activity->calling_address = reinterpret_cast<uintptr_t>(program_counter);
-  activity->origin_address = reinterpret_cast<uintptr_t>(origin);
-  activity->activity_type = type;
-  activity->data = data;
-
-#if (!BUILDFLAG(IS_NACL) && DCHECK_IS_ON()) || defined(ADDRESS_SANITIZER)
-  // Create a stacktrace from the current location and get the addresses for
-  // improved debuggability.
-  StackTrace stack_trace;
-  size_t stack_depth;
-  const void* const* stack_addrs = stack_trace.Addresses(&stack_depth);
-  // Copy the stack addresses, ignoring the first one (here).
-  size_t i;
-  for (i = 1; i < stack_depth && i < kActivityCallStackSize; ++i) {
-    activity->call_stack[i - 1] = reinterpret_cast<uintptr_t>(stack_addrs[i]);
-  }
-  activity->call_stack[i - 1] = 0;
-#else
-  activity->call_stack[0] = 0;
-#endif
-}
-
-ActivityUserData::TypedValue::TypedValue() = default;
-ActivityUserData::TypedValue::TypedValue(const TypedValue& other) = default;
-ActivityUserData::TypedValue::~TypedValue() = default;
-
-StringPiece ActivityUserData::TypedValue::Get() const {
-  DCHECK_EQ(RAW_VALUE, type_);
-  return long_value_;
-}
-
-StringPiece ActivityUserData::TypedValue::GetString() const {
-  DCHECK_EQ(STRING_VALUE, type_);
-  return long_value_;
-}
-
-bool ActivityUserData::TypedValue::GetBool() const {
-  DCHECK_EQ(BOOL_VALUE, type_);
-  return short_value_ != 0;
-}
-
-char ActivityUserData::TypedValue::GetChar() const {
-  DCHECK_EQ(CHAR_VALUE, type_);
-  return static_cast<char>(short_value_);
-}
-
-int64_t ActivityUserData::TypedValue::GetInt() const {
-  DCHECK_EQ(SIGNED_VALUE, type_);
-  return static_cast<int64_t>(short_value_);
-}
-
-uint64_t ActivityUserData::TypedValue::GetUint() const {
-  DCHECK_EQ(UNSIGNED_VALUE, type_);
-  return static_cast<uint64_t>(short_value_);
-}
-
-StringPiece ActivityUserData::TypedValue::GetReference() const {
-  DCHECK_EQ(RAW_VALUE_REFERENCE, type_);
-  return ref_value_;
-}
-
-StringPiece ActivityUserData::TypedValue::GetStringReference() const {
-  DCHECK_EQ(STRING_VALUE_REFERENCE, type_);
-  return ref_value_;
-}
-
-// These are required because std::atomic is (currently) not a POD type and
-// thus clang requires explicit out-of-line constructors and destructors even
-// when they do nothing.
-ActivityUserData::ValueInfo::ValueInfo() = default;
-ActivityUserData::ValueInfo::ValueInfo(ValueInfo&&) = default;
-ActivityUserData::ValueInfo::~ValueInfo() = default;
-ActivityUserData::MemoryHeader::MemoryHeader() = default;
-ActivityUserData::MemoryHeader::~MemoryHeader() = default;
-ActivityUserData::FieldHeader::FieldHeader() = default;
-ActivityUserData::FieldHeader::~FieldHeader() = default;
-
-ActivityUserData::ActivityUserData()
-    : ActivityUserData(nullptr, 0, static_cast<ProcessId>(-1)) {}
-
-ActivityUserData::ActivityUserData(void* memory, size_t size, ProcessId pid)
-    : memory_(reinterpret_cast<char*>(memory),
-              bits::AlignDown(size, kMemoryAlignment)) {
-  // It's possible that no user data is being stored, not even a header.
-  if (memory_.size() < sizeof(MemoryHeader)) {
-    return;
-  }
-
-  header_ = reinterpret_cast<MemoryHeader*>(memory_.data());
-  memory_ = memory_.subspan(sizeof(MemoryHeader));
-
-  if (header_->owner.data_id.load(std::memory_order_acquire) == 0)
-    header_->owner.Release_Initialize(pid);
-
-  // Make a copy of identifying information for later comparison.
-  *const_cast<uint32_t*>(&orig_data_id) =
-      header_->owner.data_id.load(std::memory_order_acquire);
-  *const_cast<ProcessId*>(&orig_process_id) =
-      static_cast<ProcessId>(header_->owner.process_id);
-  *const_cast<int64_t*>(&orig_create_stamp) = header_->owner.create_stamp;
-
-  // If there is already data present, load that. This allows the same class
-  // to be used for analysis through snapshots.
-  ImportExistingData();
-}
-
-ActivityUserData::~ActivityUserData() = default;
-
-bool ActivityUserData::CreateSnapshot(Snapshot* output_snapshot) const {
-  DCHECK(output_snapshot);
-  DCHECK(output_snapshot->empty());
-
-  // Find any new data that may have been added by an active instance of this
-  // class that is adding records.
-  ImportExistingData();
-
-  // Add all the values to the snapshot.
-  for (const auto& entry : values_) {
-    TypedValue value;
-    const size_t size = entry.second.size_ptr->load(std::memory_order_acquire);
-    value.type_ = entry.second.type;
-    DCHECK_GE(entry.second.extent, size);
-
-    switch (entry.second.type) {
-      case RAW_VALUE:
-      case STRING_VALUE:
-        value.long_value_ = std::string(
-            reinterpret_cast<char*>(entry.second.memory.data()), size);
-        break;
-      case RAW_VALUE_REFERENCE:
-      case STRING_VALUE_REFERENCE: {
-        ReferenceRecord* ref =
-            reinterpret_cast<ReferenceRecord*>(entry.second.memory.data());
-        value.ref_value_ = StringPiece(
-            reinterpret_cast<char*>(static_cast<uintptr_t>(ref->address)),
-            static_cast<size_t>(ref->size));
-      } break;
-      case BOOL_VALUE:
-      case CHAR_VALUE:
-        value.short_value_ = static_cast<uint64_t>(
-            reinterpret_cast<std::atomic<char>*>(entry.second.memory.data())
-                ->load(std::memory_order_relaxed));
-        break;
-      case SIGNED_VALUE:
-      case UNSIGNED_VALUE:
-        value.short_value_ =
-            reinterpret_cast<std::atomic<uint64_t>*>(entry.second.memory.data())
-                ->load(std::memory_order_relaxed);
-        break;
-      case END_OF_VALUES:  // Included for completeness purposes.
-        NOTREACHED();
-    }
-    auto inserted = output_snapshot->emplace(std::string(entry.second.name),
-                                             std::move(value));
-    DCHECK(inserted.second);  // True if inserted, false if existed.
-  }
-
-  // Another import attempt will validate that the underlying memory has not
-  // been reused for another purpose. Entries added since the first import
-  // will be ignored here but will be returned if another snapshot is created.
-  ImportExistingData();
-  if (!header_) {
-    output_snapshot->clear();
-    return false;
-  }
-
-  // Successful snapshot.
-  return true;
-}
-
-const void* ActivityUserData::GetBaseAddress() const {
-  // The |memory_| pointer advances as elements are written but the |header_|
-  // value is always at the start of the block so just return that.
-  return header_;
-}
-
-void ActivityUserData::SetOwningProcessIdForTesting(ProcessId pid,
-                                                    int64_t stamp) {
-  if (!header_)
-    return;
-  header_->owner.SetOwningProcessIdForTesting(pid, stamp);
-}
-
-// static
-bool ActivityUserData::GetOwningProcessId(const void* memory,
-                                          ProcessId* out_id,
-                                          int64_t* out_stamp) {
-  const MemoryHeader* header = reinterpret_cast<const MemoryHeader*>(memory);
-  return OwningProcess::GetOwningProcessId(&header->owner, out_id, out_stamp);
-}
-
-void* ActivityUserData::Set(StringPiece name,
-                            ValueType type,
-                            const void* memory,
-                            size_t size) {
-  DCHECK_LT(name.length(), kMaxUserDataNameLength);
-
-  // It's possible that no user data is being stored.
-  if (!header_) {
-    return nullptr;
-  }
-
-  ValueInfo* info;
-  auto existing = values_.find(name);
-  if (existing != values_.end()) {
-    info = &existing->second;
-  } else {
-    // The name size is limited to what can be held in a single byte but
-    // because there are not alignment constraints on strings, it's set tight
-    // against the header. Its extent (the reserved space, even if it's not
-    // all used) is calculated so that, when pressed against the header, the
-    // following field will be aligned properly.
-    size_t name_size = name.length();
-    size_t name_extent =
-        bits::AlignUp(sizeof(FieldHeader) + name_size, kMemoryAlignment) -
-        sizeof(FieldHeader);
-    size_t value_extent = bits::AlignUp(size, kMemoryAlignment);
-
-    // The "base size" is the size of the header and (padded) string key. Stop
-    // now if there's not room enough for even this.
-    size_t base_size = sizeof(FieldHeader) + name_extent;
-    if (base_size > memory_.size()) {
-      return nullptr;
-    }
-
-    // The "full size" is the size for storing the entire value.  This must fit
-    // into a uint16_t.
-    size_t full_size =
-        std::min({base_size + value_extent, memory_.size(),
-                  bits::AlignDown(size_t{std::numeric_limits<uint16_t>::max()},
-                                  kMemoryAlignment)});
-
-    // If the value is actually a single byte, see if it can be stuffed at the
-    // end of the name extent rather than wasting kMemoryAlignment bytes.
-    if (size == 1 && name_extent > name_size) {
-      // This assignment is safe because `base_size` cannot be much larger than
-      // UINT8_MAX.
-      full_size = base_size;
-      --name_extent;
-      --base_size;
-    }
-
-    // Truncate the stored size to the amount of available memory. Stop now if
-    // there's not any room for even part of the value.
-    if (size != 0) {
-      size = std::min(full_size - base_size, size);
-      if (size == 0)
-        return nullptr;
-    }
-
-    // Allocate a chunk of memory.
-    const base::span<char> chunk = memory_.first(full_size);
-    memory_ = memory_.subspan(full_size);
-
-    FieldHeader* header = reinterpret_cast<FieldHeader*>(chunk.data());
-    const base::span<char> name_value_span = chunk.subspan(sizeof(FieldHeader));
-
-    // Datafill the header and name records. Memory must be zeroed. The |type|
-    // is written last, atomically, to release all the other values.
-    DCHECK_EQ(END_OF_VALUES, header->type.load(std::memory_order_relaxed));
-    DCHECK_EQ(0, header->value_size.load(std::memory_order_relaxed));
-    header->name_size = static_cast<uint8_t>(name_size);
-    header->record_size = static_cast<uint16_t>(full_size);
-
-    const base::span<char> name_span = name_value_span.first(name_extent);
-    const base::span<char> value_span = name_value_span.subspan(name_extent);
-    memcpy(name_span.data(), name.data(), name_size);
-    header->type.store(type, std::memory_order_release);
-
-    // Create an entry in |values_| so that this field can be found and changed
-    // later on without having to allocate new entries.
-    StringPiece persistent_name(name_span.data(), name_size);
-    auto inserted =
-        values_.insert(std::make_pair(persistent_name, ValueInfo()));
-    DCHECK(inserted.second);  // True if inserted, false if existed.
-    info = &inserted.first->second;
-    info->name = persistent_name;
-    info->memory = value_span;
-    info->size_ptr = &header->value_size;
-    info->extent = full_size - sizeof(FieldHeader) - name_extent;
-    info->type = type;
-  }
-
-  // Copy the value data to storage. The |size| is written last, atomically, to
-  // release the copied data. Until then, a parallel reader will just ignore
-  // records with a zero size.
-  DCHECK_EQ(type, info->type);
-  size = std::min(size, info->extent);
-  info->size_ptr->store(0, std::memory_order_seq_cst);
-  memcpy(info->memory.data(), memory, size);
-  // This cast is safe because `size` <= info->extent < `full_size`, and
-  // `full_size` fits in a uint16_t.
-  info->size_ptr->store(static_cast<uint16_t>(size), std::memory_order_release);
-
-  // The address of the stored value is returned so it can be re-used by the
-  // caller, so long as it's done in an atomic way.
-  return info->memory.data();
-}
-
-void ActivityUserData::SetReference(StringPiece name,
-                                    ValueType type,
-                                    const void* memory,
-                                    size_t size) {
-  ReferenceRecord rec;
-  rec.address = reinterpret_cast<uintptr_t>(memory);
-  rec.size = size;
-  Set(name, type, &rec, sizeof(rec));
-}
-
-void ActivityUserData::ImportExistingData() const {
-  // It's possible that no user data is being stored.
-  if (!header_) {
-    return;
-  }
-
-  while (memory_.size() > sizeof(FieldHeader)) {
-    FieldHeader* header = reinterpret_cast<FieldHeader*>(memory_.data());
-    ValueType type =
-        static_cast<ValueType>(header->type.load(std::memory_order_acquire));
-    if (type == END_OF_VALUES)
-      return;
-    if (header->record_size > memory_.size()) {
-      return;
-    }
-
-    size_t value_offset = bits::AlignUp(sizeof(FieldHeader) + header->name_size,
-                                        kMemoryAlignment);
-    if (header->record_size == value_offset &&
-        header->value_size.load(std::memory_order_relaxed) == 1) {
-      value_offset -= 1;
-    }
-    if (value_offset + header->value_size > header->record_size)
-      return;
-
-    auto name_span = memory_.subspan(sizeof(FieldHeader), header->name_size);
-
-    ValueInfo info;
-    info.name = StringPiece(name_span.data(), name_span.size());
-    info.type = type;
-    info.memory = memory_.subspan(value_offset);
-    info.size_ptr = &header->value_size;
-    info.extent = header->record_size - value_offset;
-
-    StringPiece key(info.name);
-    values_.insert(std::make_pair(key, std::move(info)));
-
-    memory_ = memory_.subspan(header->record_size);
-  }
-
-  // Check if memory has been completely reused.
-  if (header_->owner.data_id.load(std::memory_order_acquire) != orig_data_id ||
-      static_cast<ProcessId>(header_->owner.process_id) != orig_process_id ||
-      header_->owner.create_stamp != orig_create_stamp) {
-    memory_ = base::span<char>();
-    header_ = nullptr;
-    values_.clear();
-  }
-}
-
-// This information is kept for every thread that is tracked. It is filled
-// the very first time the thread is seen. All fields must be of exact sizes
-// so there is no issue moving between 32 and 64-bit builds.
-struct ThreadActivityTracker::Header {
-  // Defined in .h for analyzer access. Increment this if structure changes!
-  static constexpr uint32_t kPersistentTypeId =
-      GlobalActivityTracker::kTypeIdActivityTracker;
-
-  // Expected size for 32/64-bit check.
-  static constexpr size_t kExpectedInstanceSize =
-      OwningProcess::kExpectedInstanceSize + Activity::kExpectedInstanceSize +
-      72;
-
-  // This information uniquely identifies a process.
-  OwningProcess owner;
-
-  // The thread-id (thread_ref.as_id) to which this data belongs. This number
-  // is not guaranteed to mean anything but combined with the process-id from
-  // OwningProcess is unique among all active trackers.
-  ThreadRef thread_ref;
-
-  // The start-time and start-ticks when the data was created. Each activity
-  // record has a |time_internal| value that can be converted to a "wall time"
-  // with these two values.
-  int64_t start_time;
-  int64_t start_ticks;
-
-  // The number of Activity slots (spaces that can hold an Activity) that
-  // immediately follow this structure in memory.
-  uint32_t stack_slots;
-
-  // Some padding to keep everything 64-bit aligned.
-  uint32_t padding;
-
-  // The current depth of the stack. This may be greater than the number of
-  // slots. If the depth exceeds the number of slots, the newest entries
-  // won't be recorded.
-  std::atomic<uint32_t> current_depth;
-
-  // A memory location used to indicate if changes have been made to the data
-  // that would invalidate an in-progress read of its contents. The active
-  // tracker will increment the value whenever something gets popped from the
-  // stack. A monitoring tracker can check the value before and after access
-  // to know, if it's still the same, that the contents didn't change while
-  // being copied.
-  std::atomic<uint32_t> data_version;
-
-  // The last "exception" activity. This can't be stored on the stack because
-  // that could get popped as things unwind.
-  Activity last_exception;
-
-  // The name of the thread (up to a maximum length). Dynamic-length names
-  // are not practical since the memory has to come from the same persistent
-  // allocator that holds this structure and to which this object has no
-  // reference.
-  char thread_name[32];
-};
-
-ThreadActivityTracker::Snapshot::Snapshot() = default;
-ThreadActivityTracker::Snapshot::~Snapshot() = default;
-
-ThreadActivityTracker::ScopedActivity::ScopedActivity(
-    ThreadActivityTracker* tracker,
-    const void* program_counter,
-    const void* origin,
-    Activity::Type type,
-    const ActivityData& data)
-    : tracker_(tracker) {
-  if (tracker_)
-    activity_id_ = tracker_->PushActivity(program_counter, origin, type, data);
-}
-
-ThreadActivityTracker::ScopedActivity::~ScopedActivity() {
-  if (tracker_)
-    tracker_->PopActivity(activity_id_);
-}
-
-bool ThreadActivityTracker::ScopedActivity::IsRecorded() {
-  return tracker_ && tracker_->IsRecorded(activity_id_);
-}
-
-void ThreadActivityTracker::ScopedActivity::ChangeTypeAndData(
-    Activity::Type type,
-    const ActivityData& data) {
-  if (tracker_)
-    tracker_->ChangeActivity(activity_id_, type, data);
-}
-
-ThreadActivityTracker::ThreadActivityTracker(void* base, size_t size)
-    : header_(static_cast<Header*>(base)),
-      stack_(reinterpret_cast<Activity*>(reinterpret_cast<char*>(base) +
-                                         sizeof(Header))),
-#if DCHECK_IS_ON()
-      thread_id_(PlatformThreadRef()),
-#endif
-      stack_slots_(
-          static_cast<uint32_t>((size - sizeof(Header)) / sizeof(Activity))) {
-  // Verify the parameters but fail gracefully if they're not valid so that
-  // production code based on external inputs will not crash.  IsValid() will
-  // return false in this case.
-  if (!base ||
-      // Ensure there is enough space for the header and at least a few records.
-      size < sizeof(Header) + kMinStackDepth * sizeof(Activity) ||
-      // Ensure that the |stack_slots_| calculation didn't overflow.
-      (size - sizeof(Header)) / sizeof(Activity) >
-          std::numeric_limits<uint32_t>::max()) {
-    NOTREACHED();
-    return;
-  }
-
-  // Ensure that the thread reference doesn't exceed the size of the ID number.
-  // This won't compile at the global scope because Header is a private struct.
-  static_assert(
-      sizeof(header_->thread_ref) == sizeof(header_->thread_ref.as_id),
-      "PlatformThreadHandle::Handle is too big to hold in 64-bit ID");
-
-  // Ensure that the alignment of Activity.data is properly aligned to a
-  // 64-bit boundary so there are no interoperability-issues across cpu
-  // architectures.
-  static_assert(offsetof(Activity, data) % sizeof(uint64_t) == 0,
-                "ActivityData.data is not 64-bit aligned");
-
-  // Provided memory should either be completely initialized or all zeros.
-  if (header_->owner.data_id.load(std::memory_order_relaxed) == 0) {
-    // This is a new file. Double-check other fields and then initialize.
-    DCHECK_EQ(0, header_->owner.process_id);
-    DCHECK_EQ(0, header_->owner.create_stamp);
-    DCHECK_EQ(0, header_->thread_ref.as_id);
-    DCHECK_EQ(0, header_->start_time);
-    DCHECK_EQ(0, header_->start_ticks);
-    DCHECK_EQ(0U, header_->stack_slots);
-    DCHECK_EQ(0U, header_->current_depth.load(std::memory_order_relaxed));
-    DCHECK_EQ(0U, header_->data_version.load(std::memory_order_relaxed));
-    DCHECK_EQ(0, stack_[0].time_internal);
-    DCHECK_EQ(0U, stack_[0].origin_address);
-    DCHECK_EQ(0U, stack_[0].call_stack[0]);
-    DCHECK_EQ(0U, stack_[0].data.task.sequence_id);
-
-#if BUILDFLAG(IS_WIN)
-    header_->thread_ref.as_tid = PlatformThread::CurrentId();
-#elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
-    header_->thread_ref.as_handle =
-        PlatformThread::CurrentHandle().platform_handle();
-#endif
-
-    header_->start_time = base::Time::Now().ToInternalValue();
-    header_->start_ticks = base::TimeTicks::Now().ToInternalValue();
-    header_->stack_slots = stack_slots_;
-    strlcpy(header_->thread_name, PlatformThread::GetName(),
-            sizeof(header_->thread_name));
-
-    // This is done last so as to guarantee that everything above is "released"
-    // by the time this value gets written.
-    header_->owner.Release_Initialize();
-
-    valid_ = true;
-    DCHECK(IsValid());
-  } else {
-    // This is a file with existing data. Perform basic consistency checks.
-    valid_ = true;
-    valid_ = IsValid();
-  }
-}
-
-ThreadActivityTracker::~ThreadActivityTracker() = default;
-
-ThreadActivityTracker::ActivityId ThreadActivityTracker::PushActivity(
-    const void* program_counter,
-    const void* origin,
-    Activity::Type type,
-    const ActivityData& data) {
-  // A thread-checker creates a lock to check the thread-id which means
-  // re-entry into this code if lock acquisitions are being tracked.
-  DCHECK(type == Activity::ACT_LOCK_ACQUIRE || CalledOnValidThread());
-
-  // Get the current depth of the stack. No access to other memory guarded
-  // by this variable is done here so a "relaxed" load is acceptable.
-  uint32_t depth = header_->current_depth.load(std::memory_order_relaxed);
-
-  // Handle the case where the stack depth has exceeded the storage capacity.
-  // Extra entries will be lost leaving only the base of the stack.
-  if (depth >= stack_slots_) {
-    // Since no other threads modify the data, no compare/exchange is needed.
-    // Since no other memory is being modified, a "relaxed" store is acceptable.
-    header_->current_depth.store(depth + 1, std::memory_order_relaxed);
-    return depth;
-  }
-
-  // Get a pointer to the next activity and load it. No atomicity is required
-  // here because the memory is known only to this thread. It will be made
-  // known to other threads once the depth is incremented.
-  Activity::FillFrom(&stack_[depth], program_counter, origin, type, data);
-
-  // Save the incremented depth. Because this guards |activity| memory filled
-  // above that may be read by another thread once the recorded depth changes,
-  // a "release" store is required.
-  header_->current_depth.store(depth + 1, std::memory_order_release);
-
-  // The current depth is used as the activity ID because it simply identifies
-  // an entry. Once an entry is pop'd, it's okay to reuse the ID.
-  return depth;
-}
-
-void ThreadActivityTracker::ChangeActivity(ActivityId id,
-                                           Activity::Type type,
-                                           const ActivityData& data) {
-  DCHECK(CalledOnValidThread());
-  DCHECK(type != Activity::ACT_NULL || &data != &kNullActivityData);
-  DCHECK_LT(id, header_->current_depth.load(std::memory_order_acquire));
-
-  // Update the information if it is being recorded (i.e. within slot limit).
-  if (id < stack_slots_) {
-    Activity* activity = &stack_[id];
-
-    if (type != Activity::ACT_NULL) {
-      DCHECK_EQ(activity->activity_type & Activity::ACT_CATEGORY_MASK,
-                type & Activity::ACT_CATEGORY_MASK);
-      activity->activity_type = type;
-    }
-
-    if (&data != &kNullActivityData)
-      activity->data = data;
-  }
-}
-
-void ThreadActivityTracker::PopActivity(ActivityId id) {
-  // Do an atomic decrement of the depth. No changes to stack entries guarded
-  // by this variable are done here so a "relaxed" operation is acceptable.
-  // |depth| will receive the value BEFORE it was modified which means the
-  // return value must also be decremented. The slot will be "free" after
-  // this call but since only a single thread can access this object, the
-  // data will remain valid until this method returns or calls outside.
-  uint32_t depth =
-      header_->current_depth.fetch_sub(1, std::memory_order_relaxed) - 1;
-
-  // Validate that everything is running correctly.
-  DCHECK_EQ(id, depth);
-
-  // A thread-checker creates a lock to check the thread-id which means
-  // re-entry into this code if lock acquisitions are being tracked.
-  DCHECK(stack_[depth].activity_type == Activity::ACT_LOCK_ACQUIRE ||
-         CalledOnValidThread());
-
-  // The stack has shrunk meaning that some other thread trying to copy the
-  // contents for reporting purposes could get bad data. Increment the data
-  // version so that it con tell that things have changed. This needs to
-  // happen after the atomic |depth| operation above so a "release" store
-  // is required.
-  header_->data_version.fetch_add(1, std::memory_order_release);
-}
-
-bool ThreadActivityTracker::IsRecorded(ActivityId id) {
-  return id < stack_slots_;
-}
-
-std::unique_ptr<ActivityUserData> ThreadActivityTracker::GetUserData(
-    ActivityId id,
-    ActivityTrackerMemoryAllocator* allocator) {
-  // Don't allow user data for lock acquisition as recursion may occur.
-  if (stack_[id].activity_type == Activity::ACT_LOCK_ACQUIRE) {
-    NOTREACHED();
-    return std::make_unique<ActivityUserData>();
-  }
-
-  // User-data is only stored for activities actually held in the stack.
-  if (id >= stack_slots_)
-    return std::make_unique<ActivityUserData>();
-
-  // Create and return a real UserData object.
-  return CreateUserDataForActivity(&stack_[id], allocator);
-}
-
-bool ThreadActivityTracker::HasUserData(ActivityId id) {
-  // User-data is only stored for activities actually held in the stack.
-  return (id < stack_slots_ && stack_[id].user_data_ref);
-}
-
-void ThreadActivityTracker::ReleaseUserData(
-    ActivityId id,
-    ActivityTrackerMemoryAllocator* allocator) {
-  // User-data is only stored for activities actually held in the stack.
-  if (id < stack_slots_ && stack_[id].user_data_ref) {
-    allocator->ReleaseObjectReference(stack_[id].user_data_ref);
-    stack_[id].user_data_ref = 0;
-  }
-}
-
-void ThreadActivityTracker::RecordExceptionActivity(const void* program_counter,
-                                                    const void* origin,
-                                                    Activity::Type type,
-                                                    const ActivityData& data) {
-  // A thread-checker creates a lock to check the thread-id which means
-  // re-entry into this code if lock acquisitions are being tracked.
-  DCHECK(CalledOnValidThread());
-
-  // Fill the reusable exception activity.
-  Activity::FillFrom(&header_->last_exception, program_counter, origin, type,
-                     data);
-
-  // The data has changed meaning that some other thread trying to copy the
-  // contents for reporting purposes could get bad data.
-  header_->data_version.fetch_add(1, std::memory_order_relaxed);
-}
-
-bool ThreadActivityTracker::IsValid() const {
-  if (header_->owner.data_id.load(std::memory_order_acquire) == 0 ||
-      header_->owner.process_id == 0 || header_->thread_ref.as_id == 0 ||
-      header_->start_time == 0 || header_->start_ticks == 0 ||
-      header_->stack_slots != stack_slots_ ||
-      header_->thread_name[sizeof(header_->thread_name) - 1] != '\0') {
-    return false;
-  }
-
-  return valid_;
-}
-
-bool ThreadActivityTracker::CreateSnapshot(Snapshot* output_snapshot) const {
-  DCHECK(output_snapshot);
-
-  // There is no "called on valid thread" check for this method as it can be
-  // called from other threads or even other processes. It is also the reason
-  // why atomic operations must be used in certain places above.
-
-  // It's possible for the data to change while reading it in such a way that it
-  // invalidates the read. Make several attempts but don't try forever.
-  const int kMaxAttempts = 10;
-  uint32_t depth;
-
-  // Stop here if the data isn't valid.
-  if (!IsValid())
-    return false;
-
-  // Allocate the maximum size for the stack so it doesn't have to be done
-  // during the time-sensitive snapshot operation. It is shrunk once the
-  // actual size is known.
-  output_snapshot->activity_stack.reserve(stack_slots_);
-
-  for (int attempt = 0; attempt < kMaxAttempts; ++attempt) {
-    // Remember the data IDs to ensure nothing is replaced during the snapshot
-    // operation. Use "acquire" so that all the non-atomic fields of the
-    // structure are valid (at least at the current moment in time).
-    const uint32_t starting_id =
-        header_->owner.data_id.load(std::memory_order_acquire);
-    const int64_t starting_create_stamp = header_->owner.create_stamp;
-    const auto starting_process_id =
-        static_cast<ProcessId>(header_->owner.process_id);
-    const int64_t starting_thread_id = header_->thread_ref.as_id;
-
-    // Note the current |data_version| so it's possible to detect at the end
-    // that nothing has changed since copying the data began. A "cst" operation
-    // is required to ensure it occurs before everything else. Using "cst"
-    // memory ordering is relatively expensive but this is only done during
-    // analysis so doesn't directly affect the worker threads.
-    const uint32_t pre_version =
-        header_->data_version.load(std::memory_order_seq_cst);
-
-    // Fetching the current depth also "acquires" the contents of the stack.
-    depth = header_->current_depth.load(std::memory_order_acquire);
-    uint32_t count = std::min(depth, stack_slots_);
-    output_snapshot->activity_stack.resize(count);
-    if (count > 0) {
-      // Copy the existing contents. Memcpy is used for speed.
-      memcpy(&output_snapshot->activity_stack[0], stack_,
-             count * sizeof(Activity));
-    }
-
-    // Capture the last exception.
-    memcpy(&output_snapshot->last_exception, &header_->last_exception,
-           sizeof(Activity));
-
-    // Snapshot other things here.
-
-    // Retry if something changed during the copy. A "cst" operation ensures
-    // it must happen after all the above operations.
-    if (header_->data_version.load(std::memory_order_seq_cst) != pre_version)
-      continue;
-
-    // Stack copied. Record it's full depth.
-    output_snapshot->activity_stack_depth = depth;
-
-    // Get the general thread information.
-    output_snapshot->thread_name =
-        std::string(header_->thread_name, sizeof(header_->thread_name) - 1);
-    output_snapshot->create_stamp = header_->owner.create_stamp;
-    output_snapshot->thread_id = header_->thread_ref.as_id;
-    output_snapshot->process_id =
-        static_cast<ProcessId>(header_->owner.process_id);
-
-    // All characters of the thread-name buffer were copied so as to not break
-    // if the trailing NUL were missing. Now limit the length if the actual
-    // name is shorter.
-    output_snapshot->thread_name.resize(
-        strlen(output_snapshot->thread_name.c_str()));
-
-    // If the data ID has changed then the tracker has exited and the memory
-    // reused by a new one. Try again.
-    if (header_->owner.data_id.load(std::memory_order_seq_cst) != starting_id ||
-        output_snapshot->create_stamp != starting_create_stamp ||
-        output_snapshot->process_id != starting_process_id ||
-        output_snapshot->thread_id != starting_thread_id) {
-      continue;
-    }
-
-    // Only successful if the data is still valid once everything is done since
-    // it's possible for the thread to end somewhere in the middle and all its
-    // values become garbage.
-    if (!IsValid())
-      return false;
-
-    // Change all the timestamps in the activities from "ticks" to "wall" time.
-    const Time start_time = Time::FromInternalValue(header_->start_time);
-    const int64_t start_ticks = header_->start_ticks;
-    for (Activity& activity : output_snapshot->activity_stack) {
-      activity.time_internal =
-          WallTimeFromTickTime(start_ticks, activity.time_internal, start_time)
-              .ToInternalValue();
-    }
-    output_snapshot->last_exception.time_internal =
-        WallTimeFromTickTime(start_ticks,
-                             output_snapshot->last_exception.time_internal,
-                             start_time)
-            .ToInternalValue();
-
-    // Success!
-    return true;
-  }
-
-  // Too many attempts.
-  return false;
-}
-
-const void* ThreadActivityTracker::GetBaseAddress() {
-  return header_;
-}
-
-uint32_t ThreadActivityTracker::GetDataVersionForTesting() {
-  return header_->data_version.load(std::memory_order_relaxed);
-}
-
-void ThreadActivityTracker::SetOwningProcessIdForTesting(ProcessId pid,
-                                                         int64_t stamp) {
-  header_->owner.SetOwningProcessIdForTesting(pid, stamp);
-}
-
-// static
-bool ThreadActivityTracker::GetOwningProcessId(const void* memory,
-                                               ProcessId* out_id,
-                                               int64_t* out_stamp) {
-  const Header* header = reinterpret_cast<const Header*>(memory);
-  return OwningProcess::GetOwningProcessId(&header->owner, out_id, out_stamp);
-}
-
-// static
-size_t ThreadActivityTracker::SizeForStackDepth(int stack_depth) {
-  return static_cast<size_t>(stack_depth) * sizeof(Activity) + sizeof(Header);
-}
-
-bool ThreadActivityTracker::CalledOnValidThread() {
-#if DCHECK_IS_ON()
-  return thread_id_ == PlatformThreadRef();
-#else
-  return true;
-#endif
-}
-
-std::unique_ptr<ActivityUserData>
-ThreadActivityTracker::CreateUserDataForActivity(
-    Activity* activity,
-    ActivityTrackerMemoryAllocator* allocator) {
-  DCHECK_EQ(0U, activity->user_data_ref);
-
-  PersistentMemoryAllocator::Reference ref = allocator->GetObjectReference();
-  void* memory = allocator->GetAsArray<char>(ref, kUserDataSize);
-  if (memory) {
-    std::unique_ptr<ActivityUserData> user_data =
-        std::make_unique<ActivityUserData>(memory, kUserDataSize);
-    activity->user_data_ref = ref;
-    activity->user_data_id = user_data->id();
-    return user_data;
-  }
-
-  // Return a dummy object that will still accept (but ignore) Set() calls.
-  return std::make_unique<ActivityUserData>();
-}
-
-// The instantiation of the GlobalActivityTracker object.
-// The object held here will obviously not be destructed at process exit
-// but that's best since PersistentMemoryAllocator objects (that underlie
-// GlobalActivityTracker objects) are explicitly forbidden from doing anything
-// essential at exit anyway due to the fact that they depend on data managed
-// elsewhere and which could be destructed first.
-std::atomic<GlobalActivityTracker*> GlobalActivityTracker::g_tracker_{nullptr};
-
-GlobalActivityTracker::ModuleInfo::ModuleInfo() = default;
-GlobalActivityTracker::ModuleInfo::ModuleInfo(ModuleInfo&& rhs) = default;
-GlobalActivityTracker::ModuleInfo::ModuleInfo(const ModuleInfo& rhs) = default;
-GlobalActivityTracker::ModuleInfo::~ModuleInfo() = default;
-
-GlobalActivityTracker::ModuleInfo& GlobalActivityTracker::ModuleInfo::operator=(
-    ModuleInfo&& rhs) = default;
-GlobalActivityTracker::ModuleInfo& GlobalActivityTracker::ModuleInfo::operator=(
-    const ModuleInfo& rhs) = default;
-
-GlobalActivityTracker::ModuleInfoRecord::ModuleInfoRecord() = default;
-GlobalActivityTracker::ModuleInfoRecord::~ModuleInfoRecord() = default;
-
-bool GlobalActivityTracker::ModuleInfoRecord::DecodeTo(
-    GlobalActivityTracker::ModuleInfo* info,
-    size_t record_size) const {
-  // Get the current "changes" indicator, acquiring all the other values.
-  uint32_t current_changes = changes.load(std::memory_order_acquire);
-
-  // Copy out the dynamic information.
-  info->is_loaded = loaded != 0;
-  info->address = static_cast<uintptr_t>(address);
-  info->load_time = load_time;
-
-  // Check to make sure no information changed while being read. A "seq-cst"
-  // operation is expensive but is only done during analysis and it's the only
-  // way to ensure this occurs after all the accesses above. If changes did
-  // occur then return a "not loaded" result so that |size| and |address|
-  // aren't expected to be accurate.
-  if ((current_changes & kModuleInformationChanging) != 0 ||
-      changes.load(std::memory_order_seq_cst) != current_changes) {
-    info->is_loaded = false;
-  }
-
-  // Copy out the static information. These never change so don't have to be
-  // protected by the atomic |current_changes| operations.
-  info->size = static_cast<size_t>(size);
-  info->timestamp = timestamp;
-  info->age = age;
-  memcpy(info->identifier, identifier, sizeof(info->identifier));
-
-  if (offsetof(ModuleInfoRecord, pickle) + pickle_size > record_size)
-    return false;
-  Pickle pickler(pickle, pickle_size);
-  PickleIterator iter(pickler);
-  return iter.ReadString(&info->file) && iter.ReadString(&info->debug_file);
-}
-
-GlobalActivityTracker::ModuleInfoRecord*
-GlobalActivityTracker::ModuleInfoRecord::CreateFrom(
-    const GlobalActivityTracker::ModuleInfo& info,
-    PersistentMemoryAllocator* allocator) {
-  Pickle pickler;
-  pickler.WriteString(info.file);
-  pickler.WriteString(info.debug_file);
-  size_t required_size = offsetof(ModuleInfoRecord, pickle) + pickler.size();
-  ModuleInfoRecord* record = allocator->New<ModuleInfoRecord>(required_size);
-  if (!record)
-    return nullptr;
-
-  // These fields never changes and are done before the record is made
-  // iterable so no thread protection is necessary.
-  record->size = info.size;
-  record->timestamp = info.timestamp;
-  record->age = info.age;
-  memcpy(record->identifier, info.identifier, sizeof(identifier));
-  memcpy(record->pickle, pickler.data(), pickler.size());
-  record->pickle_size = checked_cast<uint16_t>(pickler.size());
-  record->changes.store(0, std::memory_order_relaxed);
-
-  // Initialize the owner info.
-  record->owner.Release_Initialize();
-
-  // Now set those fields that can change.
-  bool success = record->UpdateFrom(info);
-  DCHECK(success);
-  return record;
-}
-
-bool GlobalActivityTracker::ModuleInfoRecord::UpdateFrom(
-    const GlobalActivityTracker::ModuleInfo& info) {
-  // Updates can occur after the record is made visible so make changes atomic.
-  // A "strong" exchange ensures no false failures.
-  uint32_t old_changes = changes.load(std::memory_order_relaxed);
-  uint32_t new_changes = old_changes | kModuleInformationChanging;
-  if ((old_changes & kModuleInformationChanging) != 0 ||
-      !changes.compare_exchange_strong(old_changes, new_changes,
-                                       std::memory_order_acquire,
-                                       std::memory_order_acquire)) {
-    NOTREACHED() << "Multiple sources are updating module information.";
-    return false;
-  }
-
-  loaded = info.is_loaded ? 1 : 0;
-  address = info.address;
-  load_time = Time::Now().ToInternalValue();
-
-  bool success = changes.compare_exchange_strong(new_changes, old_changes + 1,
-                                                 std::memory_order_release,
-                                                 std::memory_order_relaxed);
-  DCHECK(success);
-  return true;
-}
-
-GlobalActivityTracker::ScopedThreadActivity::ScopedThreadActivity(
-    const void* program_counter,
-    const void* origin,
-    Activity::Type type,
-    const ActivityData& data,
-    bool lock_allowed)
-    : ThreadActivityTracker::ScopedActivity(GetOrCreateTracker(lock_allowed),
-                                            program_counter,
-                                            origin,
-                                            type,
-                                            data) {}
-
-GlobalActivityTracker::ScopedThreadActivity::~ScopedThreadActivity() {
-  if (tracker_ && tracker_->HasUserData(activity_id_)) {
-    GlobalActivityTracker* global = GlobalActivityTracker::Get();
-    AutoLock lock(global->user_data_allocator_lock_);
-    tracker_->ReleaseUserData(activity_id_, &global->user_data_allocator_);
-  }
-}
-
-ActivityUserData& GlobalActivityTracker::ScopedThreadActivity::user_data() {
-  if (!user_data_) {
-    if (tracker_) {
-      GlobalActivityTracker* global = GlobalActivityTracker::Get();
-      AutoLock lock(global->user_data_allocator_lock_);
-      user_data_ =
-          tracker_->GetUserData(activity_id_, &global->user_data_allocator_);
-    } else {
-      user_data_ = std::make_unique<ActivityUserData>();
-    }
-  }
-  return *user_data_;
-}
-
-GlobalActivityTracker::ThreadSafeUserData::ThreadSafeUserData(void* memory,
-                                                              size_t size,
-                                                              ProcessId pid)
-    : ActivityUserData(memory, size, pid) {}
-
-GlobalActivityTracker::ThreadSafeUserData::~ThreadSafeUserData() = default;
-
-void* GlobalActivityTracker::ThreadSafeUserData::Set(StringPiece name,
-                                                     ValueType type,
-                                                     const void* memory,
-                                                     size_t size) {
-  AutoLock lock(data_lock_);
-  return ActivityUserData::Set(name, type, memory, size);
-}
-
-GlobalActivityTracker::ManagedActivityTracker::ManagedActivityTracker(
-    PersistentMemoryAllocator::Reference mem_reference,
-    void* base,
-    size_t size)
-    : ThreadActivityTracker(base, size),
-      mem_reference_(mem_reference),
-      mem_base_(base) {}
-
-GlobalActivityTracker::ManagedActivityTracker::~ManagedActivityTracker() {
-  // The global |g_tracker_| must point to the owner of this class since all
-  // objects of this type must be destructed before |g_tracker_| can be changed
-  // (something that only occurs in tests).
-  DCHECK(g_tracker_.load(std::memory_order_relaxed));
-  GlobalActivityTracker::Get()->ReturnTrackerMemory(this);
-}
-
-void GlobalActivityTracker::CreateWithAllocator(
-    std::unique_ptr<PersistentMemoryAllocator> allocator,
-    int stack_depth,
-    ProcessId process_id) {
-  // There's no need to do anything with the result. It is self-managing.
-  GlobalActivityTracker* global_tracker =
-      new GlobalActivityTracker(std::move(allocator), stack_depth, process_id);
-  // Create a tracker for this thread since it is known.
-  global_tracker->CreateTrackerForCurrentThread();
-}
-
-#if !BUILDFLAG(IS_NACL)
-// static
-bool GlobalActivityTracker::CreateWithFile(const FilePath& file_path,
-                                           size_t size,
-                                           uint64_t id,
-                                           StringPiece name,
-                                           int stack_depth) {
-  DCHECK(!file_path.empty());
-  DCHECK_GE(static_cast<uint64_t>(std::numeric_limits<int64_t>::max()), size);
-
-  // Create and map the file into memory and make it globally available.
-  std::unique_ptr<MemoryMappedFile> mapped_file(new MemoryMappedFile());
-  bool success = mapped_file->Initialize(
-      File(file_path, File::FLAG_CREATE_ALWAYS | File::FLAG_READ |
-                          File::FLAG_WRITE | File::FLAG_WIN_SHARE_DELETE),
-      {0, size}, MemoryMappedFile::READ_WRITE_EXTEND);
-  if (!success)
-    return false;
-  if (!FilePersistentMemoryAllocator::IsFileAcceptable(*mapped_file, false))
-    return false;
-  CreateWithAllocator(std::make_unique<FilePersistentMemoryAllocator>(
-                          std::move(mapped_file), size, id, name, false),
-                      stack_depth, 0);
-  return true;
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-// static
-bool GlobalActivityTracker::CreateWithLocalMemory(size_t size,
-                                                  uint64_t id,
-                                                  StringPiece name,
-                                                  int stack_depth,
-                                                  ProcessId process_id) {
-  CreateWithAllocator(
-      std::make_unique<LocalPersistentMemoryAllocator>(size, id, name),
-      stack_depth, process_id);
-  return true;
-}
-
-// static
-bool GlobalActivityTracker::CreateWithSharedMemory(
-    base::WritableSharedMemoryMapping mapping,
-    uint64_t id,
-    StringPiece name,
-    int stack_depth) {
-  if (!mapping.IsValid() ||
-      !WritableSharedPersistentMemoryAllocator::IsSharedMemoryAcceptable(
-          mapping)) {
-    return false;
-  }
-  CreateWithAllocator(std::make_unique<WritableSharedPersistentMemoryAllocator>(
-                          std::move(mapping), id, name),
-                      stack_depth, 0);
-  return true;
-}
-
-// static
-void GlobalActivityTracker::SetForTesting(
-    std::unique_ptr<GlobalActivityTracker> tracker) {
-  CHECK(!g_tracker_.load(std::memory_order_relaxed));
-  g_tracker_.store(tracker.release(), std::memory_order_release);
-}
-
-// static
-std::unique_ptr<GlobalActivityTracker>
-GlobalActivityTracker::ReleaseForTesting() {
-  GlobalActivityTracker* tracker = Get();
-  if (!tracker)
-    return nullptr;
-
-  // Thread trackers assume that the global tracker is present for some
-  // operations so ensure that there aren't any.
-  tracker->ReleaseTrackerForCurrentThreadForTesting();
-  DCHECK_EQ(0, tracker->thread_tracker_count_.load(std::memory_order_relaxed));
-
-  g_tracker_.store(nullptr, std::memory_order_release);
-  return WrapUnique(tracker);
-}
-
-ThreadActivityTracker* GlobalActivityTracker::CreateTrackerForCurrentThread() {
-  // It is not safe to use TLS once TLS has been destroyed.
-  if (base::ThreadLocalStorage::HasBeenDestroyed())
-    return nullptr;
-
-  DCHECK(!this_thread_tracker_.Get());
-
-  PersistentMemoryAllocator::Reference mem_reference;
-
-  {
-    base::AutoLock autolock(thread_tracker_allocator_lock_);
-    mem_reference = thread_tracker_allocator_.GetObjectReference();
-  }
-
-  if (!mem_reference) {
-    // Failure. This shouldn't happen. But be graceful if it does, probably
-    // because the underlying allocator wasn't given enough memory to satisfy
-    // to all possible requests.
-    NOTREACHED();
-
-    // Return null, just as if tracking wasn't enabled.
-    return nullptr;
-  }
-
-  // Convert the memory block found above into an actual memory address.
-  // Doing the conversion as a Header object enacts the 32/64-bit size
-  // consistency checks which would not otherwise be done.
-  DCHECK(mem_reference);
-  void* mem_base;
-  mem_base =
-      allocator_->GetAsObject<ThreadActivityTracker::Header>(mem_reference);
-
-  DCHECK(mem_base);
-  DCHECK_LE(stack_memory_size_, allocator_->GetAllocSize(mem_reference));
-
-  // Create a tracker with the acquired memory and set it as the tracker
-  // for this particular thread in thread-local-storage.
-  auto tracker = std::make_unique<ManagedActivityTracker>(
-      mem_reference, mem_base, stack_memory_size_);
-  DCHECK(tracker->IsValid());
-  auto* tracker_raw = tracker.get();
-  this_thread_tracker_.Set(std::move(tracker));
-  thread_tracker_count_.fetch_add(1, std::memory_order_relaxed);
-  return tracker_raw;
-}
-
-void GlobalActivityTracker::ReleaseTrackerForCurrentThreadForTesting() {
-  if (this_thread_tracker_.Get())
-    this_thread_tracker_.Set(nullptr);
-}
-
-void GlobalActivityTracker::SetBackgroundTaskRunner(
-    const scoped_refptr<SequencedTaskRunner>& runner) {
-  AutoLock lock(global_tracker_lock_);
-  background_task_runner_ = std::move(runner);
-}
-
-void GlobalActivityTracker::SetProcessExitCallback(
-    ProcessExitCallback callback) {
-  AutoLock lock(global_tracker_lock_);
-  process_exit_callback_ = callback;
-}
-
-void GlobalActivityTracker::RecordProcessLaunch(
-    ProcessId process_id,
-    const FilePath::StringType& cmd) {
-  DCHECK_NE(GetProcessId(), process_id);
-  DCHECK_NE(ProcessId{0}, process_id);
-
-  base::AutoLock lock(global_tracker_lock_);
-  if (base::Contains(known_processes_, process_id)) {
-    NOTREACHED() << "Process #" << process_id
-                 << " was previously recorded as \"launched\""
-                 << " with no corresponding exit.\n"
-                 << known_processes_[process_id];
-    known_processes_.erase(process_id);
-  }
-
-#if BUILDFLAG(IS_WIN)
-  known_processes_.insert(std::make_pair(process_id, WideToUTF8(cmd)));
-#else
-  known_processes_.insert(std::make_pair(process_id, cmd));
-#endif
-}
-
-void GlobalActivityTracker::RecordProcessLaunch(
-    ProcessId process_id,
-    const FilePath::StringType& exe,
-    const FilePath::StringType& args) {
-  if (exe.find(FILE_PATH_LITERAL(" "))) {
-    RecordProcessLaunch(process_id,
-                        FilePath::StringType(FILE_PATH_LITERAL("\"")) + exe +
-                            FILE_PATH_LITERAL("\" ") + args);
-  } else {
-    RecordProcessLaunch(process_id, exe + FILE_PATH_LITERAL(' ') + args);
-  }
-}
-
-void GlobalActivityTracker::RecordProcessExit(ProcessId process_id,
-                                              int exit_code) {
-  DCHECK_NE(GetProcessId(), process_id);
-  DCHECK_NE(ProcessId{0}, process_id);
-
-  scoped_refptr<SequencedTaskRunner> task_runner;
-  std::string command_line;
-  {
-    base::AutoLock lock(global_tracker_lock_);
-    task_runner = background_task_runner_;
-    auto found = known_processes_.find(process_id);
-    if (found != known_processes_.end()) {
-      command_line = std::move(found->second);
-      known_processes_.erase(found);
-    } else {
-      DLOG(ERROR) << "Recording exit of unknown process #" << process_id;
-    }
-  }
-
-  // Use the current time to differentiate the process that just exited
-  // from any that might be created in the future with the same ID.
-  int64_t now_stamp = Time::Now().ToInternalValue();
-
-  // The persistent allocator is thread-safe so run the iteration and
-  // adjustments on a worker thread if one was provided.
-  if (task_runner && !task_runner->RunsTasksInCurrentSequence()) {
-    task_runner->PostTask(
-        FROM_HERE,
-        BindOnce(&GlobalActivityTracker::CleanupAfterProcess, Unretained(this),
-                 process_id, now_stamp, exit_code, std::move(command_line)));
-    return;
-  }
-
-  CleanupAfterProcess(process_id, now_stamp, exit_code,
-                      std::move(command_line));
-}
-
-void GlobalActivityTracker::SetProcessPhase(ProcessPhase phase) {
-  process_data().SetInt(kProcessPhaseDataKey, phase);
-}
-
-void GlobalActivityTracker::CleanupAfterProcess(ProcessId process_id,
-                                                int64_t exit_stamp,
-                                                int exit_code,
-                                                std::string&& command_line) {
-  // The process may not have exited cleanly so its necessary to go through
-  // all the data structures it may have allocated in the persistent memory
-  // segment and mark them as "released". This will allow them to be reused
-  // later on.
-
-  PersistentMemoryAllocator::Iterator iter(allocator_.get());
-  PersistentMemoryAllocator::Reference ref;
-
-  ProcessExitCallback process_exit_callback;
-  {
-    AutoLock lock(global_tracker_lock_);
-    process_exit_callback = process_exit_callback_;
-  }
-  if (process_exit_callback) {
-    // Find the processes user-data record so the process phase can be passed
-    // to the callback.
-    ActivityUserData::Snapshot process_data_snapshot;
-    while ((ref = iter.GetNextOfType(kTypeIdProcessDataRecord)) != 0) {
-      const void* memory = allocator_->GetAsArray<char>(
-          ref, kTypeIdProcessDataRecord, PersistentMemoryAllocator::kSizeAny);
-      if (!memory)
-        continue;
-      ProcessId found_id;
-      int64_t create_stamp;
-      if (ActivityUserData::GetOwningProcessId(memory, &found_id,
-                                               &create_stamp)) {
-        if (found_id == process_id && create_stamp < exit_stamp) {
-          const ActivityUserData process_data(const_cast<void*>(memory),
-                                              allocator_->GetAllocSize(ref));
-          process_data.CreateSnapshot(&process_data_snapshot);
-          break;  // No need to look for any others.
-        }
-      }
-    }
-    iter.Reset();  // So it starts anew when used below.
-
-    // Record the process's phase at exit so callback doesn't need to go
-    // searching based on a private key value.
-    ProcessPhase exit_phase = PROCESS_PHASE_UNKNOWN;
-    auto phase = process_data_snapshot.find(kProcessPhaseDataKey);
-    if (phase != process_data_snapshot.end())
-      exit_phase = static_cast<ProcessPhase>(phase->second.GetInt());
-
-    // Perform the callback.
-    process_exit_callback.Run(process_id, exit_stamp, exit_code, exit_phase,
-                              std::move(command_line),
-                              std::move(process_data_snapshot));
-  }
-
-  // Find all allocations associated with the exited process and free them.
-  uint32_t type;
-  while ((ref = iter.GetNext(&type)) != 0) {
-    switch (type) {
-      case kTypeIdActivityTracker:
-      case kTypeIdUserDataRecord:
-      case kTypeIdProcessDataRecord:
-      case ModuleInfoRecord::kPersistentTypeId: {
-        const void* memory = allocator_->GetAsArray<char>(
-            ref, type, PersistentMemoryAllocator::kSizeAny);
-        if (!memory)
-          continue;
-        ProcessId found_id;
-        int64_t create_stamp;
-
-        // By convention, the OwningProcess structure is always the first
-        // field of the structure so there's no need to handle all the
-        // cases separately.
-        if (OwningProcess::GetOwningProcessId(memory, &found_id,
-                                              &create_stamp)) {
-          // Only change the type to be "free" if the process ID matches and
-          // the creation time is before the exit time (so PID re-use doesn't
-          // cause the erasure of something that is in-use). Memory is cleared
-          // here, rather than when it's needed, so as to limit the impact at
-          // that critical time.
-          if (found_id == process_id && create_stamp < exit_stamp)
-            allocator_->ChangeType(ref, ~type, type, /*clear=*/true);
-        }
-      } break;
-    }
-  }
-}
-
-void GlobalActivityTracker::RecordLogMessage(StringPiece message) {
-  // Allocate at least one extra byte so the string is NUL terminated. All
-  // memory returned by the allocator is guaranteed to be zeroed.
-  PersistentMemoryAllocator::Reference ref =
-      allocator_->Allocate(message.size() + 1, kTypeIdGlobalLogMessage);
-  char* memory = allocator_->GetAsArray<char>(ref, kTypeIdGlobalLogMessage,
-                                              message.size() + 1);
-  if (memory) {
-    memcpy(memory, message.data(), message.size());
-    allocator_->MakeIterable(ref);
-  }
-}
-
-void GlobalActivityTracker::RecordModuleInfo(const ModuleInfo& info) {
-  AutoLock lock(modules_lock_);
-  auto found = modules_.find(info.file);
-  if (found != modules_.end()) {
-    ModuleInfoRecord* record = found->second;
-    DCHECK(record);
-
-    // Update the basic state of module information that has been already
-    // recorded. It is assumed that the string information (identifier,
-    // version, etc.) remain unchanged which means that there's no need
-    // to create a new record to accommodate a possibly longer length.
-    record->UpdateFrom(info);
-    return;
-  }
-
-  ModuleInfoRecord* record =
-      ModuleInfoRecord::CreateFrom(info, allocator_.get());
-  if (!record)
-    return;
-  allocator_->MakeIterable(record);
-  modules_.emplace(info.file, record);
-}
-
-void GlobalActivityTracker::RecordException(const void* pc,
-                                            const void* origin,
-                                            uint32_t code) {
-  RecordExceptionImpl(pc, origin, code);
-}
-
-void GlobalActivityTracker::MarkDeleted() {
-  allocator_->SetMemoryState(PersistentMemoryAllocator::MEMORY_DELETED);
-}
-
-GlobalActivityTracker::GlobalActivityTracker(
-    std::unique_ptr<PersistentMemoryAllocator> allocator,
-    int stack_depth,
-    ProcessId process_id)
-    : allocator_(std::move(allocator)),
-      stack_memory_size_(ThreadActivityTracker::SizeForStackDepth(stack_depth)),
-      process_id_(process_id == 0 ? GetCurrentProcId() : process_id),
-      thread_tracker_count_(0),
-      thread_tracker_allocator_(allocator_.get(),
-                                kTypeIdActivityTracker,
-                                kTypeIdActivityTrackerFree,
-                                stack_memory_size_,
-                                kCachedThreadMemories,
-                                /*make_iterable=*/true),
-      user_data_allocator_(allocator_.get(),
-                           kTypeIdUserDataRecord,
-                           kTypeIdUserDataRecordFree,
-                           kUserDataSize,
-                           kCachedUserDataMemories,
-                           /*make_iterable=*/true),
-      process_data_(allocator_->GetAsArray<char>(
-                        AllocateFrom(allocator_.get(),
-                                     kTypeIdProcessDataRecordFree,
-                                     kProcessDataSize,
-                                     kTypeIdProcessDataRecord),
-                        kTypeIdProcessDataRecord,
-                        kProcessDataSize),
-                    kProcessDataSize,
-                    process_id_) {
-  DCHECK_NE(ProcessId{0}, process_id_);
-
-  // Ensure that there is no other global object and then make this one such.
-  DCHECK(!g_tracker_.load(std::memory_order_relaxed));
-  g_tracker_.store(this, std::memory_order_release);
-
-  // The data records must be iterable in order to be found by an analyzer.
-  allocator_->MakeIterable(allocator_->GetAsReference(
-      process_data_.GetBaseAddress(), kTypeIdProcessDataRecord));
-
-  // Note that this process has launched.
-  SetProcessPhase(PROCESS_LAUNCHED);
-}
-
-GlobalActivityTracker::~GlobalActivityTracker() {
-  DCHECK(Get() == nullptr || Get() == this);
-  DCHECK_EQ(0, thread_tracker_count_.load(std::memory_order_relaxed));
-  g_tracker_.store(nullptr, std::memory_order_release);
-}
-
-void GlobalActivityTracker::ReturnTrackerMemory(
-    ManagedActivityTracker* tracker) {
-  PersistentMemoryAllocator::Reference mem_reference = tracker->mem_reference_;
-  void* mem_base = tracker->mem_base_;
-  DCHECK(mem_reference);
-  DCHECK(mem_base);
-
-  // Remove the destructed tracker from the set of known ones.
-  DCHECK_LE(1, thread_tracker_count_.load(std::memory_order_relaxed));
-  thread_tracker_count_.fetch_sub(1, std::memory_order_relaxed);
-
-  // Release this memory for re-use at a later time.
-  base::AutoLock autolock(thread_tracker_allocator_lock_);
-  thread_tracker_allocator_.ReleaseObjectReference(mem_reference);
-}
-
-void GlobalActivityTracker::RecordExceptionImpl(const void* pc,
-                                                const void* origin,
-                                                uint32_t code) {
-  // Get an existing tracker for this thread. It's not possible to create
-  // one at this point because such would involve memory allocations and
-  // other potentially complex operations that can cause failures if done
-  // within an exception handler. In most cases various operations will
-  // have already created the tracker so this shouldn't generally be a
-  // problem.
-  ThreadActivityTracker* tracker = GetTrackerForCurrentThread();
-  if (!tracker)
-    return;
-
-  tracker->RecordExceptionActivity(pc, origin, Activity::ACT_EXCEPTION,
-                                   ActivityData::ForException(code));
-}
-
-ScopedActivity::ScopedActivity(const void* program_counter,
-                               uint8_t action,
-                               uint32_t id,
-                               int32_t info)
-    : GlobalActivityTracker::ScopedThreadActivity(
-          program_counter,
-          nullptr,
-          static_cast<Activity::Type>(Activity::ACT_GENERIC | action),
-          ActivityData::ForGeneric(id, info),
-          /*lock_allowed=*/true),
-      id_(id) {
-  // The action must not affect the category bits of the activity type.
-  DCHECK_EQ(0, action & Activity::ACT_CATEGORY_MASK);
-}
-
-void ScopedActivity::ChangeAction(uint8_t action) {
-  DCHECK_EQ(0, action & Activity::ACT_CATEGORY_MASK);
-  ChangeTypeAndData(static_cast<Activity::Type>(Activity::ACT_GENERIC | action),
-                    kNullActivityData);
-}
-
-void ScopedActivity::ChangeInfo(int32_t info) {
-  ChangeTypeAndData(Activity::ACT_NULL, ActivityData::ForGeneric(id_, info));
-}
-
-void ScopedActivity::ChangeActionAndInfo(uint8_t action, int32_t info) {
-  DCHECK_EQ(0, action & Activity::ACT_CATEGORY_MASK);
-  ChangeTypeAndData(static_cast<Activity::Type>(Activity::ACT_GENERIC | action),
-                    ActivityData::ForGeneric(id_, info));
-}
-
-ScopedTaskRunActivity::ScopedTaskRunActivity(const void* program_counter,
-                                             const base::PendingTask& task)
-    : GlobalActivityTracker::ScopedThreadActivity(
-          program_counter,
-          task.posted_from.program_counter(),
-          Activity::ACT_TASK_RUN,
-          ActivityData::ForTask(static_cast<uint64_t>(task.sequence_num)),
-          /*lock_allowed=*/true) {}
-
-ScopedLockAcquireActivity::ScopedLockAcquireActivity(
-    const void* program_counter,
-    const base::internal::LockImpl* lock)
-    : GlobalActivityTracker::ScopedThreadActivity(
-          program_counter,
-          nullptr,
-          Activity::ACT_LOCK_ACQUIRE,
-          ActivityData::ForLock(lock),
-          /*lock_allowed=*/false) {}
-
-ScopedEventWaitActivity::ScopedEventWaitActivity(
-    const void* program_counter,
-    const base::WaitableEvent* event)
-    : GlobalActivityTracker::ScopedThreadActivity(
-          program_counter,
-          nullptr,
-          Activity::ACT_EVENT_WAIT,
-          ActivityData::ForEvent(event),
-          /*lock_allowed=*/true) {}
-
-ScopedThreadJoinActivity::ScopedThreadJoinActivity(
-    const void* program_counter,
-    const base::PlatformThreadHandle* thread)
-    : GlobalActivityTracker::ScopedThreadActivity(
-          program_counter,
-          nullptr,
-          Activity::ACT_THREAD_JOIN,
-          ActivityData::ForThread(*thread),
-          /*lock_allowed=*/true) {}
-
-#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_IOS)
-ScopedProcessWaitActivity::ScopedProcessWaitActivity(
-    const void* program_counter,
-    const base::Process* process)
-    : GlobalActivityTracker::ScopedThreadActivity(
-          program_counter,
-          nullptr,
-          Activity::ACT_PROCESS_WAIT,
-          ActivityData::ForProcess(process->Pid()),
-          /*lock_allowed=*/true) {}
-#endif
-
-}  // namespace debug
-}  // namespace base
diff --git a/base/debug/activity_tracker.h b/base/debug/activity_tracker.h
index f4160da..0c553bd 100644
--- a/base/debug/activity_tracker.h
+++ b/base/debug/activity_tracker.h
@@ -2,1400 +2,177 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Activity tracking provides a low-overhead method of collecting information
-// about the state of the application for analysis both while it is running
-// and after it has terminated unexpectedly. Its primary purpose is to help
-// locate reasons the browser becomes unresponsive by providing insight into
-// what all the various threads and processes are (or were) doing.
+// Activity tracking originally provided a low-overhead method of collecting
+// information about the state of the application for analysis both while it was
+// running and after it had terminated unexpectedly. To keep overhead low, a
+// GlobalActivityTracker object was only created when the ExtendedCrashReporting
+// feature was enabled. If no GlobalActivityTracker object existed, the
+// ActivityUserData and ScopedActivity classes, and all subclasses, would
+// discard any data passed to them.
+//
+// All classes related to activity tracking have been deleted except for those
+// in activity_tracker.h, which have callers throughout the code base. This file
+// now contains only stub versions of the classes and methods that are
+// referenced in other files. These will compile and link but do nothing if
+// called.
+//
+// TODO(crbug.com/1415328): Clean up all callers and delete activity_tracker.h.
 
 #ifndef BASE_DEBUG_ACTIVITY_TRACKER_H_
 #define BASE_DEBUG_ACTIVITY_TRACKER_H_
 
 #include <atomic>
-#include <map>
-#include <memory>
-#include <string>
-#include <vector>
 
 #include "base/base_export.h"
-#include "base/compiler_specific.h"
-#include "base/containers/span.h"
-#include "base/dcheck_is_on.h"
-#include "base/functional/callback.h"
-#include "base/gtest_prod_util.h"
+#include "base/files/file_path.h"
 #include "base/location.h"
-#include "base/memory/raw_ptr.h"
-#include "base/memory/shared_memory_mapping.h"
-#include "base/metrics/persistent_memory_allocator.h"
+#include "base/pending_task.h"
 #include "base/process/process_handle.h"
 #include "base/strings/string_piece.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/task/sequenced_task_runner.h"
-#include "base/threading/thread_local.h"
 #include "build/build_config.h"
 
-#if DCHECK_IS_ON()
-#include "base/threading/platform_thread_ref.h"
-#endif
+// These headers are no longer needed by activity_tracker.h, but many files that
+// transitively include it have hidden dependencies on them.
+// TODO(crbug.com/1415328): Fix all IWYU errors and delete activity_tracker.h.
+#include "base/memory/ptr_util.h"
+#include "base/strings/utf_string_conversions.h"
+#include "base/task/sequenced_task_runner.h"
 
 namespace base {
 
-struct PendingTask;
-
-class FilePath;
-class Lock;
 class PlatformThreadHandle;
 class Process;
 class WaitableEvent;
 
+namespace internal {
+class LockImpl;
+}  // namespace internal
+
 namespace debug {
 
-class ThreadActivityTracker;
-
-
-enum : int {
-  // The maximum number of call-stack addresses stored per activity. This
-  // cannot be changed without also changing the version number of the
-  // structure. See kTypeIdActivityTracker in GlobalActivityTracker.
-  kActivityCallStackSize = 10,
-};
-
-// A class for keeping all information needed to verify that a structure is
-// associated with a given process.
-struct OwningProcess {
-  OwningProcess();
-  ~OwningProcess();
-
-  // Initializes structure with the current process id and the current time.
-  // These can uniquely identify a process. A unique non-zero data_id will be
-  // set making it possible to tell using atomic reads if the data has changed.
-  void Release_Initialize(ProcessId pid = 0);
-
-  // Explicitly sets the process ID.
-  void SetOwningProcessIdForTesting(ProcessId pid, int64_t stamp);
-
-  // Gets the associated process ID, in native form, and the creation timestamp
-  // from memory without loading the entire structure for analysis. This will
-  // return false if no valid process ID is available.
-  static bool GetOwningProcessId(const void* memory,
-                                 ProcessId* out_id,
-                                 int64_t* out_stamp);
-
-  // SHA1(base::debug::OwningProcess): Increment this if structure changes!
-  static constexpr uint32_t kPersistentTypeId = 0xB1179672 + 1;
-
-  // Expected size for 32/64-bit check by PersistentMemoryAllocator.
-  static constexpr size_t kExpectedInstanceSize = 24;
-
-  std::atomic<uint32_t> data_id;
-  uint32_t padding;
-  int64_t process_id;
-  int64_t create_stamp;
-};
-
-// The data associated with an activity is dependent upon the activity type.
-// This union defines all of the various fields. All fields must be explicitly
-// sized types to ensure no interoperability problems between 32-bit and
-// 64-bit systems.
-union ActivityData {
-  // Expected size for 32/64-bit check.
-  // TODO(bcwhite): VC2015 doesn't allow statics in unions. Fix when it does.
-  // static constexpr size_t kExpectedInstanceSize = 8;
-
-  // Generic activities don't have any defined structure.
-  struct {
-    uint32_t id;   // An arbitrary identifier used for association.
-    int32_t info;  // An arbitrary value used for information purposes.
-  } generic;
-  struct {
-    uint64_t sequence_id;  // The sequence identifier of the posted task.
-  } task;
-  struct {
-    uint64_t lock_address;  // The memory address of the lock object.
-  } lock;
-  struct {
-    uint64_t event_address;  // The memory address of the event object.
-  } event;
-  struct {
-    int64_t thread_id;  // A unique identifier for a thread within a process.
-  } thread;
-  struct {
-    int64_t process_id;  // A unique identifier for a process.
-  } process;
-  struct {
-    uint32_t code;  // An "exception code" number.
-  } exception;
-
-  // These methods create an ActivityData object from the appropriate
-  // parameters. Objects of this type should always be created this way to
-  // ensure that no fields remain unpopulated should the set of recorded
-  // fields change. They're defined inline where practical because they
-  // reduce to loading a small local structure with a few values, roughly
-  // the same as loading all those values into parameters.
-
-  static ActivityData ForGeneric(uint32_t id, int32_t info) {
-    ActivityData data;
-    data.generic.id = id;
-    data.generic.info = info;
-    return data;
-  }
-
-  static ActivityData ForTask(uint64_t sequence) {
-    ActivityData data;
-    data.task.sequence_id = sequence;
-    return data;
-  }
-
-  static ActivityData ForLock(const void* lock) {
-    ActivityData data;
-    data.lock.lock_address = reinterpret_cast<uintptr_t>(lock);
-    return data;
-  }
-
-  static ActivityData ForEvent(const void* event) {
-    ActivityData data;
-    data.event.event_address = reinterpret_cast<uintptr_t>(event);
-    return data;
-  }
-
-  static ActivityData ForThread(const PlatformThreadHandle& handle);
-  static ActivityData ForThread(const int64_t id) {
-    ActivityData data;
-    data.thread.thread_id = id;
-    return data;
-  }
-
-  static ActivityData ForProcess(const ProcessId id) {
-    ActivityData data;
-    data.process.process_id = static_cast<int64_t>(id);
-    return data;
-  }
-
-  static ActivityData ForException(const uint32_t code) {
-    ActivityData data;
-    data.exception.code = code;
-    return data;
-  }
-};
-
-// A "null" activity-data that can be passed to indicate "do not change".
-extern const ActivityData kNullActivityData;
-
-
-// A helper class that is used for managing memory allocations within a
-// persistent memory allocator. Instances of this class are NOT thread-safe.
-// Use from a single thread or protect access with a lock.
-class BASE_EXPORT ActivityTrackerMemoryAllocator {
- public:
-  using Reference = PersistentMemoryAllocator::Reference;
-
-  // Creates a instance for allocating objects of a fixed |object_type|, a
-  // corresponding |object_free| type, and the |object_size|. An internal
-  // cache of the last |cache_size| released references will be kept for
-  // quick future fetches. If |make_iterable| then allocated objects will
-  // be marked "iterable" in the allocator.
-  ActivityTrackerMemoryAllocator(PersistentMemoryAllocator* allocator,
-                                 uint32_t object_type,
-                                 uint32_t object_free_type,
-                                 size_t object_size,
-                                 size_t cache_size,
-                                 bool make_iterable);
-
-  ActivityTrackerMemoryAllocator(const ActivityTrackerMemoryAllocator&) =
-      delete;
-  ActivityTrackerMemoryAllocator& operator=(
-      const ActivityTrackerMemoryAllocator&) = delete;
-
-  ~ActivityTrackerMemoryAllocator();
-
-  // Gets a reference to an object of the configured type. This can return
-  // a null reference if it was not possible to allocate the memory.
-  Reference GetObjectReference();
-
-  // Returns an object to the "free" pool.
-  void ReleaseObjectReference(Reference ref);
-
-  // Helper function to access an object allocated using this instance.
-  template <typename T>
-  T* GetAsObject(Reference ref) {
-    return allocator_->GetAsObject<T>(ref);
-  }
-
-  // Similar to GetAsObject() but converts references to arrays of objects.
-  template <typename T>
-  T* GetAsArray(Reference ref, size_t count) {
-    return allocator_->GetAsArray<T>(ref, object_type_, count);
-  }
-
-  // The current "used size" of the internal cache, visible for testing.
-  size_t cache_used() const { return cache_used_; }
-
- private:
-  const raw_ptr<PersistentMemoryAllocator> allocator_;
-  const uint32_t object_type_;
-  const uint32_t object_free_type_;
-  const size_t object_size_;
-  const size_t cache_size_;
-  const bool make_iterable_;
-
-  // An iterator for going through persistent memory looking for free'd objects.
-  PersistentMemoryAllocator::Iterator iterator_;
-
-  // The cache of released object memories.
-  std::unique_ptr<Reference[]> cache_values_;
-  size_t cache_used_;
-};
-
-
-// This structure is the full contents recorded for every activity pushed
-// onto the stack. The |activity_type| indicates what is actually stored in
-// the |data| field. All fields must be explicitly sized types to ensure no
-// interoperability problems between 32-bit and 64-bit systems.
-struct Activity {
-  // SHA1(base::debug::Activity): Increment this if structure changes!
-  static constexpr uint32_t kPersistentTypeId = 0x99425159 + 1;
-  // Expected size for 32/64-bit check. Update this if structure changes!
-  static constexpr size_t kExpectedInstanceSize =
-      48 + 8 * kActivityCallStackSize;
-
-  // The type of an activity on the stack. Activities are broken into
-  // categories with the category ID taking the top 4 bits and the lower
-  // bits representing an action within that category. This combination
-  // makes it easy to "switch" based on the type during analysis.
-  enum Type : uint8_t {
-    // This "null" constant is used to indicate "do not change" in calls.
-    ACT_NULL = 0,
-
-    // Task activities involve callbacks posted to a thread or thread-pool
-    // using the PostTask() method or any of its friends.
-    ACT_TASK = 1 << 4,
-    ACT_TASK_RUN = ACT_TASK,
-
-    // Lock activities involve the acquisition of "mutex" locks.
-    ACT_LOCK = 2 << 4,
-    ACT_LOCK_ACQUIRE = ACT_LOCK,
-    ACT_LOCK_RELEASE,
-
-    // Event activities involve operations on a WaitableEvent.
-    ACT_EVENT = 3 << 4,
-    ACT_EVENT_WAIT = ACT_EVENT,
-    ACT_EVENT_SIGNAL,
-
-    // Thread activities involve the life management of threads.
-    ACT_THREAD = 4 << 4,
-    ACT_THREAD_START = ACT_THREAD,
-    ACT_THREAD_JOIN,
-
-    // Process activities involve the life management of processes.
-    ACT_PROCESS = 5 << 4,
-    ACT_PROCESS_START = ACT_PROCESS,
-    ACT_PROCESS_WAIT,
-
-    // Exception activities indicate the occurence of something unexpected.
-    ACT_EXCEPTION = 14 << 4,
-
-    // Generic activities are user defined and can be anything.
-    ACT_GENERIC = 15 << 4,
-
-    // These constants can be used to separate the category and action from
-    // a combined activity type.
-    ACT_CATEGORY_MASK = 0xF << 4,
-    ACT_ACTION_MASK = 0xF
-  };
-
-  // Internal representation of time. During collection, this is in "ticks"
-  // but when returned in a snapshot, it is "wall time".
-  int64_t time_internal;
-
-  // The address that pushed the activity onto the stack as a raw number.
-  uint64_t calling_address;
-
-  // The address that is the origin of the activity if it not obvious from
-  // the call stack. This is useful for things like tasks that are posted
-  // from a completely different thread though most activities will leave
-  // it null.
-  uint64_t origin_address;
-
-  // Array of program-counters that make up the top of the call stack.
-  // Despite the fixed size, this list is always null-terminated. Entries
-  // after the terminator have no meaning and may or may not also be null.
-  // The list will be completely empty if call-stack collection is not
-  // enabled.
-  uint64_t call_stack[kActivityCallStackSize];
-
-  // Reference to arbitrary user data within the persistent memory segment
-  // and a unique identifier for it.
-  uint32_t user_data_ref;
-  uint32_t user_data_id;
-
-  // The (enumerated) type of the activity. This defines what fields of the
-  // |data| record are valid.
-  uint8_t activity_type;
-
-  // Padding to ensure that the next member begins on a 64-bit boundary
-  // even on 32-bit builds which ensures inter-operability between CPU
-  // architectures. New fields can be taken from this space.
-  uint8_t padding[7];
-
-  // Information specific to the |activity_type|.
-  ActivityData data;
-
-  static void FillFrom(Activity* activity,
-                       const void* program_counter,
-                       const void* origin,
-                       Type type,
-                       const ActivityData& data);
-};
-
-// This class manages arbitrary user data that can be associated with activities
-// done by a thread by supporting key/value pairs of any type. This can provide
-// additional information during debugging. It is also used to store arbitrary
-// global data. All updates must be done from the same thread though other
-// threads can read it concurrently if they create new objects using the same
-// memory. For a thread-safe version, see ThreadSafeUserData later on.
 class BASE_EXPORT ActivityUserData {
  public:
-  // List of known value type. REFERENCE types must immediately follow the non-
-  // external types.
-  enum ValueType : uint8_t {
-    END_OF_VALUES = 0,
-    RAW_VALUE,
-    RAW_VALUE_REFERENCE,
-    STRING_VALUE,
-    STRING_VALUE_REFERENCE,
-    CHAR_VALUE,
-    BOOL_VALUE,
-    SIGNED_VALUE,
-    UNSIGNED_VALUE,
-  };
-
-  class BASE_EXPORT TypedValue {
-   public:
-    TypedValue();
-    TypedValue(const TypedValue& other);
-    ~TypedValue();
-
-    ValueType type() const { return type_; }
-
-    // These methods return the extracted value in the correct format.
-    StringPiece Get() const;
-    StringPiece GetString() const;
-    bool GetBool() const;
-    char GetChar() const;
-    int64_t GetInt() const;
-    uint64_t GetUint() const;
-
-    // These methods return references to process memory as originally provided
-    // to corresponding Set calls. USE WITH CAUTION! There is no guarantee that
-    // the referenced memory is assessible or useful.  It's possible that:
-    //  - the memory was free'd and reallocated for a different purpose
-    //  - the memory has been released back to the OS
-    //  - the memory belongs to a different process's address space
-    // Dereferencing the returned StringPiece when the memory is not accessible
-    // will cause the program to SEGV!
-    StringPiece GetReference() const;
-    StringPiece GetStringReference() const;
-
-   private:
-    friend class ActivityUserData;
-
-    ValueType type_ = END_OF_VALUES;
-    uint64_t short_value_;    // Used to hold copy of numbers, etc.
-    std::string long_value_;  // Used to hold copy of raw/string data.
-    StringPiece ref_value_;   // Used to hold reference to external data.
-  };
-
-  using Snapshot = std::map<std::string, TypedValue>;
-
-  // Initialize the object either as a "sink" that just accepts and discards
-  // data or an active one that writes to a given (zeroed) memory block.
-  ActivityUserData();
-  ActivityUserData(void* memory, size_t size, ProcessId pid = 0);
+  ActivityUserData() = default;
+  ~ActivityUserData() = default;
 
   ActivityUserData(const ActivityUserData&) = delete;
   ActivityUserData& operator=(const ActivityUserData&) = delete;
 
-  virtual ~ActivityUserData();
+  void SetInt(StringPiece name, int64_t value) {}
 
-  // Gets the unique ID number for this user data. If this changes then the
-  // contents have been overwritten by another thread. The return value is
-  // always non-zero unless it's actually just a data "sink".
-  uint32_t id() const {
-    return header_ ? header_->owner.data_id.load(std::memory_order_relaxed) : 0;
-  }
-
-  // Writes a |value| (as part of a key/value pair) that will be included with
-  // the activity in any reports. The same |name| can be written multiple times
-  // with each successive call overwriting the previously stored |value|. For
-  // raw and string values, the maximum size of successive writes is limited by
-  // the first call. The length of "name" is limited to 255 characters.
-  //
-  // This information is stored on a "best effort" basis. It may be dropped if
-  // the memory buffer is full or the associated activity is beyond the maximum
-  // recording depth.
-  //
-  // Some methods return pointers to the stored value that can be further
-  // modified using normal std::atomic operations without having to go through
-  // this interface, thus avoiding the relatively expensive name lookup.
-  // ==> Use std::memory_order_relaxed as the "order" parameter to atomic ops.
-  // Remember that the return value will be nullptr if the value could not
-  // be stored!
-  void Set(StringPiece name, const void* memory, size_t size) {
-    Set(name, RAW_VALUE, memory, size);
-  }
-  void SetString(StringPiece name, StringPiece value) {
-    Set(name, STRING_VALUE, value.data(), value.length());
-  }
-  void SetString(StringPiece name, StringPiece16 value) {
-    SetString(name, UTF16ToUTF8(value));
-  }
-  std::atomic<bool>* SetBool(StringPiece name, bool value) {
-    char cvalue = value ? 1 : 0;
-    void* addr = Set(name, BOOL_VALUE, &cvalue, sizeof(cvalue));
-    return reinterpret_cast<std::atomic<bool>*>(addr);
-  }
-  std::atomic<char>* SetChar(StringPiece name, char value) {
-    void* addr = Set(name, CHAR_VALUE, &value, sizeof(value));
-    return reinterpret_cast<std::atomic<char>*>(addr);
-  }
-  std::atomic<int64_t>* SetInt(StringPiece name, int64_t value) {
-    void* addr = Set(name, SIGNED_VALUE, &value, sizeof(value));
-    return reinterpret_cast<std::atomic<int64_t>*>(addr);
-  }
   std::atomic<uint64_t>* SetUint(StringPiece name, uint64_t value) {
-    void* addr = Set(name, UNSIGNED_VALUE, &value, sizeof(value));
-    return reinterpret_cast<std::atomic<uint64_t>*>(addr);
+    // Only one caller (mojo/core/channel_win.cc) uses the return value of this
+    // method, expecting a pointer into ActivityUserData memory where it can
+    // write a running count. It checks for nullptr before writing to the
+    // uint64_t, so this is safe.
+    return nullptr;
   }
 
-  // These function as above but don't actually copy the data into the
-  // persistent memory. They store unaltered pointers along with a size. These
-  // can be used in conjuction with a memory dump to find certain large pieces
-  // of information.
-  void SetReference(StringPiece name, const void* memory, size_t size) {
-    SetReference(name, RAW_VALUE_REFERENCE, memory, size);
-  }
-  void SetStringReference(StringPiece name, StringPiece value) {
-    SetReference(name, STRING_VALUE_REFERENCE, value.data(), value.length());
-  }
-
-  // Creates a snapshot of the key/value pairs contained within. The returned
-  // data will be fixed, independent of whatever changes afterward. There is
-  // some protection against concurrent modification. This will return false
-  // if the data is invalid or if a complete overwrite of the contents is
-  // detected.
-  bool CreateSnapshot(Snapshot* output_snapshot) const;
-
-  // Gets the base memory address used for storing data.
-  const void* GetBaseAddress() const;
-
-  // Explicitly sets the process ID.
-  void SetOwningProcessIdForTesting(ProcessId pid, int64_t stamp);
-
-  // Gets the associated process ID, in native form, and the creation timestamp
-  // from tracker memory without loading the entire structure for analysis. This
-  // will return false if no valid process ID is available.
-  static bool GetOwningProcessId(const void* memory,
-                                 ProcessId* out_id,
-                                 int64_t* out_stamp);
-
- protected:
-  virtual void* Set(StringPiece name,
-                    ValueType type,
-                    const void* memory,
-                    size_t size);
-
- private:
-  FRIEND_TEST_ALL_PREFIXES(ActivityTrackerTest, UserDataTest);
-
-  static constexpr size_t kMemoryAlignment = sizeof(uint64_t);
-
-  // A structure that defines the structure header in memory.
-  struct MemoryHeader {
-    MemoryHeader();
-    ~MemoryHeader();
-
-    OwningProcess owner;  // Information about the creating process.
-  };
-
-  static_assert(sizeof(MemoryHeader) % kMemoryAlignment == 0,
-                "Memory following header must also be aligned");
-
-  // Header to a key/value record held in persistent memory.
-  struct FieldHeader {
-    FieldHeader();
-    ~FieldHeader();
-
-    std::atomic<uint8_t> type;         // Encoded ValueType
-    uint8_t name_size;                 // Length of "name" key.
-    std::atomic<uint16_t> value_size;  // Actual size of of the stored value.
-    uint16_t record_size;              // Total storage of name, value, header.
-  };
-
-  // A structure used to reference data held outside of persistent memory.
-  struct ReferenceRecord {
-    uint64_t address;
-    uint64_t size;
-  };
-
-  // This record is used to hold known value is a map so that they can be
-  // found and overwritten later.
-  struct ValueInfo {
-    ValueInfo();
-    ValueInfo(ValueInfo&&);
-    ~ValueInfo();
-
-    StringPiece name;                 // The "key" of the record.
-    ValueType type;                   // The type of the value.
-    base::span<char> memory;          // Where the "value" is held.
-    raw_ptr<std::atomic<uint16_t>>
-        size_ptr;                     // Address of the actual size of value.
-    size_t extent;                    // The total storage of the value,
-  };                                  // typically rounded up for alignment.
-
-  void SetReference(StringPiece name,
-                    ValueType type,
-                    const void* memory,
-                    size_t size);
-
-  // Loads any data already in the memory segment. This allows for accessing
-  // records created previously. If this detects that the underlying data has
-  // gone away (cleared by another thread/process), it will invalidate all the
-  // data in this object and turn it into simple "sink" with no values to
-  // return.
-  void ImportExistingData() const;
-
-  // A map of all the values within the memory block, keyed by name for quick
-  // updates of the values. This is "mutable" because it changes on "const"
-  // objects even when the actual data values can't change.
-  mutable std::map<StringPiece, ValueInfo> values_;
-
-  // Information about the memory block in which new data can be stored. These
-  // are "mutable" because they change even on "const" objects that are just
-  // skipping already set values.
-  mutable base::span<char> memory_;
-
-  // A pointer to the memory header for this instance.
-  mutable raw_ptr<MemoryHeader> header_ = nullptr;
-
-  // These hold values used when initially creating the object. They are
-  // compared against current header values to check for outside changes.
-  // They may be updated by casting away the const in the constructor.
-  const uint32_t orig_data_id = 0;
-  const ProcessId orig_process_id = 0;
-  const int64_t orig_create_stamp = 0;
+  void SetString(StringPiece name, StringPiece value) {}
 };
 
-// This class manages tracking a stack of activities for a single thread in
-// a persistent manner, implementing a bounded-size stack in a fixed-size
-// memory allocation. In order to support an operational mode where another
-// thread is analyzing this data in real-time, atomic operations are used
-// where necessary to guarantee a consistent view from the outside.
-//
-// This class is not generally used directly but instead managed by the
-// GlobalActivityTracker instance and updated using Scoped*Activity local
-// objects.
-class BASE_EXPORT ThreadActivityTracker {
- public:
-  using ActivityId = uint32_t;
-
-  // This structure contains all the common information about the thread so
-  // it doesn't have to be repeated in every entry on the stack. It is defined
-  // and used completely within the .cc file.
-  struct Header;
-
-  // This structure holds a copy of all the internal data at the moment the
-  // "snapshot" operation is done. It is disconnected from the live tracker
-  // so that continued operation of the thread will not cause changes here.
-  struct BASE_EXPORT Snapshot {
-    // Explicit constructor/destructor are needed because of complex types
-    // with non-trivial default constructors and destructors.
-    Snapshot();
-    ~Snapshot();
-
-    // The name of the thread as set when it was created. The name may be
-    // truncated due to internal length limitations.
-    std::string thread_name;
-
-    // The timestamp at which this process was created.
-    int64_t create_stamp;
-
-    // The process and thread IDs. These values have no meaning other than
-    // they uniquely identify a running process and a running thread within
-    // that process.  Thread-IDs can be re-used across different processes
-    // and both can be re-used after the process/thread exits.
-    ProcessId process_id = 0;
-    int64_t thread_id = 0;
-
-    // The current stack of activities that are underway for this thread. It
-    // is limited in its maximum size with later entries being left off.
-    std::vector<Activity> activity_stack;
-
-    // The current total depth of the activity stack, including those later
-    // entries not recorded in the |activity_stack| vector.
-    uint32_t activity_stack_depth = 0;
-
-    // The last recorded "exception" activity.
-    Activity last_exception;
-  };
-
-  // This is the base class for having the compiler manage an activity on the
-  // tracker's stack. It does nothing but call methods on the passed |tracker|
-  // if it is not null, making it safe (and cheap) to create these objects
-  // even if activity tracking is not enabled.
-  class BASE_EXPORT ScopedActivity {
-   public:
-    ScopedActivity(ThreadActivityTracker* tracker,
-                   const void* program_counter,
-                   const void* origin,
-                   Activity::Type type,
-                   const ActivityData& data);
-
-    ScopedActivity(const ScopedActivity&) = delete;
-    ScopedActivity& operator=(const ScopedActivity&) = delete;
-
-    ~ScopedActivity();
-
-    // Indicates if this activity is actually being recorded. It may not be if
-    // (a) activity tracking is not enabled globally or
-    // (b) there was insufficient stack space to hold it.
-    bool IsRecorded();
-
-    // Changes some basic metadata about the activity.
-    void ChangeTypeAndData(Activity::Type type, const ActivityData& data);
-
-   protected:
-    // The thread tracker to which this object reports. It can be null if
-    // activity tracking is not (yet) enabled.
-    const raw_ptr<ThreadActivityTracker> tracker_;
-
-    // An identifier that indicates a specific activity on the stack.
-    ActivityId activity_id_;
-  };
-
-  // A ThreadActivityTracker runs on top of memory that is managed externally.
-  // It must be large enough for the internal header and a few Activity
-  // blocks. See SizeForStackDepth().
-  ThreadActivityTracker(void* base, size_t size);
-
-  ThreadActivityTracker(const ThreadActivityTracker&) = delete;
-  ThreadActivityTracker& operator=(const ThreadActivityTracker&) = delete;
-
-  virtual ~ThreadActivityTracker();
-
-  // Indicates that an activity has started from a given |origin| address in
-  // the code, though it can be null if the creator's address is not known.
-  // The |type| and |data| describe the activity. |program_counter| should be
-  // the result of GetProgramCounter() where push is called. Returned is an
-  // ID that can be used to adjust the pushed activity.
-  ActivityId PushActivity(const void* program_counter,
-                          const void* origin,
-                          Activity::Type type,
-                          const ActivityData& data);
-
-  // An inlined version of the above that gets the program counter where it
-  // is called.
-  ALWAYS_INLINE
-  ActivityId PushActivity(const void* origin,
-                          Activity::Type type,
-                          const ActivityData& data) {
-    return PushActivity(GetProgramCounter(), origin, type, data);
-  }
-
-  // Changes the activity |type| and |data| of the top-most entry on the stack.
-  // This is useful if the information has changed and it is desireable to
-  // track that change without creating a new stack entry. If the type is
-  // ACT_NULL or the data is kNullActivityData then that value will remain
-  // unchanged. The type, if changed, must remain in the same category.
-  // Changing both is not atomic so a snapshot operation could occur between
-  // the update of |type| and |data| or between update of |data| fields.
-  void ChangeActivity(ActivityId id,
-                      Activity::Type type,
-                      const ActivityData& data);
-
-  // Indicates that an activity has completed.
-  void PopActivity(ActivityId id);
-
-  // Indicates if an activity is actually being recorded.
-  bool IsRecorded(ActivityId id);
-
-  // Sets the user-data information for an activity.
-  std::unique_ptr<ActivityUserData> GetUserData(
-      ActivityId id,
-      ActivityTrackerMemoryAllocator* allocator);
-
-  // Returns if there is true use-data associated with a given ActivityId since
-  // it's possible than any returned object is just a sink.
-  bool HasUserData(ActivityId id);
-
-  // Release the user-data information for an activity.
-  void ReleaseUserData(ActivityId id,
-                       ActivityTrackerMemoryAllocator* allocator);
-
-  // Save an exception. |origin| is the location of the exception.
-  void RecordExceptionActivity(const void* program_counter,
-                               const void* origin,
-                               Activity::Type type,
-                               const ActivityData& data);
-
-  // Returns whether the current data is valid or not. It is not valid if
-  // corruption has been detected in the header or other data structures.
-  bool IsValid() const;
-
-  // Gets a copy of the tracker contents for analysis. Returns false if a
-  // snapshot was not possible, perhaps because the data is not valid; the
-  // contents of |output_snapshot| are undefined in that case. The current
-  // implementation does not support concurrent snapshot operations.
-  bool CreateSnapshot(Snapshot* output_snapshot) const;
-
-  // Gets the base memory address used for storing data.
-  const void* GetBaseAddress();
-
-  // Access the "data version" value so tests can determine if an activity
-  // was pushed and popped in a single call.
-  uint32_t GetDataVersionForTesting();
-
-  // Explicitly sets the process ID.
-  void SetOwningProcessIdForTesting(ProcessId pid, int64_t stamp);
-
-  // Gets the associated process ID, in native form, and the creation timestamp
-  // from tracker memory without loading the entire structure for analysis. This
-  // will return false if no valid process ID is available.
-  static bool GetOwningProcessId(const void* memory,
-                                 ProcessId* out_id,
-                                 int64_t* out_stamp);
-
-  // Calculates the memory size required for a given stack depth, including
-  // the internal header structure for the stack.
-  static size_t SizeForStackDepth(int stack_depth);
-
- private:
-  friend class ActivityTrackerTest;
-
-  bool CalledOnValidThread();
-
-  std::unique_ptr<ActivityUserData> CreateUserDataForActivity(
-      Activity* activity,
-      ActivityTrackerMemoryAllocator* allocator);
-
-  const raw_ptr<Header> header_;   // Pointer to the Header structure.
-  const raw_ptr<Activity> stack_;  // The stack of activities.
-
-#if DCHECK_IS_ON()
-  // The ActivityTracker is thread bound, and will be invoked across all the
-  // sequences that run on the thread. A ThreadChecker does not work here, as it
-  // asserts on running in the same sequence each time.
-  const PlatformThreadRef thread_id_;  // The thread this instance is bound to.
-#endif
-  const uint32_t stack_slots_;  // The total number of stack slots.
-
-  bool valid_ = false;          // Tracks whether the data is valid or not.
-};
-
-
-// The global tracker manages all the individual thread trackers. Memory for
-// the thread trackers is taken from a PersistentMemoryAllocator which allows
-// for the data to be analyzed by a parallel process or even post-mortem.
 class BASE_EXPORT GlobalActivityTracker {
  public:
-  // Type identifiers used when storing in persistent memory so they can be
-  // identified during extraction; the first 4 bytes of the SHA1 of the name
-  // is used as a unique integer. A "version number" is added to the base
-  // so that, if the structure of that object changes, stored older versions
-  // will be safely ignored. These are public so that an external process
-  // can recognize records of this type within an allocator.
-  enum : uint32_t {
-    kTypeIdActivityTracker = 0x5D7381AF + 4,   // SHA1(ActivityTracker) v4
-    kTypeIdUserDataRecord = 0x615EDDD7 + 3,    // SHA1(UserDataRecord) v3
-    kTypeIdGlobalLogMessage = 0x4CF434F9 + 1,  // SHA1(GlobalLogMessage) v1
-    kTypeIdProcessDataRecord = kTypeIdUserDataRecord + 0x100,
-
-    kTypeIdActivityTrackerFree = ~kTypeIdActivityTracker,
-    kTypeIdUserDataRecordFree = ~kTypeIdUserDataRecord,
-    kTypeIdProcessDataRecordFree = ~kTypeIdProcessDataRecord,
-  };
-
-  // An enumeration of common process life stages. All entries are given an
-  // explicit number so they are known and remain constant; this allows for
-  // cross-version analysis either locally or on a server.
   enum ProcessPhase : int {
-    // The phases are generic and may have meaning to the tracker.
     PROCESS_PHASE_UNKNOWN = 0,
     PROCESS_LAUNCHED = 1,
     PROCESS_LAUNCH_FAILED = 2,
     PROCESS_EXITED_CLEANLY = 10,
     PROCESS_EXITED_WITH_CODE = 11,
-
-    // Add here whatever is useful for analysis.
     PROCESS_SHUTDOWN_STARTED = 100,
     PROCESS_MAIN_LOOP_STARTED = 101,
   };
 
-  // A callback made when a process exits to allow immediate analysis of its
-  // data. Note that the system may reuse the |process_id| so when fetching
-  // records it's important to ensure that what is returned was created before
-  // the |exit_stamp|. Movement of |process_data| information is allowed.
-  using ProcessExitCallback =
-      RepeatingCallback<void(ProcessId process_id,
-                             int64_t exit_stamp,
-                             int exit_code,
-                             ProcessPhase exit_phase,
-                             std::string&& command_line,
-                             ActivityUserData::Snapshot&& process_data)>;
-
-  // This structure contains information about a loaded module, as shown to
-  // users of the tracker.
-  struct BASE_EXPORT ModuleInfo {
-    ModuleInfo();
-    ModuleInfo(ModuleInfo&& rhs);
-    ModuleInfo(const ModuleInfo& rhs);
-    ~ModuleInfo();
-
-    ModuleInfo& operator=(ModuleInfo&& rhs);
-    ModuleInfo& operator=(const ModuleInfo& rhs);
-
-    // Information about where and when the module was loaded/unloaded.
-    bool is_loaded = false;  // Was the last operation a load or unload?
-    uintptr_t address = 0;   // Address of the last load operation.
-    int64_t load_time = 0;   // Time of last change; set automatically.
-
-    // Information about the module itself. These never change no matter how
-    // many times a module may be loaded and unloaded.
-    size_t size = 0;         // The size of the loaded module.
-    uint32_t timestamp = 0;  // Opaque "timestamp" for the module.
-    uint32_t age = 0;        // Opaque "age" for the module.
-    uint8_t identifier[16];  // Opaque identifier (GUID, etc.) for the module.
-    std::string file;        // The full path to the file. (UTF-8)
-    std::string debug_file;  // The full path to the debug file.
-  };
-
-  // This is a thin wrapper around the thread-tracker's ScopedActivity that
-  // allows thread-safe access to data values. It is safe to use even if
-  // activity tracking is not enabled.
-  class BASE_EXPORT ScopedThreadActivity
-      : public ThreadActivityTracker::ScopedActivity {
-   public:
-    ScopedThreadActivity(const void* program_counter,
-                         const void* origin,
-                         Activity::Type type,
-                         const ActivityData& data,
-                         bool lock_allowed);
-
-    ScopedThreadActivity(const ScopedThreadActivity&) = delete;
-    ScopedThreadActivity& operator=(const ScopedThreadActivity&) = delete;
-
-    ~ScopedThreadActivity();
-
-    // Returns an object for manipulating user data.
-    ActivityUserData& user_data();
-
-   private:
-    // Gets (or creates) a tracker for the current thread. If locking is not
-    // allowed (because a lock is being tracked which would cause recursion)
-    // then the attempt to create one if none found will be skipped. Once
-    // the tracker for this thread has been created for other reasons, locks
-    // will be tracked. The thread-tracker uses locks.
-    static ThreadActivityTracker* GetOrCreateTracker(bool lock_allowed) {
-      GlobalActivityTracker* global_tracker = Get();
-      if (!global_tracker)
-        return nullptr;
-
-      if (lock_allowed)
-        return global_tracker->GetOrCreateTrackerForCurrentThread();
-      else
-        return global_tracker->GetTrackerForCurrentThread();
-    }
-
-    // An object that manages additional user data, created only upon request.
-    std::unique_ptr<ActivityUserData> user_data_;
-  };
+  // The deleted constructor ensures that there is no way to create a
+  // GlobalActivityTracker object. This class and all its methods exist only
+  // keep existing callers compiling.
+  GlobalActivityTracker() = delete;
+  ~GlobalActivityTracker() = delete;
 
   GlobalActivityTracker(const GlobalActivityTracker&) = delete;
   GlobalActivityTracker& operator=(const GlobalActivityTracker&) = delete;
 
-  ~GlobalActivityTracker();
+  // Always return nullptr. All callers check the return value of Get(), or
+  // use the static IfEnabled() functions that were always no-ops if Get()
+  // returned nullptr. Originally Get() returned a value iff the
+  // ExtendedCrashReporting feature was enabled. Since it was disabled by
+  // default all callers can cleanly handle a nullptr return value.
+  static GlobalActivityTracker* Get() { return nullptr; }
 
-  // Creates a global tracker using a given persistent-memory |allocator| and
-  // providing the given |stack_depth| to each thread tracker it manages. The
-  // created object is activated so tracking will begin immediately upon return.
-  // The |process_id| can be zero to get it from the OS but is taken for testing
-  // purposes.
-  static void CreateWithAllocator(
-      std::unique_ptr<PersistentMemoryAllocator> allocator,
-      int stack_depth,
-      ProcessId process_id);
-
-#if !BUILDFLAG(IS_NACL)
-  // Like above but internally creates an allocator around a disk file with
-  // the specified |size| at the given |file_path|. Any existing file will be
-  // overwritten. The |id| and |name| are arbitrary and stored in the allocator
-  // for reference by whatever process reads it. Returns true if successful.
-  static bool CreateWithFile(const FilePath& file_path,
-                             size_t size,
-                             uint64_t id,
-                             StringPiece name,
-                             int stack_depth);
-#endif  // !BUILDFLAG(IS_NACL)
-
-  // Like above but internally creates an allocator using local heap memory of
-  // the specified size. This is used primarily for unit tests. The |process_id|
-  // can be zero to get it from the OS but is taken for testing purposes.
-  static bool CreateWithLocalMemory(size_t size,
-                                    uint64_t id,
-                                    StringPiece name,
-                                    int stack_depth,
-                                    ProcessId process_id);
-
-  // Like above but internally creates an allocator using a shared-memory
-  // segment that is already mapped into the local memory space.
-  static bool CreateWithSharedMemory(base::WritableSharedMemoryMapping mapping,
-                                     uint64_t id,
-                                     StringPiece name,
-                                     int stack_depth);
-
-  // Gets the global activity-tracker or null if none exists.
-  static GlobalActivityTracker* Get() {
-    return g_tracker_.load(std::memory_order_acquire);
-  }
-
-  // Sets the global activity-tracker for testing purposes.
-  static void SetForTesting(std::unique_ptr<GlobalActivityTracker> tracker);
-
-  // This access to the persistent allocator is only for testing; it extracts
-  // the global tracker completely. All tracked threads must exit before
-  // calling this. Tracking for the current thread will be automatically
-  // stopped.
-  static std::unique_ptr<GlobalActivityTracker> ReleaseForTesting();
-
-  // Convenience method for determining if a global tracker is active.
-  static bool IsEnabled() { return Get() != nullptr; }
-
-  // Gets the persistent-memory-allocator in which data is stored. Callers
-  // can store additional records here to pass more information to the
-  // analysis process.
-  PersistentMemoryAllocator* allocator() { return allocator_.get(); }
-
-  // Gets the thread's activity-tracker if it exists. This is inline for
-  // performance reasons and it uses thread-local-storage (TLS) so that there
-  // is no significant lookup time required to find the one for the calling
-  // thread. Ownership remains with the global tracker.
-  ThreadActivityTracker* GetTrackerForCurrentThread() {
-    // It is not safe to use TLS once TLS has been destroyed.
-    if (base::ThreadLocalStorage::HasBeenDestroyed())
-      return nullptr;
-
-    return this_thread_tracker_.Get();
-  }
-
-  // Gets the thread's activity-tracker or creates one if none exists. This
-  // is inline for performance reasons. Ownership remains with the global
-  // tracker.
-  ThreadActivityTracker* GetOrCreateTrackerForCurrentThread() {
-    ThreadActivityTracker* tracker = GetTrackerForCurrentThread();
-    if (tracker)
-      return tracker;
-    return CreateTrackerForCurrentThread();
-  }
-
-  // Creates an activity-tracker for the current thread.
-  ThreadActivityTracker* CreateTrackerForCurrentThread();
-
-  // Releases the activity-tracker for the current thread (for testing only).
-  void ReleaseTrackerForCurrentThreadForTesting();
-
-  // Sets a task-runner that can be used for background work.
-  void SetBackgroundTaskRunner(
-      const scoped_refptr<SequencedTaskRunner>& runner);
-
-  // Sets an optional callback to be called when a process exits.
-  void SetProcessExitCallback(ProcessExitCallback callback);
-
-  // Manages process lifetimes. These are called by the process that launched
-  // and reaped the subprocess, not the subprocess itself. If it is expensive
-  // to generate the parameters, Get() the global tracker and call these
-  // conditionally rather than using the static versions.
   void RecordProcessLaunch(ProcessId process_id,
-                           const FilePath::StringType& cmd);
-  void RecordProcessLaunch(ProcessId process_id,
-                           const FilePath::StringType& exe,
-                           const FilePath::StringType& args);
-  void RecordProcessExit(ProcessId process_id, int exit_code);
+                           const FilePath::StringType& cmd) {}
   static void RecordProcessLaunchIfEnabled(ProcessId process_id,
-                                           const FilePath::StringType& cmd) {
-    GlobalActivityTracker* tracker = Get();
-    if (tracker)
-      tracker->RecordProcessLaunch(process_id, cmd);
-  }
+                                           const FilePath::StringType& cmd) {}
   static void RecordProcessLaunchIfEnabled(ProcessId process_id,
                                            const FilePath::StringType& exe,
-                                           const FilePath::StringType& args) {
-    GlobalActivityTracker* tracker = Get();
-    if (tracker)
-      tracker->RecordProcessLaunch(process_id, exe, args);
-  }
-  static void RecordProcessExitIfEnabled(ProcessId process_id, int exit_code) {
-    GlobalActivityTracker* tracker = Get();
-    if (tracker)
-      tracker->RecordProcessExit(process_id, exit_code);
-  }
+                                           const FilePath::StringType& args) {}
+  static void RecordProcessExitIfEnabled(ProcessId process_id, int exit_code) {}
 
-  // Sets the "phase" of the current process, useful for knowing what it was
-  // doing when it last reported.
-  void SetProcessPhase(ProcessPhase phase);
-  static void SetProcessPhaseIfEnabled(ProcessPhase phase) {
-    GlobalActivityTracker* tracker = Get();
-    if (tracker)
-      tracker->SetProcessPhase(phase);
-  }
+  void SetProcessPhase(ProcessPhase phase) {}
+  static void SetProcessPhaseIfEnabled(ProcessPhase phase) {}
 
-  // Records a log message. The current implementation does NOT recycle these
-  // only store critical messages such as FATAL ones.
-  void RecordLogMessage(StringPiece message);
-  static void RecordLogMessageIfEnabled(StringPiece message) {
-    GlobalActivityTracker* tracker = Get();
-    if (tracker)
-      tracker->RecordLogMessage(message);
-  }
+  void RecordLogMessage(StringPiece message) {}
 
-  // Records a module load/unload event. This is safe to call multiple times
-  // even with the same information.
-  void RecordModuleInfo(const ModuleInfo& info);
-  static void RecordModuleInfoIfEnabled(const ModuleInfo& info) {
-    GlobalActivityTracker* tracker = Get();
-    if (tracker)
-      tracker->RecordModuleInfo(info);
-  }
-
-  // Record exception information for the current thread.
-  ALWAYS_INLINE
-  void RecordException(const void* origin, uint32_t code) {
-    return RecordExceptionImpl(GetProgramCounter(), origin, code);
-  }
-  void RecordException(const void* pc, const void* origin, uint32_t code);
-
-  // Marks the tracked data as deleted.
-  void MarkDeleted();
-
-  // Gets the process ID used for tracking. This is typically the same as what
-  // the OS thinks is the current process but can be overridden for testing.
-  ProcessId process_id() const { return process_id_; }
-
-  // Accesses the process data record for storing arbitrary key/value pairs.
-  // Updates to this are thread-safe.
   ActivityUserData& process_data() { return process_data_; }
 
  private:
-  friend class GlobalActivityAnalyzer;
-  friend class ScopedThreadActivity;
-  friend class ActivityTrackerTest;
-
-  enum : int {
-    // The maximum number of threads that can be tracked within a process. If
-    // more than this number run concurrently, tracking of new ones may cease.
-    kMaxThreadCount = 100,
-    kCachedThreadMemories = 10,
-    kCachedUserDataMemories = 10,
-  };
-
-  // A wrapper around ActivityUserData that is thread-safe and thus can be used
-  // in the global scope without the requirement of being called from only one
-  // thread.
-  class ThreadSafeUserData : public ActivityUserData {
-   public:
-    ThreadSafeUserData(void* memory, size_t size, ProcessId pid = 0);
-
-    ThreadSafeUserData(const ThreadSafeUserData&) = delete;
-    ThreadSafeUserData& operator=(const ThreadSafeUserData&) = delete;
-
-    ~ThreadSafeUserData() override;
-
-   private:
-    void* Set(StringPiece name,
-              ValueType type,
-              const void* memory,
-              size_t size) override;
-
-    Lock data_lock_;
-  };
-
-  // State of a module as stored in persistent memory. This supports a single
-  // loading of a module only. If modules are loaded multiple times at
-  // different addresses, only the last will be recorded and an unload will
-  // not revert to the information of any other addresses.
-  struct BASE_EXPORT ModuleInfoRecord {
-    // SHA1(ModuleInfoRecord): Increment this if structure changes!
-    static constexpr uint32_t kPersistentTypeId = 0x05DB5F41 + 1;
-
-    // Expected size for 32/64-bit check by PersistentMemoryAllocator.
-    static constexpr size_t kExpectedInstanceSize =
-        OwningProcess::kExpectedInstanceSize + 56;
-
-    // The atomic unfortunately makes this a "complex" class on some compilers
-    // and thus requires an out-of-line constructor & destructor even though
-    // they do nothing.
-    ModuleInfoRecord();
-
-    ModuleInfoRecord(const ModuleInfoRecord&) = delete;
-    ModuleInfoRecord& operator=(const ModuleInfoRecord&) = delete;
-
-    ~ModuleInfoRecord();
-
-    OwningProcess owner;            // The process that created this record.
-    uint64_t address;               // The base address of the module.
-    int64_t load_time;              // Time of last load/unload.
-    uint64_t size;                  // The size of the module in bytes.
-    uint32_t timestamp;             // Opaque timestamp of the module.
-    uint32_t age;                   // Opaque "age" associated with the module.
-    uint8_t identifier[16];         // Opaque identifier for the module.
-    std::atomic<uint32_t> changes;  // Number load/unload actions.
-    uint16_t pickle_size;           // The size of the following pickle.
-    uint8_t loaded;                 // Flag if module is loaded or not.
-    char pickle[1];                 // Other strings; may allocate larger.
-
-    // Decodes/encodes storage structure from more generic info structure.
-    bool DecodeTo(GlobalActivityTracker::ModuleInfo* info,
-                  size_t record_size) const;
-    static ModuleInfoRecord* CreateFrom(
-        const GlobalActivityTracker::ModuleInfo& info,
-        PersistentMemoryAllocator* allocator);
-
-    // Updates the core information without changing the encoded strings. This
-    // is useful when a known module changes state (i.e. new load or unload).
-    bool UpdateFrom(const GlobalActivityTracker::ModuleInfo& info);
-  };
-
-  // A thin wrapper around the main thread-tracker that keeps additional
-  // information that the global tracker needs to handle joined threads.
-  class ManagedActivityTracker : public ThreadActivityTracker {
-   public:
-    ManagedActivityTracker(PersistentMemoryAllocator::Reference mem_reference,
-                           void* base,
-                           size_t size);
-
-    ManagedActivityTracker(const ManagedActivityTracker&) = delete;
-    ManagedActivityTracker& operator=(const ManagedActivityTracker&) = delete;
-
-    ~ManagedActivityTracker() override;
-
-    // The reference into persistent memory from which the thread-tracker's
-    // memory was created.
-    const PersistentMemoryAllocator::Reference mem_reference_;
-
-    // The physical address used for the thread-tracker's memory.
-    const raw_ptr<void> mem_base_;
-  };
-
-  // Creates a global tracker using a given persistent-memory |allocator| and
-  // providing the given |stack_depth| to each thread tracker it manages. The
-  // created object is activated so tracking has already started upon return.
-  // The |process_id| can be zero to get it from the OS but is taken for testing
-  // purposes.
-  GlobalActivityTracker(std::unique_ptr<PersistentMemoryAllocator> allocator,
-                        int stack_depth,
-                        ProcessId process_id);
-
-  // Returns the memory used by an activity-tracker managed by this class.
-  // It is called during the destruction of a ManagedActivityTracker object.
-  void ReturnTrackerMemory(ManagedActivityTracker* tracker);
-
-  // Records exception information.
-  void RecordExceptionImpl(const void* pc, const void* origin, uint32_t code);
-
-  // Releases the activity-tracker associcated with thread. It is called
-  // automatically when a thread is joined and thus there is nothing more to
-  // be tracked. |value| is a pointer to a ManagedActivityTracker.
-  static void OnTLSDestroy(void* value);
-
-  // Does process-exit work. This can be run on any thread.
-  void CleanupAfterProcess(ProcessId process_id,
-                           int64_t exit_stamp,
-                           int exit_code,
-                           std::string&& command_line);
-
-  // The persistent-memory allocator from which the memory for all trackers
-  // is taken.
-  std::unique_ptr<PersistentMemoryAllocator> allocator_;
-
-  // The size (in bytes) of memory required by a ThreadActivityTracker to
-  // provide the stack-depth requested during construction.
-  const size_t stack_memory_size_;
-
-  // The process-id of the current process. This is kept as a member variable,
-  // defined during initialization, for testing purposes.
-  const ProcessId process_id_;
-
-  // The activity tracker for the currently executing thread.
-  ThreadLocalOwnedPointer<ThreadActivityTracker> this_thread_tracker_;
-
-  // The number of thread trackers currently active.
-  std::atomic<int> thread_tracker_count_;
-
-  // A caching memory allocator for thread-tracker objects.
-  ActivityTrackerMemoryAllocator thread_tracker_allocator_
-      GUARDED_BY(thread_tracker_allocator_lock_);
-  Lock thread_tracker_allocator_lock_;
-
-  // A caching memory allocator for user data attached to activity data.
-  ActivityTrackerMemoryAllocator user_data_allocator_
-      GUARDED_BY(user_data_allocator_lock_);
-  Lock user_data_allocator_lock_;
-
-  // An object for holding arbitrary key value pairs with thread-safe access.
-  ThreadSafeUserData process_data_;
-
-  // A map of global module information, keyed by module path.
-  std::map<const std::string, ModuleInfoRecord*> modules_
-      GUARDED_BY(modules_lock_);
-  Lock modules_lock_;
-
-  // The active global activity tracker.
-  static std::atomic<GlobalActivityTracker*> g_tracker_;
-
-  Lock global_tracker_lock_;
-
-  // The collection of processes being tracked and their command-lines.
-  std::map<ProcessId, std::string> known_processes_
-      GUARDED_BY(global_tracker_lock_);
-
-  // A task-runner that can be used for doing background processing.
-  scoped_refptr<SequencedTaskRunner> background_task_runner_
-      GUARDED_BY(global_tracker_lock_);
-
-  // A callback performed when a subprocess exits, including its exit-code
-  // and the phase it was in when that occurred. This will be called via
-  // the |background_task_runner_| if one is set or whatever thread reaped
-  // the process otherwise.
-  ProcessExitCallback process_exit_callback_ GUARDED_BY(global_tracker_lock_);
+  ActivityUserData process_data_;
 };
 
-// Record entry in to and out of an arbitrary block of code.
-class BASE_EXPORT ScopedActivity
-    : public GlobalActivityTracker::ScopedThreadActivity {
+// Record entry in to and out of an arbitrary block of code. This class and its
+// subclasses are instantiated by many callers, and are expected to record the
+// data passed to them in the object returned by GlobalActivityTracker::Get(),
+// or do nothing if Get() returns nullptr. Since Get() now always returns
+// nullptr, they now always do nothing.
+class BASE_EXPORT ScopedActivity {
  public:
-  // Track activity at the specified FROM_HERE location for an arbitrary
-  // 4-bit |action|, an arbitrary 32-bit |id|, and 32-bits of arbitrary
-  // |info|. None of these values affect operation; they're all purely
-  // for association and analysis. To have unique identifiers across a
-  // diverse code-base, create the number by taking the first 8 characters
-  // of the hash of the activity being tracked.
-  //
-  // For example:
-  //   Tracking method: void MayNeverExit(uint32_t foo) {...}
-  //   echo -n "MayNeverExit" | sha1sum   =>   e44873ccab21e2b71270da24aa1...
-  //
-  //   void MayNeverExit(int32_t foo) {
-  //     base::debug::ScopedActivity track_me(0, 0xE44873CC, foo);
-  //     ...
-  //   }
-  ALWAYS_INLINE
-  ScopedActivity(uint8_t action, uint32_t id, int32_t info)
-      : ScopedActivity(GetProgramCounter(), action, id, info) {}
-  ScopedActivity(Location from_here, uint8_t action, uint32_t id, int32_t info)
-      : ScopedActivity(from_here.program_counter(), action, id, info) {}
-  ScopedActivity() : ScopedActivity(0, 0, 0) {}
+  ScopedActivity() = default;
+  ~ScopedActivity() = default;
+
+  ScopedActivity(uint8_t action, uint32_t id, int32_t info) {}
+  ScopedActivity(Location from_here,
+                 uint8_t action,
+                 uint32_t id,
+                 int32_t info) {}
 
   ScopedActivity(const ScopedActivity&) = delete;
   ScopedActivity& operator=(const ScopedActivity&) = delete;
 
-  // Changes the |action| and/or |info| of this activity on the stack. This
-  // is useful for tracking progress through a function, updating the action
-  // to indicate "milestones" in the block (max 16 milestones: 0-15) or the
-  // info to reflect other changes. Changing both is not atomic so a snapshot
-  // operation could occur between the update of |action| and |info|.
-  void ChangeAction(uint8_t action);
-  void ChangeInfo(int32_t info);
-  void ChangeActionAndInfo(uint8_t action, int32_t info);
+  bool IsRecorded() { return false; }
+
+  ActivityUserData& user_data() { return user_data_; }
 
  private:
-  // Constructs the object using a passed-in program-counter.
-  ScopedActivity(const void* program_counter,
-                 uint8_t action,
-                 uint32_t id,
-                 int32_t info);
-
-  // A copy of the ID code so it doesn't have to be passed by the caller when
-  // changing the |info| field.
-  uint32_t id_;
+  ActivityUserData user_data_;
 };
 
-
 // These "scoped" classes provide easy tracking of various blocking actions.
 
-class BASE_EXPORT ScopedTaskRunActivity
-    : public GlobalActivityTracker::ScopedThreadActivity {
+class BASE_EXPORT ScopedTaskRunActivity : public ScopedActivity {
  public:
-  ALWAYS_INLINE
-  explicit ScopedTaskRunActivity(const PendingTask& task)
-      : ScopedTaskRunActivity(GetProgramCounter(), task) {}
-
-  ScopedTaskRunActivity(const ScopedTaskRunActivity&) = delete;
-  ScopedTaskRunActivity& operator=(const ScopedTaskRunActivity&) = delete;
-
- private:
-  ScopedTaskRunActivity(const void* program_counter, const PendingTask& task);
+  explicit ScopedTaskRunActivity(const PendingTask& task) {}
 };
 
-class BASE_EXPORT ScopedLockAcquireActivity
-    : public GlobalActivityTracker::ScopedThreadActivity {
+class BASE_EXPORT ScopedLockAcquireActivity : public ScopedActivity {
  public:
-  ALWAYS_INLINE
-  explicit ScopedLockAcquireActivity(const base::internal::LockImpl* lock)
-      : ScopedLockAcquireActivity(GetProgramCounter(), lock) {}
-
-  ScopedLockAcquireActivity(const ScopedLockAcquireActivity&) = delete;
-  ScopedLockAcquireActivity& operator=(const ScopedLockAcquireActivity&) =
-      delete;
-
- private:
-  ScopedLockAcquireActivity(const void* program_counter,
-                            const base::internal::LockImpl* lock);
+  explicit ScopedLockAcquireActivity(const base::internal::LockImpl* lock) {}
 };
 
-class BASE_EXPORT ScopedEventWaitActivity
-    : public GlobalActivityTracker::ScopedThreadActivity {
+class BASE_EXPORT ScopedEventWaitActivity : public ScopedActivity {
  public:
-  ALWAYS_INLINE
-  explicit ScopedEventWaitActivity(const WaitableEvent* event)
-      : ScopedEventWaitActivity(GetProgramCounter(), event) {}
-
-  ScopedEventWaitActivity(const ScopedEventWaitActivity&) = delete;
-  ScopedEventWaitActivity& operator=(const ScopedEventWaitActivity&) = delete;
-
- private:
-  ScopedEventWaitActivity(const void* program_counter,
-                          const WaitableEvent* event);
+  explicit ScopedEventWaitActivity(const WaitableEvent* event) {}
 };
 
-class BASE_EXPORT ScopedThreadJoinActivity
-    : public GlobalActivityTracker::ScopedThreadActivity {
+class BASE_EXPORT ScopedThreadJoinActivity : public ScopedActivity {
  public:
-  ALWAYS_INLINE
-  explicit ScopedThreadJoinActivity(const PlatformThreadHandle* thread)
-      : ScopedThreadJoinActivity(GetProgramCounter(), thread) {}
-
-  ScopedThreadJoinActivity(const ScopedThreadJoinActivity&) = delete;
-  ScopedThreadJoinActivity& operator=(const ScopedThreadJoinActivity&) = delete;
-
- private:
-  ScopedThreadJoinActivity(const void* program_counter,
-                           const PlatformThreadHandle* thread);
+  explicit ScopedThreadJoinActivity(const PlatformThreadHandle* thread) {}
 };
 
 // Some systems don't have base::Process
 #if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_IOS)
-class BASE_EXPORT ScopedProcessWaitActivity
-    : public GlobalActivityTracker::ScopedThreadActivity {
+class BASE_EXPORT ScopedProcessWaitActivity : public ScopedActivity {
  public:
-  ALWAYS_INLINE
-  explicit ScopedProcessWaitActivity(const Process* process)
-      : ScopedProcessWaitActivity(GetProgramCounter(), process) {}
-
-  ScopedProcessWaitActivity(const ScopedProcessWaitActivity&) = delete;
-  ScopedProcessWaitActivity& operator=(const ScopedProcessWaitActivity&) =
-      delete;
-
- private:
-  ScopedProcessWaitActivity(const void* program_counter,
-                            const Process* process);
+  explicit ScopedProcessWaitActivity(const Process* process) {}
 };
 #endif
 
diff --git a/base/debug/activity_tracker_unittest.cc b/base/debug/activity_tracker_unittest.cc
deleted file mode 100644
index 8f1e16a..0000000
--- a/base/debug/activity_tracker_unittest.cc
+++ /dev/null
@@ -1,593 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/debug/activity_tracker.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/files/file.h"
-#include "base/files/file_util.h"
-#include "base/files/memory_mapped_file.h"
-#include "base/files/scoped_temp_dir.h"
-#include "base/functional/bind.h"
-#include "base/functional/callback_helpers.h"
-#include "base/memory/ptr_util.h"
-#include "base/memory/raw_ptr.h"
-#include "base/pending_task.h"
-#include "base/rand_util.h"
-#include "base/synchronization/condition_variable.h"
-#include "base/synchronization/lock.h"
-#include "base/test/spin_wait.h"
-#include "base/threading/platform_thread.h"
-#include "base/threading/simple_thread.h"
-#include "base/time/time.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace base {
-namespace debug {
-
-namespace {
-
-class TestActivityTracker {
- public:
-  TestActivityTracker(std::unique_ptr<char[]> memory, size_t mem_size)
-      : mem_segment_(std::move(memory)),
-        tracker_(memset(mem_segment_.get(), 0, mem_size), mem_size) {}
-
-  ~TestActivityTracker() = default;
-
-  ThreadActivityTracker& tracker() { return tracker_; }
-
- private:
-  std::unique_ptr<char[]> mem_segment_;  // Must outlive `tracker_`
-  ThreadActivityTracker tracker_;
-};
-
-}  // namespace
-
-
-class ActivityTrackerTest : public testing::Test {
- public:
-  const int kMemorySize = 1 << 20;  // 1MiB
-  const int kStackSize  = 1 << 10;  // 1KiB
-
-  using ActivityId = ThreadActivityTracker::ActivityId;
-
-  ActivityTrackerTest() = default;
-
-  ~ActivityTrackerTest() override {
-    GlobalActivityTracker* global_tracker = GlobalActivityTracker::Get();
-    if (global_tracker) {
-      global_tracker->ReleaseTrackerForCurrentThreadForTesting();
-      delete global_tracker;
-    }
-  }
-
-  std::unique_ptr<TestActivityTracker> CreateActivityTracker() {
-    std::unique_ptr<char[]> memory(new char[kStackSize]);
-    return std::make_unique<TestActivityTracker>(std::move(memory), kStackSize);
-  }
-
-  size_t GetGlobalActiveTrackerCount() {
-    GlobalActivityTracker* global_tracker = GlobalActivityTracker::Get();
-    if (!global_tracker)
-      return 0;
-    return global_tracker->thread_tracker_count_.load(
-        std::memory_order_relaxed);
-  }
-
-  size_t GetGlobalInactiveTrackerCount() {
-    GlobalActivityTracker* global_tracker = GlobalActivityTracker::Get();
-    if (!global_tracker)
-      return 0;
-    AutoLock autolock(global_tracker->thread_tracker_allocator_lock_);
-    return global_tracker->thread_tracker_allocator_.cache_used();
-  }
-
-  size_t GetGlobalUserDataMemoryCacheUsed() {
-    AutoLock autolock(GlobalActivityTracker::Get()->user_data_allocator_lock_);
-    return GlobalActivityTracker::Get()->user_data_allocator_.cache_used();
-  }
-
-  void HandleProcessExit(ProcessId id,
-                         int64_t stamp,
-                         int code,
-                         GlobalActivityTracker::ProcessPhase phase,
-                         std::string&& command,
-                         ActivityUserData::Snapshot&& data) {
-    exit_id_ = id;
-    exit_stamp_ = stamp;
-    exit_code_ = code;
-    exit_phase_ = phase;
-    exit_command_ = std::move(command);
-    exit_data_ = std::move(data);
-  }
-
-  ProcessId exit_id_ = 0;
-  int64_t exit_stamp_;
-  int exit_code_;
-  GlobalActivityTracker::ProcessPhase exit_phase_;
-  std::string exit_command_;
-  ActivityUserData::Snapshot exit_data_;
-};
-
-TEST_F(ActivityTrackerTest, UserDataTest) {
-  char buffer[256];
-  memset(buffer, 0, sizeof(buffer));
-  ActivityUserData data(buffer, sizeof(buffer));
-  size_t space = sizeof(buffer) - sizeof(ActivityUserData::MemoryHeader);
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.SetInt("foo", 1);
-  space -= 24;
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.SetUint("b", 1U);  // Small names fit beside header in a word.
-  space -= 16;
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.Set("c", buffer, 10);
-  space -= 24;
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.SetString("dear john", "it's been fun");
-  space -= 32;
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.Set("c", buffer, 20);
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.SetString("dear john", "but we're done together");
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.SetString("dear john", "bye");
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.SetChar("d", 'x');
-  space -= 8;
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.SetBool("ee", true);
-  space -= 16;
-  ASSERT_EQ(space, data.memory_.size());
-
-  data.SetString("f", "");
-  space -= 8;
-  ASSERT_EQ(space, data.memory_.size());
-}
-
-TEST_F(ActivityTrackerTest, PushPopTest) {
-  std::unique_ptr<TestActivityTracker> tracker = CreateActivityTracker();
-  ThreadActivityTracker::Snapshot snapshot;
-
-  ASSERT_TRUE(tracker->tracker().CreateSnapshot(&snapshot));
-  ASSERT_EQ(0U, snapshot.activity_stack_depth);
-  ASSERT_EQ(0U, snapshot.activity_stack.size());
-
-  char origin1;
-  ActivityId id1 = tracker->tracker().PushActivity(&origin1, Activity::ACT_TASK,
-                                                   ActivityData::ForTask(11));
-  ASSERT_TRUE(tracker->tracker().CreateSnapshot(&snapshot));
-  ASSERT_EQ(1U, snapshot.activity_stack_depth);
-  ASSERT_EQ(1U, snapshot.activity_stack.size());
-  EXPECT_NE(0, snapshot.activity_stack[0].time_internal);
-  EXPECT_EQ(Activity::ACT_TASK, snapshot.activity_stack[0].activity_type);
-  EXPECT_EQ(reinterpret_cast<uintptr_t>(&origin1),
-            snapshot.activity_stack[0].origin_address);
-  EXPECT_EQ(11U, snapshot.activity_stack[0].data.task.sequence_id);
-
-  char origin2;
-  char lock2;
-  ActivityId id2 = tracker->tracker().PushActivity(
-      &origin2, Activity::ACT_LOCK, ActivityData::ForLock(&lock2));
-  ASSERT_TRUE(tracker->tracker().CreateSnapshot(&snapshot));
-  ASSERT_EQ(2U, snapshot.activity_stack_depth);
-  ASSERT_EQ(2U, snapshot.activity_stack.size());
-  EXPECT_LE(snapshot.activity_stack[0].time_internal,
-            snapshot.activity_stack[1].time_internal);
-  EXPECT_EQ(Activity::ACT_LOCK, snapshot.activity_stack[1].activity_type);
-  EXPECT_EQ(reinterpret_cast<uintptr_t>(&origin2),
-            snapshot.activity_stack[1].origin_address);
-  EXPECT_EQ(reinterpret_cast<uintptr_t>(&lock2),
-            snapshot.activity_stack[1].data.lock.lock_address);
-
-  tracker->tracker().PopActivity(id2);
-  ASSERT_TRUE(tracker->tracker().CreateSnapshot(&snapshot));
-  ASSERT_EQ(1U, snapshot.activity_stack_depth);
-  ASSERT_EQ(1U, snapshot.activity_stack.size());
-  EXPECT_EQ(Activity::ACT_TASK, snapshot.activity_stack[0].activity_type);
-  EXPECT_EQ(reinterpret_cast<uintptr_t>(&origin1),
-            snapshot.activity_stack[0].origin_address);
-  EXPECT_EQ(11U, snapshot.activity_stack[0].data.task.sequence_id);
-
-  tracker->tracker().PopActivity(id1);
-  ASSERT_TRUE(tracker->tracker().CreateSnapshot(&snapshot));
-  ASSERT_EQ(0U, snapshot.activity_stack_depth);
-  ASSERT_EQ(0U, snapshot.activity_stack.size());
-}
-
-TEST_F(ActivityTrackerTest, ScopedTaskTest) {
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-
-  ThreadActivityTracker* tracker =
-      GlobalActivityTracker::Get()->GetOrCreateTrackerForCurrentThread();
-  ThreadActivityTracker::Snapshot snapshot;
-  ASSERT_EQ(0U, GetGlobalUserDataMemoryCacheUsed());
-
-  ASSERT_TRUE(tracker->CreateSnapshot(&snapshot));
-  ASSERT_EQ(0U, snapshot.activity_stack_depth);
-  ASSERT_EQ(0U, snapshot.activity_stack.size());
-
-  {
-    PendingTask task1(FROM_HERE, DoNothing());
-    ScopedTaskRunActivity activity1(task1);
-    [[maybe_unused]] ActivityUserData& user_data1 = activity1.user_data();
-    EXPECT_TRUE(activity1.IsRecorded());
-
-    ASSERT_TRUE(tracker->CreateSnapshot(&snapshot));
-    ASSERT_EQ(1U, snapshot.activity_stack_depth);
-    ASSERT_EQ(1U, snapshot.activity_stack.size());
-    EXPECT_EQ(Activity::ACT_TASK, snapshot.activity_stack[0].activity_type);
-
-    {
-      PendingTask task2(FROM_HERE, DoNothing());
-      ScopedTaskRunActivity activity2(task2);
-      [[maybe_unused]] ActivityUserData& user_data2 = activity2.user_data();
-
-      ASSERT_TRUE(tracker->CreateSnapshot(&snapshot));
-      ASSERT_EQ(2U, snapshot.activity_stack_depth);
-      ASSERT_EQ(2U, snapshot.activity_stack.size());
-      EXPECT_EQ(Activity::ACT_TASK, snapshot.activity_stack[1].activity_type);
-    }
-
-    ASSERT_TRUE(tracker->CreateSnapshot(&snapshot));
-    ASSERT_EQ(1U, snapshot.activity_stack_depth);
-    ASSERT_EQ(1U, snapshot.activity_stack.size());
-    EXPECT_EQ(Activity::ACT_TASK, snapshot.activity_stack[0].activity_type);
-  }
-
-  ASSERT_TRUE(tracker->CreateSnapshot(&snapshot));
-  ASSERT_EQ(0U, snapshot.activity_stack_depth);
-  ASSERT_EQ(0U, snapshot.activity_stack.size());
-  ASSERT_EQ(2U, GetGlobalUserDataMemoryCacheUsed());
-}
-
-namespace {
-
-class SimpleLockThread : public SimpleThread {
- public:
-  SimpleLockThread(const std::string& name, Lock* lock)
-      : SimpleThread(name, Options()),
-        lock_(lock),
-        data_changed_(false),
-        is_running_(false) {}
-
-  SimpleLockThread(const SimpleLockThread&) = delete;
-  SimpleLockThread& operator=(const SimpleLockThread&) = delete;
-
-  ~SimpleLockThread() override = default;
-
-  void Run() override {
-    ThreadActivityTracker* tracker =
-        GlobalActivityTracker::Get()->GetOrCreateTrackerForCurrentThread();
-    uint32_t pre_version = tracker->GetDataVersionForTesting();
-
-    is_running_.store(true, std::memory_order_relaxed);
-    lock_->Acquire();
-    data_changed_ = tracker->GetDataVersionForTesting() != pre_version;
-    lock_->Release();
-    is_running_.store(false, std::memory_order_relaxed);
-  }
-
-  bool IsRunning() { return is_running_.load(std::memory_order_relaxed); }
-
-  bool WasDataChanged() { return data_changed_; }
-
- private:
-  raw_ptr<Lock> lock_;
-  bool data_changed_;
-  std::atomic<bool> is_running_;
-};
-
-}  // namespace
-
-TEST_F(ActivityTrackerTest, LockTest) {
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-
-  ThreadActivityTracker* tracker =
-      GlobalActivityTracker::Get()->GetOrCreateTrackerForCurrentThread();
-  ThreadActivityTracker::Snapshot snapshot;
-  ASSERT_EQ(0U, GetGlobalUserDataMemoryCacheUsed());
-
-  Lock lock;
-  uint32_t pre_version = tracker->GetDataVersionForTesting();
-
-  // Check no activity when only "trying" a lock.
-  EXPECT_TRUE(lock.Try());
-  EXPECT_EQ(pre_version, tracker->GetDataVersionForTesting());
-  lock.AssertAcquired();
-  lock.Release();
-  EXPECT_EQ(pre_version, tracker->GetDataVersionForTesting());
-
-  // Check no activity when acquiring a free lock.
-  SimpleLockThread t1("locker1", &lock);
-  t1.Start();
-  t1.Join();
-  EXPECT_FALSE(t1.WasDataChanged());
-
-  // Check that activity is recorded when acquring a busy lock.
-  SimpleLockThread t2("locker2", &lock);
-  lock.Acquire();
-  t2.Start();
-  while (!t2.IsRunning())
-    PlatformThread::Sleep(Milliseconds(10));
-  // t2 can't join until the lock is released but have to give time for t2 to
-  // actually block on the lock before releasing it or the results will not
-  // be correct.
-  PlatformThread::Sleep(Milliseconds(200));
-  lock.Release();
-  // Now the results will be valid.
-  t2.Join();
-  EXPECT_TRUE(t2.WasDataChanged());
-}
-
-TEST_F(ActivityTrackerTest, ExceptionTest) {
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-  GlobalActivityTracker* global = GlobalActivityTracker::Get();
-
-  ThreadActivityTracker* tracker =
-      GlobalActivityTracker::Get()->GetOrCreateTrackerForCurrentThread();
-  ThreadActivityTracker::Snapshot snapshot;
-  ASSERT_EQ(0U, GetGlobalUserDataMemoryCacheUsed());
-
-  ASSERT_TRUE(tracker->CreateSnapshot(&snapshot));
-  ASSERT_EQ(0U, snapshot.last_exception.activity_type);
-
-  char origin;
-  global->RecordException(&origin, 42);
-
-  ASSERT_TRUE(tracker->CreateSnapshot(&snapshot));
-  EXPECT_EQ(Activity::ACT_EXCEPTION, snapshot.last_exception.activity_type);
-  EXPECT_EQ(reinterpret_cast<uintptr_t>(&origin),
-            snapshot.last_exception.origin_address);
-  EXPECT_EQ(42U, snapshot.last_exception.data.exception.code);
-}
-
-TEST_F(ActivityTrackerTest, CreateWithFileTest) {
-  const char temp_name[] = "CreateWithFileTest";
-  ScopedTempDir temp_dir;
-  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
-  FilePath temp_file = temp_dir.GetPath().AppendASCII(temp_name);
-  const size_t temp_size = 64 << 10;  // 64 KiB
-
-  // Create a global tracker on a new file.
-  ASSERT_FALSE(PathExists(temp_file));
-  GlobalActivityTracker::CreateWithFile(temp_file, temp_size, 0, "foo", 3);
-  GlobalActivityTracker* global = GlobalActivityTracker::Get();
-  EXPECT_EQ(std::string("foo"), global->allocator()->Name());
-  global->ReleaseTrackerForCurrentThreadForTesting();
-  delete global;
-
-  // Create a global tracker over an existing file, replacing it. If the
-  // replacement doesn't work, the name will remain as it was first created.
-  ASSERT_TRUE(PathExists(temp_file));
-  GlobalActivityTracker::CreateWithFile(temp_file, temp_size, 0, "bar", 3);
-  global = GlobalActivityTracker::Get();
-  EXPECT_EQ(std::string("bar"), global->allocator()->Name());
-  global->ReleaseTrackerForCurrentThreadForTesting();
-  delete global;
-}
-
-
-// GlobalActivityTracker tests below.
-
-TEST_F(ActivityTrackerTest, BasicTest) {
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-  GlobalActivityTracker* global = GlobalActivityTracker::Get();
-
-  // Ensure the data repositories have backing store, indicated by non-zero ID.
-  EXPECT_NE(0U, global->process_data().id());
-}
-
-namespace {
-
-class SimpleActivityThread : public SimpleThread {
- public:
-  SimpleActivityThread(const std::string& name,
-                       const void* origin,
-                       Activity::Type activity,
-                       const ActivityData& data)
-      : SimpleThread(name, Options()),
-        origin_(origin),
-        activity_(activity),
-        data_(data),
-        ready_(false),
-        exit_(false),
-        exit_condition_(&lock_) {}
-
-  SimpleActivityThread(const SimpleActivityThread&) = delete;
-  SimpleActivityThread& operator=(const SimpleActivityThread&) = delete;
-
-  ~SimpleActivityThread() override = default;
-
-  void Run() override {
-    ThreadActivityTracker::ActivityId id =
-        GlobalActivityTracker::Get()
-            ->GetOrCreateTrackerForCurrentThread()
-            ->PushActivity(origin_, activity_, data_);
-
-    {
-      AutoLock auto_lock(lock_);
-      ready_.store(true, std::memory_order_release);
-      while (!exit_.load(std::memory_order_relaxed))
-        exit_condition_.Wait();
-    }
-
-    GlobalActivityTracker::Get()->GetTrackerForCurrentThread()->PopActivity(id);
-  }
-
-  void Exit() {
-    AutoLock auto_lock(lock_);
-    exit_.store(true, std::memory_order_relaxed);
-    exit_condition_.Signal();
-  }
-
-  void WaitReady() {
-    SPIN_FOR_1_SECOND_OR_UNTIL_TRUE(ready_.load(std::memory_order_acquire));
-  }
-
- private:
-  raw_ptr<const void> origin_;
-  Activity::Type activity_;
-  ActivityData data_;
-
-  std::atomic<bool> ready_;
-  std::atomic<bool> exit_;
-  Lock lock_;
-  ConditionVariable exit_condition_;
-};
-
-}  // namespace
-
-TEST_F(ActivityTrackerTest, ThreadDeathTest) {
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-  GlobalActivityTracker::Get()->GetOrCreateTrackerForCurrentThread();
-  const size_t starting_active = GetGlobalActiveTrackerCount();
-  const size_t starting_inactive = GetGlobalInactiveTrackerCount();
-
-  SimpleActivityThread t1("t1", nullptr, Activity::ACT_TASK,
-                          ActivityData::ForTask(11));
-  t1.Start();
-  t1.WaitReady();
-  EXPECT_EQ(starting_active + 1, GetGlobalActiveTrackerCount());
-  EXPECT_EQ(starting_inactive, GetGlobalInactiveTrackerCount());
-
-  t1.Exit();
-  t1.Join();
-  EXPECT_EQ(starting_active, GetGlobalActiveTrackerCount());
-  EXPECT_EQ(starting_inactive + 1, GetGlobalInactiveTrackerCount());
-
-  // Start another thread and ensure it re-uses the existing memory.
-
-  SimpleActivityThread t2("t2", nullptr, Activity::ACT_TASK,
-                          ActivityData::ForTask(22));
-  t2.Start();
-  t2.WaitReady();
-  EXPECT_EQ(starting_active + 1, GetGlobalActiveTrackerCount());
-  EXPECT_EQ(starting_inactive, GetGlobalInactiveTrackerCount());
-
-  t2.Exit();
-  t2.Join();
-  EXPECT_EQ(starting_active, GetGlobalActiveTrackerCount());
-  EXPECT_EQ(starting_inactive + 1, GetGlobalInactiveTrackerCount());
-}
-
-TEST_F(ActivityTrackerTest, ProcessDeathTest) {
-  // This doesn't actually create and destroy a process. Instead, it uses for-
-  // testing interfaces to simulate data created by other processes.
-  const ProcessId other_process_id = GetCurrentProcId() + 1;
-
-  GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0);
-  GlobalActivityTracker* global = GlobalActivityTracker::Get();
-  ThreadActivityTracker* thread = global->GetOrCreateTrackerForCurrentThread();
-
-  // Get callbacks for process exit.
-  global->SetProcessExitCallback(
-      BindRepeating(&ActivityTrackerTest::HandleProcessExit, Unretained(this)));
-
-  // Pretend than another process has started.
-  global->RecordProcessLaunch(other_process_id, FILE_PATH_LITERAL("foo --bar"));
-
-  // Do some activities.
-  PendingTask task(FROM_HERE, DoNothing());
-  ScopedTaskRunActivity activity(task);
-  ActivityUserData& user_data = activity.user_data();
-  ASSERT_NE(0U, user_data.id());
-
-  // Get the memory-allocator references to that data.
-  PersistentMemoryAllocator::Reference proc_data_ref =
-      global->allocator()->GetAsReference(
-          global->process_data().GetBaseAddress(),
-          GlobalActivityTracker::kTypeIdProcessDataRecord);
-  ASSERT_TRUE(proc_data_ref);
-  PersistentMemoryAllocator::Reference tracker_ref =
-      global->allocator()->GetAsReference(
-          thread->GetBaseAddress(),
-          GlobalActivityTracker::kTypeIdActivityTracker);
-  ASSERT_TRUE(tracker_ref);
-  PersistentMemoryAllocator::Reference user_data_ref =
-      global->allocator()->GetAsReference(
-          user_data.GetBaseAddress(),
-          GlobalActivityTracker::kTypeIdUserDataRecord);
-  ASSERT_TRUE(user_data_ref);
-
-  // Make a copy of the thread-tracker state so it can be restored later.
-  const size_t tracker_size = global->allocator()->GetAllocSize(tracker_ref);
-  std::unique_ptr<char[]> tracker_copy(new char[tracker_size]);
-  memcpy(tracker_copy.get(), thread->GetBaseAddress(), tracker_size);
-
-  // Change the objects to appear to be owned by another process. Use a "past"
-  // time so that exit-time is always later than create-time.
-  const int64_t past_stamp = Time::Now().ToInternalValue() - 1;
-  ProcessId owning_id;
-  int64_t stamp;
-  ASSERT_TRUE(ActivityUserData::GetOwningProcessId(
-      global->process_data().GetBaseAddress(), &owning_id, &stamp));
-  EXPECT_NE(other_process_id, owning_id);
-  ASSERT_TRUE(ThreadActivityTracker::GetOwningProcessId(
-      thread->GetBaseAddress(), &owning_id, &stamp));
-  EXPECT_NE(other_process_id, owning_id);
-  ASSERT_TRUE(ActivityUserData::GetOwningProcessId(user_data.GetBaseAddress(),
-                                                   &owning_id, &stamp));
-  EXPECT_NE(other_process_id, owning_id);
-  global->process_data().SetOwningProcessIdForTesting(other_process_id,
-                                                      past_stamp);
-  thread->SetOwningProcessIdForTesting(other_process_id, past_stamp);
-  user_data.SetOwningProcessIdForTesting(other_process_id, past_stamp);
-  ASSERT_TRUE(ActivityUserData::GetOwningProcessId(
-      global->process_data().GetBaseAddress(), &owning_id, &stamp));
-  EXPECT_EQ(other_process_id, owning_id);
-  ASSERT_TRUE(ThreadActivityTracker::GetOwningProcessId(
-      thread->GetBaseAddress(), &owning_id, &stamp));
-  EXPECT_EQ(other_process_id, owning_id);
-  ASSERT_TRUE(ActivityUserData::GetOwningProcessId(user_data.GetBaseAddress(),
-                                                   &owning_id, &stamp));
-  EXPECT_EQ(other_process_id, owning_id);
-
-  // Check that process exit will perform callback and free the allocations.
-  ASSERT_EQ(ProcessId{0}, exit_id_);
-  ASSERT_EQ(GlobalActivityTracker::kTypeIdProcessDataRecord,
-            global->allocator()->GetType(proc_data_ref));
-  ASSERT_EQ(GlobalActivityTracker::kTypeIdActivityTracker,
-            global->allocator()->GetType(tracker_ref));
-  ASSERT_EQ(GlobalActivityTracker::kTypeIdUserDataRecord,
-            global->allocator()->GetType(user_data_ref));
-  global->RecordProcessExit(other_process_id, 0);
-  EXPECT_EQ(other_process_id, exit_id_);
-  EXPECT_EQ("foo --bar", exit_command_);
-  EXPECT_EQ(GlobalActivityTracker::kTypeIdProcessDataRecordFree,
-            global->allocator()->GetType(proc_data_ref));
-  EXPECT_EQ(GlobalActivityTracker::kTypeIdActivityTrackerFree,
-            global->allocator()->GetType(tracker_ref));
-  EXPECT_EQ(GlobalActivityTracker::kTypeIdUserDataRecordFree,
-            global->allocator()->GetType(user_data_ref));
-
-  // Restore memory contents and types so things don't crash when doing real
-  // process clean-up.
-  memcpy(const_cast<void*>(thread->GetBaseAddress()), tracker_copy.get(),
-         tracker_size);
-  global->allocator()->ChangeType(
-      proc_data_ref, GlobalActivityTracker::kTypeIdProcessDataRecord,
-      GlobalActivityTracker::kTypeIdUserDataRecordFree, false);
-  global->allocator()->ChangeType(
-      tracker_ref, GlobalActivityTracker::kTypeIdActivityTracker,
-      GlobalActivityTracker::kTypeIdActivityTrackerFree, false);
-  global->allocator()->ChangeType(
-      user_data_ref, GlobalActivityTracker::kTypeIdUserDataRecord,
-      GlobalActivityTracker::kTypeIdUserDataRecordFree, false);
-}
-
-}  // namespace debug
-}  // namespace base
diff --git a/base/synchronization/lock_unittest.cc b/base/synchronization/lock_unittest.cc
index 7790e1ac..655f682 100644
--- a/base/synchronization/lock_unittest.cc
+++ b/base/synchronization/lock_unittest.cc
@@ -7,7 +7,6 @@
 #include <stdlib.h>
 
 #include "base/compiler_specific.h"
-#include "base/debug/activity_tracker.h"
 #include "base/memory/raw_ptr.h"
 #include "base/test/gtest_util.h"
 #include "base/threading/platform_thread.h"
@@ -154,48 +153,6 @@
   lock.Release();
 }
 
-TEST(LockTest, TryTrackedLock) {
-  // Enable the activity tracker.
-  debug::GlobalActivityTracker::CreateWithLocalMemory(64 << 10, 0, "", 3, 0);
-
-  Lock lock;
-
-  ASSERT_TRUE(lock.Try());
-  lock.AssertAcquired();
-
-  // This thread will not be able to get the lock.
-  {
-    TryLockTestThread thread(&lock);
-    PlatformThreadHandle handle;
-
-    ASSERT_TRUE(PlatformThread::Create(0, &thread, &handle));
-
-    PlatformThread::Join(handle);
-
-    ASSERT_FALSE(thread.got_lock());
-  }
-
-  lock.Release();
-
-  // This thread will....
-  {
-    TryLockTestThread thread(&lock);
-    PlatformThreadHandle handle;
-
-    ASSERT_TRUE(PlatformThread::Create(0, &thread, &handle));
-
-    PlatformThread::Join(handle);
-
-    ASSERT_TRUE(thread.got_lock());
-    // But it released it....
-    ASSERT_TRUE(lock.Try());
-    lock.AssertAcquired();
-  }
-
-  lock.Release();
-  debug::GlobalActivityTracker::ReleaseForTesting();
-}
-
 // Tests that locks actually exclude -------------------------------------------
 
 class MutexLockTestThread : public PlatformThread::Delegate {
diff --git a/build/check_gn_headers_whitelist.txt b/build/check_gn_headers_whitelist.txt
index e46a598..a3b62aa 100644
--- a/build/check_gn_headers_whitelist.txt
+++ b/build/check_gn_headers_whitelist.txt
@@ -54,8 +54,6 @@
 chrome/install_static/install_util.h
 chrome/install_static/test/scoped_install_details.h
 chrome/installer/util/google_update_settings.h
-components/browser_watcher/features.h
-components/browser_watcher/stability_paths.h
 components/cdm/browser/cdm_message_filter_android.h
 components/device_event_log/device_event_log_export.h
 components/login/login_export.h
diff --git a/buildtools/deps_revisions.gni b/buildtools/deps_revisions.gni
index fb52805..762d437e 100644
--- a/buildtools/deps_revisions.gni
+++ b/buildtools/deps_revisions.gni
@@ -5,5 +5,5 @@
 declare_args() {
   # Used to cause full rebuilds on libc++ rolls. This should be kept in sync
   # with the libcxx_revision vars in //DEPS.
-  libcxx_revision = "43c39fecf3aa3cd542e41ffa8720720a1629ff41"
+  libcxx_revision = "abad4bb576d98d81c2d5861c3862cc87145f7dad"
 }
diff --git a/cc/slim/frame_sink_impl.cc b/cc/slim/frame_sink_impl.cc
index 3efcf98..a41d22b 100644
--- a/cc/slim/frame_sink_impl.cc
+++ b/cc/slim/frame_sink_impl.cc
@@ -53,6 +53,10 @@
       io_thread_id_(io_thread_id) {}
 
 FrameSinkImpl::~FrameSinkImpl() {
+  for (const auto& uploaded_resource_pair : uploaded_resources_) {
+    resource_provider_.RemoveImportedResource(
+        uploaded_resource_pair.second.viz_resource_id);
+  }
   resource_provider_.ShutdownAndReleaseAllResources();
 }
 
diff --git a/cc/slim/layer_tree_impl.cc b/cc/slim/layer_tree_impl.cc
index 6a849b2..46da671f 100644
--- a/cc/slim/layer_tree_impl.cc
+++ b/cc/slim/layer_tree_impl.cc
@@ -231,6 +231,17 @@
   SetNeedsDraw();
 }
 
+viz::ResourceId LayerTreeImpl::GetVizResourceId(cc::UIResourceId id) {
+  if (!frame_sink_) {
+    return viz::kInvalidResourceId;
+  }
+  return frame_sink_->GetVizResourceId(id);
+}
+
+bool LayerTreeImpl::IsUIResourceOpaque(int resource_id) {
+  return !frame_sink_ || frame_sink_->IsUIResourceOpaque(resource_id);
+}
+
 void LayerTreeImpl::AddSurfaceRange(const viz::SurfaceRange& range) {
   DCHECK(range.IsValid());
   DCHECK(!referenced_surfaces_.contains(range));
@@ -292,6 +303,20 @@
   // * Surface embedding fields (referenced surfaces, activation dependency,
   //   deadline)
   TRACE_EVENT0("cc", "slim::LayerTreeImpl::ProduceFrame");
+
+  for (auto& resource_request :
+       ui_resource_manager_.TakeUIResourcesRequests()) {
+    switch (resource_request.GetType()) {
+      case cc::UIResourceRequest::UI_RESOURCE_CREATE:
+        frame_sink_->UploadUIResource(resource_request.GetId(),
+                                      resource_request.GetBitmap());
+        break;
+      case cc::UIResourceRequest::UI_RESOURCE_DELETE:
+        frame_sink_->MarkUIResourceForDeletion(resource_request.GetId());
+        break;
+    }
+  }
+
   auto render_pass = viz::CompositorRenderPass::Create();
   render_pass->SetNew(viz::CompositorRenderPassId(root_->id()),
                       /*output_rect=*/device_viewport_rect_,
diff --git a/cc/slim/layer_tree_impl.h b/cc/slim/layer_tree_impl.h
index 58e40a6..fd7a095 100644
--- a/cc/slim/layer_tree_impl.h
+++ b/cc/slim/layer_tree_impl.h
@@ -87,6 +87,8 @@
   // Internal methods called by Layers.
   void NotifyTreeChanged();
   void NotifyPropertyChanged();
+  viz::ResourceId GetVizResourceId(cc::UIResourceId id);
+  bool IsUIResourceOpaque(int resource_id);
   void AddSurfaceRange(const viz::SurfaceRange& range);
   void RemoveSurfaceRange(const viz::SurfaceRange& range);
 
diff --git a/cc/slim/slim_layer_tree_compositor_frame_unittest.cc b/cc/slim/slim_layer_tree_compositor_frame_unittest.cc
index 8fe76a85..739abc0 100644
--- a/cc/slim/slim_layer_tree_compositor_frame_unittest.cc
+++ b/cc/slim/slim_layer_tree_compositor_frame_unittest.cc
@@ -15,12 +15,16 @@
 #include "cc/slim/test_frame_sink_impl.h"
 #include "cc/slim/test_layer_tree_client.h"
 #include "cc/slim/test_layer_tree_impl.h"
+#include "cc/slim/ui_resource_layer.h"
 #include "components/viz/common/frame_sinks/begin_frame_args.h"
 #include "components/viz/common/quads/compositor_frame.h"
 #include "components/viz/common/quads/solid_color_draw_quad.h"
+#include "components/viz/common/quads/texture_draw_quad.h"
+#include "components/viz/common/resources/transferable_resource.h"
 #include "components/viz/common/surfaces/local_surface_id.h"
 #include "components/viz/test/draw_quad_matchers.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace cc::slim {
@@ -305,6 +309,85 @@
   }
 }
 
+TEST_F(SlimLayerTreeCompositorFrameTest, UIResourceLayerAppendQuads) {
+  auto ui_resource_layer = UIResourceLayer::Create();
+  ui_resource_layer->SetBounds(viewport_.size());
+  ui_resource_layer->SetIsDrawable(true);
+  layer_tree_->SetRoot(ui_resource_layer);
+
+  viz::ResourceId first_resource_id = viz::kInvalidResourceId;
+  {
+    auto image_info =
+        SkImageInfo::Make(1, 1, kN32_SkColorType, kPremul_SkAlphaType);
+    SkBitmap bitmap;
+    bitmap.allocPixels(image_info);
+    bitmap.setImmutable();
+    ui_resource_layer->SetBitmap(bitmap);
+
+    viz::CompositorFrame frame = ProduceFrame();
+    ASSERT_EQ(frame.render_pass_list.size(), 1u);
+    auto& pass = frame.render_pass_list.back();
+    ASSERT_THAT(pass->quad_list,
+                ElementsAre(AllOf(viz::IsTextureQuad(), viz::HasRect(viewport_),
+                                  viz::HasVisibleRect(viewport_),
+                                  viz::HasTransform(gfx::Transform()))));
+    const viz::TextureDrawQuad* texture_quad =
+        viz::TextureDrawQuad::MaterialCast(pass->quad_list.front());
+    EXPECT_TRUE(texture_quad->needs_blending);
+    EXPECT_NE(viz::kInvalidResourceId, texture_quad->resource_id());
+    EXPECT_EQ(gfx::PointF(0.0f, 0.0f), texture_quad->uv_top_left);
+    EXPECT_EQ(gfx::PointF(1.0f, 1.0f), texture_quad->uv_bottom_right);
+    EXPECT_EQ(1.0f, texture_quad->vertex_opacity[0]);
+    EXPECT_EQ(1.0f, texture_quad->vertex_opacity[1]);
+    EXPECT_EQ(1.0f, texture_quad->vertex_opacity[2]);
+    EXPECT_EQ(1.0f, texture_quad->vertex_opacity[3]);
+
+    ASSERT_EQ(frame.resource_list.size(), 1u);
+    EXPECT_EQ(frame.resource_list[0].id, texture_quad->resource_id());
+    EXPECT_EQ(frame.resource_list[0].size, gfx::Size(1, 1));
+    first_resource_id = texture_quad->resource_id();
+
+    ASSERT_EQ(frame_sink_->uploaded_resources().size(), 1u);
+    EXPECT_EQ(frame_sink_->uploaded_resources().begin()->second.viz_resource_id,
+              texture_quad->resource_id());
+  }
+
+  ui_resource_layer->SetUV(gfx::PointF(0.25f, 0.25f),
+                           gfx::PointF(0.75f, 0.75f));
+  ui_resource_layer->SetVertexOpacity(0.1f, 0.2f, 0.3f, 0.4f);
+  {
+    auto image_info =
+        SkImageInfo::Make(2, 2, kN32_SkColorType, kPremul_SkAlphaType);
+    SkBitmap bitmap;
+    bitmap.allocPixels(image_info);
+    bitmap.setImmutable();
+    ui_resource_layer->SetBitmap(bitmap);
+
+    viz::CompositorFrame frame = ProduceFrame();
+    ASSERT_EQ(frame.render_pass_list.size(), 1u);
+    auto& pass = frame.render_pass_list.back();
+    ASSERT_THAT(pass->quad_list,
+                ElementsAre(AllOf(viz::IsTextureQuad(), viz::HasRect(viewport_),
+                                  viz::HasVisibleRect(viewport_),
+                                  viz::HasTransform(gfx::Transform()))));
+    const viz::TextureDrawQuad* texture_quad =
+        viz::TextureDrawQuad::MaterialCast(pass->quad_list.front());
+    EXPECT_TRUE(texture_quad->needs_blending);
+    EXPECT_NE(viz::kInvalidResourceId, texture_quad->resource_id());
+    EXPECT_EQ(gfx::PointF(0.25f, 0.25f), texture_quad->uv_top_left);
+    EXPECT_EQ(gfx::PointF(0.75f, 0.75f), texture_quad->uv_bottom_right);
+    EXPECT_EQ(0.1f, texture_quad->vertex_opacity[0]);
+    EXPECT_EQ(0.2f, texture_quad->vertex_opacity[1]);
+    EXPECT_EQ(0.3f, texture_quad->vertex_opacity[2]);
+    EXPECT_EQ(0.4f, texture_quad->vertex_opacity[3]);
+
+    ASSERT_EQ(frame.resource_list.size(), 1u);
+    EXPECT_EQ(frame.resource_list[0].id, texture_quad->resource_id());
+    EXPECT_EQ(frame.resource_list[0].size, gfx::Size(2, 2));
+    EXPECT_NE(first_resource_id, texture_quad->resource_id());
+  }
+}
+
 }  // namespace
 
 }  // namespace cc::slim
diff --git a/cc/slim/test_frame_sink_impl.cc b/cc/slim/test_frame_sink_impl.cc
index e764043..d7812bef 100644
--- a/cc/slim/test_frame_sink_impl.cc
+++ b/cc/slim/test_frame_sink_impl.cc
@@ -95,6 +95,9 @@
   client_ = client;
   frame_sink_ = mojo_sink_.get();
   bind_to_client_called_ = true;
+  if (bind_to_client_result_) {
+    context_provider_->BindToCurrentSequence();
+  }
   return bind_to_client_result_;
 }
 
diff --git a/cc/slim/test_frame_sink_impl.h b/cc/slim/test_frame_sink_impl.h
index e74ac326..2e53c62 100644
--- a/cc/slim/test_frame_sink_impl.h
+++ b/cc/slim/test_frame_sink_impl.h
@@ -32,6 +32,12 @@
   bool BindToClient(FrameSinkImplClient* client) override;
   void SetNeedsBeginFrame(bool needs_begin_frame) override;
 
+  using FrameSinkImpl::UploadedResourceMap;
+  using FrameSinkImpl::UploadedUIResource;
+  const UploadedResourceMap& uploaded_resources() const {
+    return uploaded_resources_;
+  }
+
  private:
   class TestMojoCompositorFrameSink;
   TestFrameSinkImpl(
diff --git a/cc/slim/ui_resource_layer.cc b/cc/slim/ui_resource_layer.cc
index a6d7c34..904fbe8 100644
--- a/cc/slim/ui_resource_layer.cc
+++ b/cc/slim/ui_resource_layer.cc
@@ -10,8 +10,8 @@
 #include "cc/slim/features.h"
 #include "cc/slim/layer_tree_impl.h"
 #include "components/viz/common/quads/compositor_render_pass.h"
-#include "components/viz/common/quads/solid_color_draw_quad.h"
 #include "components/viz/common/quads/texture_draw_quad.h"
+#include "components/viz/common/resources/resource_id.h"
 
 namespace cc::slim {
 
@@ -137,4 +137,32 @@
   NotifyPropertyChanged();
 }
 
+void UIResourceLayer::AppendQuads(viz::CompositorRenderPass& render_pass,
+                                  const gfx::Transform& transform,
+                                  const gfx::Rect* clip) {
+  viz::ResourceId viz_resource_id =
+      static_cast<LayerTreeImpl*>(layer_tree())->GetVizResourceId(resource_id_);
+  if (viz_resource_id == viz::kInvalidResourceId) {
+    return;
+  }
+
+  viz::SharedQuadState* quad_state =
+      CreateAndAppendSharedQuadState(render_pass, transform, clip);
+
+  viz::TextureDrawQuad* quad =
+      render_pass.CreateAndAppendDrawQuad<viz::TextureDrawQuad>();
+  constexpr bool kFlipped = false;
+  constexpr bool kNearest = false;
+  constexpr bool kPremultiplied = true;
+  constexpr bool kSecureOutputOnly = false;
+  constexpr auto kVideoType = gfx::ProtectedVideoType::kClear;
+  const bool needs_blending = !static_cast<LayerTreeImpl*>(layer_tree())
+                                   ->IsUIResourceOpaque(resource_id_);
+  quad->SetNew(quad_state, quad_state->quad_layer_rect,
+               quad_state->visible_quad_layer_rect, needs_blending,
+               viz_resource_id, kPremultiplied, uv_top_left(),
+               uv_bottom_right(), SkColors::kTransparent, vertex_opacity_,
+               kFlipped, kNearest, kSecureOutputOnly, kVideoType);
+}
+
 }  // namespace cc::slim
diff --git a/cc/slim/ui_resource_layer.h b/cc/slim/ui_resource_layer.h
index 97ced67..60c51fc 100644
--- a/cc/slim/ui_resource_layer.h
+++ b/cc/slim/ui_resource_layer.h
@@ -59,6 +59,9 @@
   const auto& vertex_opacity() const { return vertex_opacity_; }
 
   bool HasDrawableContent() const override;
+  void AppendQuads(viz::CompositorRenderPass& render_pass,
+                   const gfx::Transform& transform,
+                   const gfx::Rect* clip) override;
 
  private:
   cc::UIResourceLayer* cc_layer() const;
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index a5fca77..5d54960d 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -196,6 +196,7 @@
         "//base",
         "//build:branding_buildflags",
         "//chrome/app:chrome_exe_main_exports",
+        "//chrome/app:exit_code_watcher",
         "//chrome/app/version_assembly:chrome_exe_manifest",
         "//chrome/browser:active_use_util",
         "//chrome/browser:chrome_process_finder",
@@ -206,7 +207,6 @@
         "//chrome/install_static:secondary_module",
         "//chrome/installer/util:constants",
         "//chrome/installer/util:did_run_support",
-        "//components/browser_watcher:browser_watcher_client",
         "//components/crash/core/app",
         "//components/crash/core/app:run_as_crashpad_handler",
         "//components/crash/core/common",
@@ -411,7 +411,6 @@
       "//chrome/common/profiler",
       "//chrome/install_static:install_static_util",
       "//chrome/install_static:secondary_module",
-      "//components/browser_watcher:stability_client",
       "//components/crash/core/app",
       "//components/policy:generated",
       "//content/public/app",
diff --git a/chrome/VERSION b/chrome/VERSION
index 135f39a..1cd6dafd 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=112
 MINOR=0
-BUILD=5610
+BUILD=5611
 PATCH=0
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator.java
index 9a9a10e..0c9ef5d 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator.java
+++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator.java
@@ -90,30 +90,6 @@
         mModel.set(ACTIVE_TAB_INDEX, position);
     }
 
-    /**
-     * Returns the position of a tab which needs to become the active tab. If the tab to be deleted
-     * is the active tab, return the item on its left. If it was the first item in the list, return
-     * the new first item. If no items remain, return {@link
-     * AccessorySheetProperties#NO_ACTIVE_TAB}.
-     * @param tabToBeDeleted The tab to be removed from the list.
-     * @return The position of the tab which should become active.
-     */
-    private int getNextActiveTab(KeyboardAccessoryData.Tab tabToBeDeleted) {
-        int activeTab = mModel.get(ACTIVE_TAB_INDEX);
-        for (int i = 0; i <= activeTab; i++) {
-            KeyboardAccessoryData.Tab tabLeftToActiveTab = mModel.get(TABS).get(i);
-            // If we delete the active tab or a tab left to it, the new active tab moves left.
-            if (tabLeftToActiveTab == tabToBeDeleted) {
-                --activeTab;
-                break;
-            }
-        }
-        if (activeTab >= 0) return activeTab; // The new active tab is valid.
-        // If there are items left, take the first one.
-        int itemCountAfterDeletion = mModel.get(TABS).size() - 1;
-        return itemCountAfterDeletion > 0 ? 0 : NO_ACTIVE_TAB;
-    }
-
     @Override
     public void onPropertyChanged(PropertyObservable<PropertyKey> source, PropertyKey propertyKey) {
         if (propertyKey == VISIBLE) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
index 9c32dfb..f4f16df4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
@@ -594,18 +594,7 @@
         @Override
         public boolean isSwipeEnabled(@ScrollDirection int direction) {
             FullscreenManager manager = mHost.getFullscreenManager();
-            if (getActiveLayout() != mStaticLayout) {
-                if (mStartSurfaceHomeLayout != null
-                        && getActiveLayout() == mStartSurfaceHomeLayout) {
-                    // Left and right swipe is disabled on Start surface.
-                    if (direction != ScrollDirection.DOWN) {
-                        return false;
-                    }
-                } else {
-                    return false;
-                }
-            }
-            if (!DeviceClassManager.enableToolbarSwipe()
+            if (getActiveLayout() != mStaticLayout || !DeviceClassManager.enableToolbarSwipe()
                     || (manager != null && manager.getPersistentFullscreenMode())) {
                 return false;
             }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
index 1994ef3..57833e0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
@@ -112,6 +112,8 @@
             // great to dynamically remove the preference in this way.
             case SiteSettingsCategory.Type.ADS:
                 return SiteSettingsCategory.adsCategoryEnabled();
+            case SiteSettingsCategory.Type.ANTI_ABUSE:
+                return ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVATE_STATE_TOKENS);
             case SiteSettingsCategory.Type.AUTO_DARK_WEB_CONTENT:
                 return ChromeFeatureList.isEnabled(
                         ChromeFeatureList.DARKEN_WEBSITES_CHECKBOX_IN_THEMES_SETTING);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/PasswordSavingIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/PasswordSavingIntegrationTest.java
index d1f03c88..14ae6529 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/PasswordSavingIntegrationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/PasswordSavingIntegrationTest.java
@@ -26,7 +26,7 @@
 import org.chromium.base.test.util.Matchers;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
-import org.chromium.chrome.browser.touch_to_fill.R;
+import org.chromium.chrome.browser.touch_to_fill.common.R;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
 import org.chromium.chrome.test.util.ChromeTabUtils;
@@ -229,7 +229,6 @@
     }
 
     private RecyclerView getCredentials() {
-        RecyclerView r = mActivityTestRule.getActivity().findViewById(R.id.sheet_item_list);
         return mActivityTestRule.getActivity().findViewById(R.id.sheet_item_list);
     }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
index 9b64f9d5..646eaec 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
@@ -183,6 +183,13 @@
             new String[] {"binary_toggle", "os_permissions_warning_extra"};
     private static final String[] CLEAR_BROWSING_DATA_LINK =
             new String[] {"clear_browsing_data_link", "clear_browsing_divider"};
+    private static final String[] ANTI_ABUSE_PREF_KEYS = {"anti_abuse_when_on_header",
+            "anti_abuse_when_on_section_one", "anti_abuse_when_on_section_two",
+            "anti_abuse_things_to_consider_header", "anti_abuse_things_to_consider_section_one"};
+    private static final String[] BINARY_TOGGLE_WITH_ANTI_ABUSE_PREF_KEYS = {"binary_toggle",
+            "anti_abuse_when_on_header", "anti_abuse_when_on_section_one",
+            "anti_abuse_when_on_section_two", "anti_abuse_things_to_consider_header",
+            "anti_abuse_things_to_consider_section_one"};
 
     @Before
     public void setUp() throws TimeoutException {
@@ -1268,6 +1275,34 @@
     }
 
     /**
+     * Test that showing the Site Settings menu does not contain the "Anti-abuse" row.
+     */
+    @Test
+    @SmallTest
+    @Feature({"Preferences"})
+    @DisableFeatures(ChromeFeatureList.PRIVATE_STATE_TOKENS)
+    public void testSiteSettingsMenuWithPrivateStateTokensDisabled() {
+        final SettingsActivity settingsActivity = SiteSettingsTestUtils.startSiteSettingsMenu("");
+        SiteSettings websitePreferences = (SiteSettings) settingsActivity.getMainFragment();
+        assertNull(websitePreferences.findPreference("anti_abuse"));
+        settingsActivity.finish();
+    }
+
+    /**
+     * Test that showing the Site Settings menu contains the "Anti-abuse" row.
+     */
+    @Test
+    @SmallTest
+    @Feature({"Preferences"})
+    @EnableFeatures(ChromeFeatureList.PRIVATE_STATE_TOKENS)
+    public void testSiteSettingsMenuWithPrivateStateTokensEnabled() {
+        final SettingsActivity settingsActivity = SiteSettingsTestUtils.startSiteSettingsMenu("");
+        SiteSettings websitePreferences = (SiteSettings) settingsActivity.getMainFragment();
+        assertNotNull(websitePreferences.findPreference("anti_abuse"));
+        settingsActivity.finish();
+    }
+
+    /**
      * Tests that only expected Preferences are shown for a category. This santiy checks the number
      * of categories only. Each category has its own individual test below.
      */
@@ -1277,7 +1312,7 @@
     public void testOnlyExpectedPreferencesShown() {
         // If you add a category in the SiteSettings UI, please update this total AND add a test for
         // it below, named "testOnlyExpectedPreferences<Category>".
-        Assert.assertEquals(28, SiteSettingsCategory.Type.NUM_ENTRIES);
+        Assert.assertEquals(29, SiteSettingsCategory.Type.NUM_ENTRIES);
     }
 
     @Test
@@ -1306,6 +1341,15 @@
     @Test
     @SmallTest
     @Feature({"Preferences"})
+    @EnableFeatures(ChromeFeatureList.PRIVATE_STATE_TOKENS)
+    public void testOnlyExpectedPreferencesAntiAbuse() {
+        testExpectedPreferences(SiteSettingsCategory.Type.ANTI_ABUSE,
+                BINARY_TOGGLE_WITH_ANTI_ABUSE_PREF_KEYS, BINARY_TOGGLE_WITH_ANTI_ABUSE_PREF_KEYS);
+    }
+
+    @Test
+    @SmallTest
+    @Feature({"Preferences"})
     public void testOnlyExpectedPreferencesAugmentedReality() {
         testExpectedPreferences(
                 SiteSettingsCategory.Type.AUGMENTED_REALITY, BINARY_TOGGLE, BINARY_TOGGLE);
@@ -1902,6 +1946,26 @@
     @Test
     @SmallTest
     @Feature({"Preferences"})
+    public void testAllowAntiAbuse() {
+        new TwoStatePermissionTestCase("AntiAbuse", SiteSettingsCategory.Type.ANTI_ABUSE,
+                ContentSettingsType.ANTI_ABUSE, true)
+                .withExpectedPrefKeys(ANTI_ABUSE_PREF_KEYS)
+                .run();
+    }
+
+    @Test
+    @SmallTest
+    @Feature({"Preferences"})
+    public void testBlockAntiAbuse() {
+        new TwoStatePermissionTestCase("AntiAbuse", SiteSettingsCategory.Type.ANTI_ABUSE,
+                ContentSettingsType.ANTI_ABUSE, false)
+                .withExpectedPrefKeys(ANTI_ABUSE_PREF_KEYS)
+                .run();
+    }
+
+    @Test
+    @SmallTest
+    @Feature({"Preferences"})
     public void testAllowAr() {
         new TwoStatePermissionTestCase(
                 "AR", SiteSettingsCategory.Type.AUGMENTED_REALITY, ContentSettingsType.AR, true)
@@ -2585,6 +2649,11 @@
             return this;
         }
 
+        PermissionTestCase withExpectedPrefKeys(String[] expectedPrefKeys) {
+            mExpectedPreferenceKeys.addAll(Arrays.asList(expectedPrefKeys));
+            return this;
+        }
+
         public void run() {
             mSettingsActivity = SiteSettingsTestUtils.startSiteSettingsCategory(mSiteSettingsType);
             TestThreadUtils.runOnUiThreadBlocking(() -> {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java
index 59ea2c7..cc6e467b 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java
@@ -513,7 +513,7 @@
         // If the ContentSettingsType.NUM_TYPES value changes *and* a new value has been exposed on
         // Android, then please update this code block to include a test for your new type.
         // Otherwise, just update count in the assert.
-        Assert.assertEquals(85, ContentSettingsType.NUM_TYPES);
+        Assert.assertEquals(86, ContentSettingsType.NUM_TYPES);
         websitePreferenceBridge.addContentSettingException(
                 new ContentSettingException(ContentSettingsType.COOKIES, googleOrigin,
                         ContentSettingValues.DEFAULT, preferenceSource, /*isEmbargoed=*/false));
@@ -553,6 +553,9 @@
         websitePreferenceBridge.addContentSettingException(new ContentSettingException(
                 ContentSettingsType.FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION, googleOrigin,
                 ContentSettingValues.DEFAULT, preferenceSource, /*isEmbargoed=*/false));
+        websitePreferenceBridge.addContentSettingException(
+                new ContentSettingException(ContentSettingsType.ANTI_ABUSE, googleOrigin,
+                        ContentSettingValues.DEFAULT, preferenceSource, /*isEmbargoed=*/false));
 
         // Add storage info.
         int storageSize = 256;
@@ -622,6 +625,9 @@
             Assert.assertEquals(Integer.valueOf(ContentSettingValues.DEFAULT),
                     site.getContentSetting(UNUSED_BROWSER_CONTEXT_HANDLE,
                             ContentSettingsType.FEDERATED_IDENTITY_API));
+            Assert.assertEquals(Integer.valueOf(ContentSettingValues.DEFAULT),
+                    site.getContentSetting(
+                            UNUSED_BROWSER_CONTEXT_HANDLE, ContentSettingsType.ANTI_ABUSE));
 
             // Check storage info.
             ArrayList<StorageInfo> storageInfos = new ArrayList<>(site.getStorageInfo());
diff --git a/chrome/app/BUILD.gn b/chrome/app/BUILD.gn
index 2b3ce76e..401bf32 100644
--- a/chrome/app/BUILD.gn
+++ b/chrome/app/BUILD.gn
@@ -59,11 +59,25 @@
   source_set("chrome_exe_main_exports") {
     sources = [ "chrome_exe_main_win.h" ]
   }
-  source_set("crash_reporter_client_win_unit_tests") {
+
+  source_set("exit_code_watcher") {
+    sources = [
+      "exit_code_watcher_win.cc",
+      "exit_code_watcher_win.h",
+    ]
+    public_deps = [ "//base:base" ]
+  }
+
+  source_set("win_unit_tests") {
     testonly = true
-    sources = [ "chrome_crash_reporter_client_win_unittest.cc" ]
+    sources = [
+      "chrome_crash_reporter_client_win_unittest.cc",
+      "exit_code_watcher_win_unittest.cc",
+    ]
     deps = [
+      ":exit_code_watcher",
       "//base:base",
+      "//base/test:test_support",
       "//chrome/chrome_elf:crash",
       "//testing/gtest:gtest",
     ]
@@ -218,7 +232,6 @@
     deps += [
       "//chrome/chrome_elf:test_stubs",
       "//chrome/install_static:install_static_util",
-      "//components/browser_watcher:stability_client",
       "//sandbox/win:sandbox",
     ]
   }
diff --git a/chrome/app/DEPS b/chrome/app/DEPS
index debcd0b..74272209 100644
--- a/chrome/app/DEPS
+++ b/chrome/app/DEPS
@@ -18,7 +18,6 @@
   "+chromeos/hugepage_text/hugepage_text.h",
   "+chromeos/lacros",
   "+chromeos/startup",
-  "+components/browser_watcher",
   "+components/component_updater",
   "+components/content_settings/core/common/content_settings_pattern.h",
   "+components/crash",
diff --git a/chrome/app/chrome_exe_main_win.cc b/chrome/app/chrome_exe_main_win.cc
index 72659899..2323e25 100644
--- a/chrome/app/chrome_exe_main_win.cc
+++ b/chrome/app/chrome_exe_main_win.cc
@@ -38,6 +38,7 @@
 #include "base/win/windows_version.h"
 #include "build/build_config.h"
 #include "chrome/app/delay_load_failure_hook_win.h"
+#include "chrome/app/exit_code_watcher_win.h"
 #include "chrome/app/main_dll_loader_win.h"
 #include "chrome/app/packed_resources_integrity.h"
 #include "chrome/browser/policy/policy_path_parser.h"
@@ -48,7 +49,6 @@
 #include "chrome/install_static/initialize_from_primary_module.h"
 #include "chrome/install_static/install_util.h"
 #include "chrome/install_static/user_data_dir.h"
-#include "components/browser_watcher/exit_code_watcher_win.h"
 #include "components/crash/core/app/crash_switches.h"
 #include "components/crash/core/app/crashpad.h"
 #include "components/crash/core/app/fallback_crash_handling_win.h"
@@ -326,7 +326,7 @@
 
   if (process_type == crash_reporter::switches::kCrashpadHandler) {
     // Check if we should monitor the exit code of this process
-    std::unique_ptr<browser_watcher::ExitCodeWatcher> exit_code_watcher;
+    std::unique_ptr<ExitCodeWatcher> exit_code_watcher;
 
     crash_reporter::SetupFallbackCrashHandling(*command_line);
     // no-periodic-tasks is specified for self monitoring crashpad instances.
@@ -344,8 +344,7 @@
                 ::GetCurrentProcess(), &duplicate_handle,
                 PROCESS_QUERY_INFORMATION, FALSE, DUPLICATE_SAME_ACCESS)) {
           base::Process parent_process(duplicate_handle);
-          exit_code_watcher =
-              std::make_unique<browser_watcher::ExitCodeWatcher>();
+          exit_code_watcher = std::make_unique<ExitCodeWatcher>();
           if (exit_code_watcher->Initialize(std::move(parent_process))) {
             exit_code_watcher->StartWatching();
           }
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc
index c4aa6df..18b59a70 100644
--- a/chrome/app/chrome_main_delegate.cc
+++ b/chrome/app/chrome_main_delegate.cc
@@ -110,8 +110,6 @@
 #include "chrome/chrome_elf/chrome_elf_main.h"
 #include "chrome/common/child_process_logging.h"
 #include "chrome/common/win/delay_load_failure_hook.h"
-#include "chrome/install_static/install_util.h"
-#include "components/browser_watcher/extended_crash_reporting.h"
 #include "sandbox/win/src/sandbox.h"
 #include "sandbox/win/src/sandbox_factory.h"
 #include "ui/base/resource/resource_bundle_win.h"
@@ -289,29 +287,6 @@
   return is_sandboxed_process_func && is_sandboxed_process_func();
 }
 
-void SetUpExtendedCrashReporting(bool is_browser_process) {
-  browser_watcher::ExtendedCrashReporting* extended_crash_reporting =
-      browser_watcher::ExtendedCrashReporting::SetUpIfEnabled(
-          is_browser_process
-              ? browser_watcher::ExtendedCrashReporting::kBrowserProcess
-              : browser_watcher::ExtendedCrashReporting::kOther);
-
-  if (!extended_crash_reporting)
-    return;
-
-  // Record product, version, channel and special build strings.
-  wchar_t exe_file[MAX_PATH] = {};
-  CHECK(::GetModuleFileName(nullptr, exe_file, std::size(exe_file)));
-
-  std::wstring product_name, version_number, channel_name, special_build;
-  install_static::GetExecutableVersionDetails(
-      exe_file, &product_name, &version_number, &special_build, &channel_name);
-
-  extended_crash_reporting->SetProductStrings(
-      base::WideToUTF16(product_name), base::WideToUTF16(version_number),
-      base::WideToUTF16(channel_name), base::WideToUTF16(special_build));
-}
-
 #endif  // BUILDFLAG(IS_WIN)
 
 #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
@@ -971,7 +946,6 @@
   }
 
 #if BUILDFLAG(IS_WIN)
-  SetUpExtendedCrashReporting(is_browser_process);
   base::sequence_manager::internal::ThreadControllerPowerMonitor::
       InitializeOnMainThread();
   base::InitializePlatformThreadFeatures();
diff --git a/components/browser_watcher/exit_code_watcher_win.cc b/chrome/app/exit_code_watcher_win.cc
similarity index 77%
rename from components/browser_watcher/exit_code_watcher_win.cc
rename to chrome/app/exit_code_watcher_win.cc
index e707566..23e03d5 100644
--- a/components/browser_watcher/exit_code_watcher_win.cc
+++ b/chrome/app/exit_code_watcher_win.cc
@@ -2,23 +2,27 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/browser_watcher/exit_code_watcher_win.h"
+#include "chrome/app/exit_code_watcher_win.h"
 
 #include <windows.h>
 
 #include <utility>
 
-#include "base/logging.h"
+#include "base/check.h"
+#include "base/functional/bind.h"
+#include "base/message_loop/message_pump_type.h"
+#include "base/metrics/histogram_base.h"
 #include "base/metrics/sparse_histogram.h"
-#include "base/process/kill.h"
 #include "base/process/process.h"
 #include "base/process/process_handle.h"
 #include "base/task/sequenced_task_runner.h"
 #include "base/threading/thread.h"
+#include "base/win/scoped_handle.h"
 
-namespace browser_watcher {
 namespace {
+
 constexpr char kBrowserExitCodeHistogramName[] = "Stability.BrowserExitCodes";
+
 bool WriteProcessExitCode(int exit_code) {
   if (exit_code != STILL_ACTIVE) {
     // Record the exit codes in a sparse stability histogram, as the range of
@@ -32,26 +36,25 @@
   }
   return false;
 }
+
 }  // namespace
 
 ExitCodeWatcher::ExitCodeWatcher()
     : background_thread_("ExitCodeWatcherThread"),
       exit_code_(STILL_ACTIVE),
-      stop_watching_handle_(CreateEvent(nullptr, TRUE, FALSE, nullptr)) {
+      stop_watching_handle_(::CreateEvent(nullptr, TRUE, FALSE, nullptr)) {
   DCHECK(stop_watching_handle_.IsValid());
 }
 
-ExitCodeWatcher::~ExitCodeWatcher() {}
+ExitCodeWatcher::~ExitCodeWatcher() = default;
 
 bool ExitCodeWatcher::Initialize(base::Process process) {
   if (!process.IsValid()) {
-    LOG(ERROR) << "Invalid parent handle, can't get parent process ID.";
     return false;
   }
 
   DWORD process_pid = process.Pid();
   if (process_pid == 0) {
-    LOG(ERROR) << "Invalid parent handle, can't get parent process ID.";
     return false;
   }
 
@@ -59,13 +62,11 @@
   FILETIME dummy = {};
   if (!::GetProcessTimes(process.Handle(), &creation_time, &dummy, &dummy,
                          &dummy)) {
-    PLOG(ERROR) << "Invalid parent handle, can't get parent process times.";
     return false;
   }
 
   // Success, take ownership of the process.
   process_ = std::move(process);
-
   return true;
 }
 
@@ -75,6 +76,7 @@
     return false;
   }
 
+  // Unretained is safe because `this` owns the thread.
   if (!background_thread_.task_runner()->PostTask(
           FROM_HERE, base::BindOnce(&ExitCodeWatcher::WaitForExit,
                                     base::Unretained(this)))) {
@@ -87,7 +89,7 @@
 
 void ExitCodeWatcher::StopWatching() {
   if (stop_watching_handle_.IsValid()) {
-    SetEvent(stop_watching_handle_.Get());
+    ::SetEvent(stop_watching_handle_.Get());
   }
 }
 
@@ -96,9 +98,5 @@
       process_.WaitForExitOrEvent(stop_watching_handle_, &exit_code_);
   if (wait_result == base::Process::WaitExitStatus::PROCESS_EXITED) {
     WriteProcessExitCode(exit_code_);
-  } else if (wait_result == base::Process::WaitExitStatus::FAILED) {
-    LOG(ERROR) << "Failed to wait for process exit or stop event";
   }
 }
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/exit_code_watcher_win.h b/chrome/app/exit_code_watcher_win.h
similarity index 84%
rename from components/browser_watcher/exit_code_watcher_win.h
rename to chrome/app/exit_code_watcher_win.h
index ed47f08..10ccec5d 100644
--- a/components/browser_watcher/exit_code_watcher_win.h
+++ b/chrome/app/exit_code_watcher_win.h
@@ -1,15 +1,13 @@
 // Copyright 2014 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
-#ifndef COMPONENTS_BROWSER_WATCHER_EXIT_CODE_WATCHER_WIN_H_
-#define COMPONENTS_BROWSER_WATCHER_EXIT_CODE_WATCHER_WIN_H_
+#ifndef CHROME_APP_EXIT_CODE_WATCHER_WIN_H_
+#define CHROME_APP_EXIT_CODE_WATCHER_WIN_H_
 
 #include "base/process/process.h"
 #include "base/threading/thread.h"
 #include "base/win/scoped_handle.h"
 
-namespace browser_watcher {
-
 // Watches for the exit code of a process and records
 class ExitCodeWatcher {
  public:
@@ -50,6 +48,4 @@
   base::win::ScopedHandle stop_watching_handle_;
 };
 
-}  // namespace browser_watcher
-
-#endif  // COMPONENTS_BROWSER_WATCHER_EXIT_CODE_WATCHER_WIN_H_
+#endif  // CHROME_APP_EXIT_CODE_WATCHER_WIN_H_
diff --git a/components/browser_watcher/exit_code_watcher_win_unittest.cc b/chrome/app/exit_code_watcher_win_unittest.cc
similarity index 94%
rename from components/browser_watcher/exit_code_watcher_win_unittest.cc
rename to chrome/app/exit_code_watcher_win_unittest.cc
index 11f2f0b..141e1c3c 100644
--- a/components/browser_watcher/exit_code_watcher_win_unittest.cc
+++ b/chrome/app/exit_code_watcher_win_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/browser_watcher/exit_code_watcher_win.h"
+#include "chrome/app/exit_code_watcher_win.h"
 
 #include <stdint.h>
 
@@ -20,8 +20,6 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "testing/multiprocess_func_list.h"
 
-namespace browser_watcher {
-
 namespace {
 
 MULTIPROCESS_TEST_MAIN(Sleeper) {
@@ -33,8 +31,7 @@
 
 class ScopedSleeperProcess {
  public:
-   ScopedSleeperProcess() : is_killed_(false) {
-  }
+  ScopedSleeperProcess() : is_killed_(false) {}
 
   ~ScopedSleeperProcess() {
     if (process_.IsValid()) {
@@ -78,9 +75,7 @@
 
   ExitCodeWatcherTest() : cmd_line_(base::CommandLine::NO_PROGRAM) {}
 
-  void SetUp() override {
-    Super::SetUp();
-  }
+  void SetUp() override { Super::SetUp(); }
 
   base::Process OpenSelfWithAccess(uint32_t access) {
     return base::Process::OpenWithAccess(base::GetCurrentProcId(), access);
@@ -154,5 +149,3 @@
   ASSERT_NO_FATAL_FAILURE(sleeper.Kill(kExitCode, true));
   base::PlatformThread::Sleep(TestTimeouts::tiny_timeout());
 }
-
-}  // namespace browser_watcher
diff --git a/chrome/app/resources/chromium_strings_af.xtb b/chrome/app/resources/chromium_strings_af.xtb
index 7da3e95..26a06cd7 100644
--- a/chrome/app/resources/chromium_strings_af.xtb
+++ b/chrome/app/resources/chromium_strings_af.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Stel jou nuwe Chromium-profiel op</translation>
 <translation id="1396446129537741364">Chromium probeer tans om wagwoorde te wys.</translation>
 <translation id="1414495520565016063">Jy is by Chromium aangemeld!</translation>
-<translation id="1493803763272692301">Jy kan Chromium ten beste benut</translation>
 <translation id="1524282610922162960">Deel 'n Chromium-oortjie</translation>
 <translation id="1553461853655228091">Chromium moet toestemming hê om toegang te kry tot jou kamera om 'n 3D-kaart van jou omgewing te skep</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Jou administrateur vereis dat jy Chromium herbegin om 'n opdatering toe te pas}=1{Jou administrateur vereis dat jy Chromium herbegin om 'n opdatering toe te pas. Jou incognitovenster sal nie weer oopgemaak word nie.}other{Jou administrateur vereis dat jy Chromium herbegin om 'n opdatering toe te pas. Jou # 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 a6b0a43..a16780d 100644
--- a/chrome/app/resources/chromium_strings_am.xtb
+++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">አዲሱን የChromium መገለጫዎ ያቀናብሩት</translation>
 <translation id="1396446129537741364">Chromium የይለፍ ቃላትን ለማሳየት እየሞከረ ነው።</translation>
 <translation id="1414495520565016063">ወደ Chromium ገብተዋል!</translation>
-<translation id="1493803763272692301">ከChromium ማግኘት የሚችሉትን ሁሉ በማግኘት መደሰት ይችላሉ</translation>
 <translation id="1524282610922162960">የChromium ትር ያጋሩ</translation>
 <translation id="1553461853655228091">Chromium የዙሪያዎ 3ል ካርታ መፍጠር እንዲችል ካሜራዎን የመድረስ ፈቃድ ያስፈልገዋል</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{አንድ ዝማኔ ለመተግበር አስተዳዳሪዎ Chromiumን ዳግም እንዲያስጀምሩት ይፈልግብዎታል}=1{አንድ ዝማኔ ለመተግበር አስተዳዳሪዎ Chromiumን ዳግም እንዲያስጀምሩት ይፈልግብዎታል። የእርስዎ ማንነት የማያሳውቅ መስኮት ዳግም አይከፈትም}one{አንድ ዝማኔ ለመተግበር አስተዳዳሪዎ Chromiumን ዳግም እንዲያስጀምሩት ይፈልግብዎታል። የእርስዎ # ማንነት የማያሳውቁ መስኮቶች ዳግም አይከፈቱም}other{አንድ ዝማኔ ለመተግበር አስተዳዳሪዎ Chromiumን ዳግም እንዲያስጀምሩት ይፈልግብዎታል። የእርስዎ # ማንነት የማያሳውቁ መስኮቶች ዳግም አይከፈቱም}}</translation>
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb
index 40d38be..aac6268 100644
--- a/chrome/app/resources/chromium_strings_ar.xtb
+++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">‏إعداد ملفك الشخصي الجديد على Chromium</translation>
 <translation id="1396446129537741364">‏يحاول Chromium إظهار كلمات المرور.</translation>
 <translation id="1414495520565016063">‏تم تسجيل دخولك إلى Chromium!</translation>
-<translation id="1493803763272692301">‏يمكنك الاستفادة إلى أقصى حدّ من Chromium</translation>
 <translation id="1524282610922162960">‏مشاركة علامة تبويب Chromium</translation>
 <translation id="1553461853655228091">‏يحتاج Chromium إلى إذن للوصول إلى الكاميرا من أجل إنشاء خريطة ثلاثية الأبعاد للبيئة المحيطة بك.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{‏يطلب المشرف إعادة تشغيل Chromium لتطبيق تحديث.}=1{‏يطلب المشرف إعادة تشغيل Chromium لتطبيق تحديث. لن تتم إعادة فتح نافذة التصفح المتخفي.}two{‏يطلب المشرف إعادة تشغيل Chromium لتطبيق تحديث. لن تتم إعادة فتح نافذتَي التصفح المتخفي.}few{‏يطلب المشرف إعادة تشغيل Chromium لتطبيق تحديث. لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}many{‏يطلب المشرف إعادة تشغيل Chromium لتطبيق تحديث. لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}other{‏يطلب المشرف إعادة تشغيل Chromium لتطبيق تحديث. لن تتم إعادة فتح نوافذ التصفّح المتخفي البالغ عددها #.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_as.xtb b/chrome/app/resources/chromium_strings_as.xtb
index 7e5daef..8b42907 100644
--- a/chrome/app/resources/chromium_strings_as.xtb
+++ b/chrome/app/resources/chromium_strings_as.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">আপোনাৰ নতুন Chromium প্ৰ'ফাইল ছেট আপ কৰক</translation>
 <translation id="1396446129537741364">Chromiumএ পাছৱর্ডসমূহ দেখুৱাবলৈ চেষ্টা কৰি আছে।</translation>
 <translation id="1414495520565016063">আপুনি Chromiumত ছাইন ইন হৈ আছে!</translation>
-<translation id="1493803763272692301">আপুনি Chromium পাৰ্যমানে উপভোগ কৰিব পাৰে</translation>
 <translation id="1524282610922162960">Chromium টেব এটা শ্বেয়াৰ কৰক</translation>
 <translation id="1553461853655228091">আপোনাৰ চৌপাশৰ এখন 3D মেপ সৃষ্টি কৰিবলৈ Chromiumক আপোনাৰ কেমেৰা এক্সেছ কৰাৰ অনুমতিৰ প্ৰয়োজন</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{আপোনাৰ প্ৰশাসকে কোনো আপডে’ট প্ৰয়োগ কৰিবলৈ আপুনি Chromium পুনৰ লঞ্চ কৰাটো বিচাৰে}=1{আপোনাৰ প্ৰশাসকে কোনো আপডে’ট প্ৰয়োগ কৰিবলৈ আপুনি Chromium পুনৰ লঞ্চ কৰাটো বিচাৰে। আপোনাৰ.ইনক’গনিট' ৱিণ্ড'খন পুনৰ খুলিব নোৱাৰিব।}one{আপোনাৰ প্ৰশাসকে কোনো আপডে’ট প্ৰয়োগ কৰিবলৈ আপুনি Chromium পুনৰ লঞ্চ কৰাটো বিচাৰে। আপোনাৰ #খন.ইনক’গনিট' ৱিণ্ড' পুনৰ খুলিব নোৱাৰিব।}other{আপোনাৰ প্ৰশাসকে কোনো আপডে’ট প্ৰয়োগ কৰিবলৈ আপুনি Chromium পুনৰ লঞ্চ কৰাটো বিচাৰে। আপোনাৰ #খন.ইনক’গনিট' ৱিণ্ড' পুনৰ খুলিব নোৱাৰিব।}}</translation>
diff --git a/chrome/app/resources/chromium_strings_az.xtb b/chrome/app/resources/chromium_strings_az.xtb
index 68cfefee..820a4965 100644
--- a/chrome/app/resources/chromium_strings_az.xtb
+++ b/chrome/app/resources/chromium_strings_az.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Yeni Chromium profilinizi ayarlayın</translation>
 <translation id="1396446129537741364">Chromium parolları göstərməyə çalışır.</translation>
 <translation id="1414495520565016063">Chromium'a daxil oldunuz!</translation>
-<translation id="1493803763272692301">Chromium'dan maksimum yararlana bilərsiniz</translation>
 <translation id="1524282610922162960">Chromium tabı paylaşın</translation>
 <translation id="1553461853655228091">Chromium ətrafınızın 3D xəritəsini yaratmaq üçün kameranıza giriş icazəsi tələb edir</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administrator güncəlləməni tətbiq etmək üçün Chromium'u yenidən başlatmanızı tələb edir}=1{Administrator güncəlləməni tətbiq etmək üçün Chromium'u yenidən başlatmanızı tələb edir. Anonim pəncərəniz yenidən açılmayacaq.}other{Administrator güncəlləməni tətbiq etmək üçün Chromium'u yenidən başlatmanızı tələb edir. # Anonim pəncərəniz yenidən açılmayacaq.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_be.xtb b/chrome/app/resources/chromium_strings_be.xtb
index aa512222..8166812f 100644
--- a/chrome/app/resources/chromium_strings_be.xtb
+++ b/chrome/app/resources/chromium_strings_be.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Наладзьце свой профіль Chromium</translation>
 <translation id="1396446129537741364">Chromium спрабуе паказаць паролі.</translation>
 <translation id="1414495520565016063">Вы ўвайшлі ў Chromium!</translation>
-<translation id="1493803763272692301">Вы зможаце карыстацца ўсімі магчымасцямі Chromium</translation>
 <translation id="1524282610922162960">Абагульце ўкладку Chromium</translation>
 <translation id="1553461853655228091">Chromium запытвае дазвол на доступ да камеры, каб стварыць 3D-карту асяроддзя</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Ваш адміністратар патрабуе перазапусціць Chromium для ўсталявання абнаўлення}=1{Ваш адміністратар патрабуе перазапусціць Chromium для ўсталявання абнаўлення. Акно ў рэжыме інкогніта не будзе адкрыта паўторна.}one{Ваш адміністратар патрабуе перазапусціць Chromium для ўсталявання абнаўлення. # акно ў рэжыме інкогніта не будзе адкрыта паўторна.}few{Ваш адміністратар патрабуе перазапусціць Chromium для ўсталявання абнаўлення. # акны ў рэжыме інкогніта не будуць адкрыты паўторна.}many{Ваш адміністратар патрабуе перазапусціць Chromium для ўсталявання абнаўлення. # вокнаў у рэжыме інкогніта не будуць адкрыты паўторна.}other{Ваш адміністратар патрабуе перазапусціць Chromium для ўсталявання абнаўлення. # акна ў рэжыме інкогніта не будуць адкрыты паўторна.}}</translation>
@@ -33,6 +32,7 @@
 <translation id="185970820835152459">У гэтым раздзеле можна кіраваць Уліковымі запісамі Google, у якія вы ўвайшлі. Вашы Уліковыя запісы Google выкарыстоўваюцца ў браўзеры Chromium, Краме Play, пошце Gmail і іншых сэрвісах. Калі вы хочаце дадаць уліковы запіс для каго-небудзь яшчэ (напрыклад, для ўдзельніка сямейнай групы), дадайце на прыладу "<ph name="DEVICE_TYPE" />" новага карыстальніка. <ph name="LINK_BEGIN" />Даведацца больш<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Сайты могуць захоўваць звесткі пра вашы інтарэсы ў браўзеры Chromium. Напрыклад, калі вы заходзіце на сайт, каб купіць красоўкі для ўдзелу ў марафоне, сайт можа вызначыць у якасці вашага інтарэсу марафонскі бег. Пазней, калі вы наведаеце іншы сайт, каб зарэгістравацца для ўдзелу ў спаборніцтвах па бегу, наведаны сайт можа ўлічыць вашы інтарэсы і паказаць вам рэкламу бегавых красовак.</translation>
 <translation id="1881322772814446296">Вы ўваходзіце праз уліковы запіс пад кіраваннем, што дае адміністратару кантроль над вашым профілем у браўзеры Chromium. Даныя Chromium (праграмы, закладкі, гісторыя, паролі і іншыя налады) будуць назаўсёды прывязаны да ўліковага запісу <ph name="USER_NAME" />. Вы зможаце выдаліць гэтыя даныя праз панэль кіравання Уліковымі запісамі Google, але іх нельга будзе звязаць з іншым уліковым запісам. Вы можаце стварыць новы профіль, каб захаваць існуючыя даныя Chromium асобна. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Пры ўводзе тэксту ў адрасны радок або ў поле пошуку Chromium адпраўляе ваш запыт у Google Дыск, каб прапанаваць вам найбольш рэлевантныя файлы. У рэжыме інкогніта гэта функцыя не працуе.</translation>
 <translation id="1911763535808217981">Выключыўшы гэта, вы зможаце ўваходзіць на сайты Google, такія як Gmail, не ўваходзячы ў Chromium</translation>
 <translation id="1929939181775079593">Chromium не адказвае. Перазапусціць яго?</translation>
 <translation id="193439633299369377">Каб прымяніць абнаўленне, трэба перазапусціць Chromium OS.</translation>
diff --git a/chrome/app/resources/chromium_strings_bg.xtb b/chrome/app/resources/chromium_strings_bg.xtb
index df1b239..5d4d42e 100644
--- a/chrome/app/resources/chromium_strings_bg.xtb
+++ b/chrome/app/resources/chromium_strings_bg.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Настройване на новия ви потребителски профил в Chromium</translation>
 <translation id="1396446129537741364">Chromium опитва да покаже паролите.</translation>
 <translation id="1414495520565016063">Влязохте в Chromium!</translation>
-<translation id="1493803763272692301">Можете да се възползвате максимално от Chromium</translation>
 <translation id="1524282610922162960">Споделяне на раздел в Chromium</translation>
 <translation id="1553461853655228091">Chromium се нуждае от разрешение за достъп до камерата ви, за да създаде триизмерна карта на заобикалящата ви среда</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Администраторът ви изисква да рестартирате Chromium, за да се приложи актуализация}=1{Администраторът ви изисква да рестартирате Chromium, за да се приложи актуализация. Прозорецът ви в режим „инкогнито“ няма да бъде отворен отново.}other{Администраторът ви изисква да рестартирате Chromium, за да се приложи актуализация. Вашите # прозореца в режим „инкогнито“ няма да бъдат отворени отново.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">Можете да управлявате профилите си в Google, в които сте влезли. Те се използват за браузъра Chromium, Google Play Магазин, Gmail и др. Ако искате да добавите профил за друго лице, като например член на семейството, вместо това добавете нов човек към вашия <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Сайтовете могат да съхраняват в Chromium информация за интересите ви. Ако например посетите даден сайт, за да купите обувки за маратон, той може да определи, че се интересувате от маратони. В случай че по-късно посетите друг сайт, за да се регистрирате за състезание, той може да ви покаже реклама на обувки за бягане въз основа на интересите ви.</translation>
 <translation id="1881322772814446296">Влизате с управляван профил и давате на администратора му контрол над потребителския си профил в Chromium. Данните ви там, като например приложения, отметки, история, пароли и други настройки, ще се свържат за постоянно с/ъс <ph name="USER_NAME" />. Ще можете да ги изтриете чрез таблото за управление на Google Профили, но не и да ги свържете с друг профил. По избор можете да създадете нов потребителски профил, за да отделите съществуващите си данни в Chromium. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Когато пишете в адресната лента или полето за търсене, Chromium изпраща въведеното от вас до Google Диск с цел получаване на предложения за елементи. Тази функция е изключена в режим „инкогнито“.</translation>
 <translation id="1911763535808217981">С изключването на тази функция можете да влизате в сайтовете на Google, като например Gmail, без да влизате в Chromium</translation>
 <translation id="1929939181775079593">Chromium блокира. Да се стартира ли отново сега?</translation>
 <translation id="193439633299369377">Chromium OS трябва да се рестартира, за да бъде приложена актуализацията.</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb
index ac23bdfc7..80f8f04 100644
--- a/chrome/app/resources/chromium_strings_bn.xtb
+++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">আপনার নতুন Chromium প্রোফাইল সেট আপ করুন</translation>
 <translation id="1396446129537741364">Chromium পাসওয়ার্ডগুলি দেখানোর চেষ্টা করছে৷</translation>
 <translation id="1414495520565016063">আপনি Chromium এ প্রবেশ করেছেন!</translation>
-<translation id="1493803763272692301">Chromium থেকে সবচেয়ে বেশি সুবিধা পেতে পারেন</translation>
 <translation id="1524282610922162960">একটি Chromium ট্যাব শেয়ার করুন</translation>
 <translation id="1553461853655228091">আপনার আশেপাশের 3D ম্যাপ তৈরি করতে এই সাইটটির জন্য Chromium-কে আপনার ক্যামেরা অ্যাক্সেস করার অনুমতি দিতে হবে</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{একটি আপডেট প্রয়োগ করতে আপনার অ্যাডমিনিস্ট্রেটর আপনাকে Chromium আবার চালু করতে বলছেন}=1{একটি আপডেট প্রয়োগ করতে আপনার অ্যাডমিনিস্ট্রেটর আপনাকে Chromium আবার চালু করতে বলছেন। আপনার ছদ্মবেশী উইন্ডো আবার খুলবে না।}one{একটি আপডেট প্রয়োগ করতে আপনার অ্যাডমিনিস্ট্রেটর আপনাকে Chromium আবার চালু করতে বলছেন। আপনার #টি ছদ্মবেশী উইন্ডো আবার খুলবে না।}other{একটি আপডেট প্রয়োগ করতে আপনার অ্যাডমিনিস্ট্রেটর আপনাকে Chromium আবার চালু করতে বলছেন। আপনার #টি ছদ্মবেশী উইন্ডো আবার খুলবে না।}}</translation>
diff --git a/chrome/app/resources/chromium_strings_bs.xtb b/chrome/app/resources/chromium_strings_bs.xtb
index ae5f9a4..4b3e9e79 100644
--- a/chrome/app/resources/chromium_strings_bs.xtb
+++ b/chrome/app/resources/chromium_strings_bs.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Postavite novi Chromium profil</translation>
 <translation id="1396446129537741364">Chromium pokušava prikazati lozinke.</translation>
 <translation id="1414495520565016063">Prijavili ste se u Chromium!</translation>
-<translation id="1493803763272692301">Možete uživati u svim prednostima Chromiuma</translation>
 <translation id="1524282610922162960">Dijelite Chromium karticu</translation>
 <translation id="1553461853655228091">Chromiumu je potrebno odobrenje da pristupi kameri radi kreiranja 3D mape vašeg okruženja</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administrator traži da ponovo pokrenete Chromium radi primjene ažuriranja}=1{Administrator traži da ponovo pokrenete Chromium radi primjene ažuriranja. Vaš anonimni prozor se neće ponovo otvoriti.}one{Administrator traži da ponovo pokrenete Chromium radi primjene ažuriranja. Vaš # anonimni prozor se neće ponovo otvoriti.}few{Administrator traži da ponovo pokrenete Chromium radi primjene ažuriranja. Vaša # anonimna prozora se neće ponovo otvoriti.}other{Administrator traži da ponovo pokrenete Chromium radi primjene ažuriranja. Vaših # anonimnih prozora 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 7212090..1192c1b 100644
--- a/chrome/app/resources/chromium_strings_ca.xtb
+++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Configura el teu perfil de Chromium nou</translation>
 <translation id="1396446129537741364">Chromium està provant de mostrar les contrasenyes.</translation>
 <translation id="1414495520565016063">Teniu la sessió iniciada a Chromium.</translation>
-<translation id="1493803763272692301">Pots treure el màxim profit de Chromium</translation>
 <translation id="1524282610922162960">Comparteix una pestanya de Chromium</translation>
 <translation id="1553461853655228091">Chromium necessita permís per accedir a la càmera i poder crear un mapa 3D del teu entorn</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{L'administrador necessita que reiniciïs Chromium per aplicar una actualització}=1{L'administrador necessita que reiniciïs Chromium per aplicar una actualització. La finestra d'incògnit no es tornarà a obrir.}other{L'administrador necessita que reiniciïs Chromium per aplicar una actualització. Les # finestres d'incògnit no es tornaran a obrir.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb
index 5139b8f..5e6f7a74 100644
--- a/chrome/app/resources/chromium_strings_cs.xtb
+++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Nastavení nového profilu Chromium</translation>
 <translation id="1396446129537741364">Chromium se pokouší zobrazit hesla.</translation>
 <translation id="1414495520565016063">Jste přihlášeni do prohlížeče Chromium.</translation>
-<translation id="1493803763272692301">Prohlížeč Chromium můžete využít na maximum</translation>
 <translation id="1524282610922162960">Sdílet kartu prohlížeče Chromium</translation>
 <translation id="1553461853655228091">Prohlížeč Chromium potřebuje oprávnění k přístupu k fotoaparátu, aby mohl vytvořit 3D mapu vašeho okolí</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Váš administrátor vyžaduje, abyste kvůli použití této aktualizace Chromium restartovali}=1{Váš administrátor vyžaduje, abyste kvůli použití této aktualizace Chromium restartovali. Anonymní okno se neotevře znovu.}few{Váš administrátor vyžaduje, abyste kvůli použití této aktualizace Chromium restartovali. # anonymní okna se neotevřou znovu.}many{Váš administrátor vyžaduje, abyste kvůli použití této aktualizace Chromium restartovali. # anonymního okna se neotevře znovu.}other{Váš administrátor vyžaduje, abyste kvůli použití této aktualizace Chromium restartovali. # anonymních oken se neotevře znovu.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_cy.xtb b/chrome/app/resources/chromium_strings_cy.xtb
index 7b790831..97697e1 100644
--- a/chrome/app/resources/chromium_strings_cy.xtb
+++ b/chrome/app/resources/chromium_strings_cy.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Gosod eich proffil Chromium newydd</translation>
 <translation id="1396446129537741364">Mae Chromium yn ceisio dangos cyfrineiriau.</translation>
 <translation id="1414495520565016063">Rydych wedi mewngofnodi i Chromium!</translation>
-<translation id="1493803763272692301">Gallwch fwynhau'r mwyaf allan o Chromium</translation>
 <translation id="1524282610922162960">Rhannu tab Chromium</translation>
 <translation id="1553461853655228091">Mae angen caniatâd ar Chromium i gael mynediad at eich camera i greu map 3D o'ch amgylchoedd</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Mae eich gweinyddwr yn gofyn i chi ail-lansio Chromium i gymhwyso diweddariad}=1{Mae eich gweinyddwr yn gofyn i chi ail-lansio Chromium i gymhwyso diweddariad. Ni fydd eich ffenestr Anhysbys yn ailagor.}two{Mae eich gweinyddwr yn gofyn i chi ail-lansio Chromium i gymhwyso diweddariad. Ni fydd eich # ffenestr Anhysbys yn ailagor.}few{Mae eich gweinyddwr yn gofyn i chi ail-lansio Chromium i gymhwyso diweddariad. Ni fydd eich # ffenestr Anhysbys yn ailagor.}many{Mae eich gweinyddwr yn gofyn i chi ail-lansio Chromium i gymhwyso diweddariad. Ni fydd eich # ffenestr Anhysbys yn ailagor.}other{Mae eich gweinyddwr yn gofyn i chi ail-lansio Chromium i gymhwyso diweddariad. Ni fydd eich # ffenestr Anhysbys yn ailagor.}}</translation>
@@ -33,6 +32,7 @@
 <translation id="185970820835152459">Gallwch reoli'ch Cyfrifon Google sydd wedi'u mewngofnodi. Defnyddir eich Cyfrifon Google ar gyfer porwr Chromium, Play Store, Gmail, a rhagor. Os ydych am ychwanegu cyfrif ar gyfer rhywun arall, megis aelod o'r teulu, ychwanegwch berson newydd at eich <ph name="DEVICE_TYPE" /> yn lle. <ph name="LINK_BEGIN" />Dysgu rhagor<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Gall gwefannau storio gwybodaeth am eich diddordebau gyda Chromium. Er enghraifft, os ydych yn ymweld â gwefan i brynu esgidiau ar gyfer marathon, mae'n bosib y bydd y wefan yn diffinio'ch diddordeb fel rhedeg marathon. Yn ddiweddarach, os byddwch yn ymweld â gwefan wahanol i gofrestru ar gyfer ras, gall y wefan honno ddangos hysbyseb i chi ar gyfer esgidiau rhedeg yn seiliedig ar eich diddordebau.</translation>
 <translation id="1881322772814446296">Rydych yn mewngofnodi gyda chyfrif a reolir ac yn rhoi rheolaeth dros eich proffil Chromium i'w weinyddwr. Bydd eich data Chromium, megis eich apiau, eich nodau tudalen, eich hanes, eich cyfrineiriau, a'ch gosodiadau eraill wedi'u cysylltu'n barhaol â <ph name="USER_NAME" />. Byddwch yn gallu dileu'r data hyn drwy'r Dangosfwrdd Cyfrifon Google, ond ni fyddwch yn gallu cysylltu'r data hyn â chyfrif arall. Gallwch ddewis creu proffil newydd i gadw'ch data Chromium presennol ar wahân. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Pan fyddwch yn teipio yn y bar cyfeiriad neu'r blwch chwilio, bydd Chromium yn anfon yr hyn rydych yn ei deipio i Google Drive i gael awgrymiadau eitem. Mae hwn wedi'i ddiffodd yn y modd Anhysbys.</translation>
 <translation id="1911763535808217981">Drwy ddiffodd hyn, gallwch fewngofnodi i wefannau Google megis Gmail heb fewngofnodi i Chromium</translation>
 <translation id="1929939181775079593">Mae Chromium yn anymatebol. Ail-lansio nawr?</translation>
 <translation id="193439633299369377">Mae angen ailgychwyn ChromiumOS i gymhwyso'r diweddariad.</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb
index df1cacf..1af0a3e0 100644
--- a/chrome/app/resources/chromium_strings_da.xtb
+++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Konfigurer din nye Chromium-profil</translation>
 <translation id="1396446129537741364">Chromium forsøger at vise adgangskoder.</translation>
 <translation id="1414495520565016063">Du er logget ind på Chromium.</translation>
-<translation id="1493803763272692301">Få mest muligt ud af Chromium</translation>
 <translation id="1524282610922162960">Del en Chromium-fane</translation>
 <translation id="1553461853655228091">Chromium skal have adgangstilladelse til dit kamera for at oprette et 3D-kort over dine omgivelser</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Din administrator kræver, at du genstarter Chromium for at anvende en opdatering}=1{Din administrator kræver, at du genstarter Chromium for at anvende en opdatering. Dit inkognitovindue åbnes ikke igen.}one{Din administrator kræver, at du genstarter Chromium for at anvende en opdatering. # inkognitovindue åbnes ikke igen.}other{Din administrator kræver, at du genstarter Chromium for at anvende en opdatering. Dine # inkognitovinduer åbnes ikke igen.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_de.xtb b/chrome/app/resources/chromium_strings_de.xtb
index 804cb0ba..cb56c67 100644
--- a/chrome/app/resources/chromium_strings_de.xtb
+++ b/chrome/app/resources/chromium_strings_de.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Neues Chromium-Profil erstellen</translation>
 <translation id="1396446129537741364">Chromium versucht, Passwörter anzuzeigen.</translation>
 <translation id="1414495520565016063">Du bist in Chromium angemeldet.</translation>
-<translation id="1493803763272692301">Chromium optimal nutzen</translation>
 <translation id="1524282610922162960">Chromium-Tab freigeben</translation>
 <translation id="1553461853655228091">Chromium benötigt Zugriff auf die Kamera, um eine 3D-Karte deiner Umgebung zu erstellen</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Laut deinem Administrator musst du Chromium neu starten, um ein Update durchzuführen}=1{Laut deinem Administrator musst du Chromium neu starten, um ein Update durchzuführen. Dein Inkognitofenster wird nicht wieder geöffnet.}other{Laut deinem Administrator musst du Chromium neu starten, um ein Update durchzuführen. Deine # Inkognitofenster werden nicht wieder geöffnet.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">Du kannst deine angemeldeten Google-Konten verwalten. Deine Google-Konten werden für den Chromium-Browser, den Play Store, Gmail und mehr verwendet. Wenn du ein Konto für jemand anderen hinzufügen möchtest, z. B. ein Familienmitglied, ordne bitte stattdessen deinem Gerät (<ph name="DEVICE_TYPE" />) eine neue Person zu. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Websites können Daten zu deinen Interessen bei Chromium speichern. Wenn du beispielsweise im Internet Schuhe für einen Marathon kaufst, definiert die Website möglicherweise Marathons als eines deiner Interessen. Wenn du dann später eine andere Website besuchst, um dich für ein Wettrennen anzumelden, kann dir auf Grundlage deiner Interessen Werbung zu Laufschuhen angezeigt werden.</translation>
 <translation id="1881322772814446296">Du meldest dich mit einem verwalteten Konto an und ermöglichst dessen Administrator Zugriff auf dein Chromium-Profil. Deine Chromium-Daten, wie Apps, Lesezeichen, Verlauf, Passwörter und andere Einstellungen, werden dauerhaft mit <ph name="USER_NAME" /> verknüpft. Du kannst diese Daten über das Google Konten-Dashboard löschen, aber nicht mit einem anderen Konto verknüpfen. Wenn du deine bestehenden Chromium-Daten getrennt verwenden möchtest, kannst du ein neues Profil erstellen. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Wenn du etwas in die Adressleiste oder das Suchfeld eingibst, sendet Chromium deine Eingabe an Google Drive, damit du Vorschläge für Elemente erhältst. Im Inkognitomodus ist diese Funktion deaktiviert.</translation>
 <translation id="1911763535808217981">Wenn du diese Einstellung deaktivierst, kannst du dich auf Websites von Google wie beispielsweise Gmail anmelden, ohne dich auch in Chromium anmelden zu müssen</translation>
 <translation id="1929939181775079593">Chromium reagiert nicht. Jetzt neu starten?</translation>
 <translation id="193439633299369377">Chromium OS muss neu gestartet werden, um das Update zu installieren.</translation>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb
index 40d6a12..ddc4087 100644
--- a/chrome/app/resources/chromium_strings_el.xtb
+++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Ρυθμίστε το νέο σας προφίλ στο Chromium</translation>
 <translation id="1396446129537741364">Το Chromium επιχειρεί να εμφανίσει κωδικούς πρόσβασης.</translation>
 <translation id="1414495520565016063">Έχετε συνδεθεί στο Chromium!</translation>
-<translation id="1493803763272692301">Μπορείτε να απολαύσετε στο έπακρο το Chromium</translation>
 <translation id="1524282610922162960">Μοιραστείτε μια καρτέλα του Chromium</translation>
 <translation id="1553461853655228091">Το Chromium χρειάζεται άδεια πρόσβασης στην κάμερά σας, για να δημιουργήσει έναν τρισδιάστατο χάρτη του περιβάλλοντα χώρου σας.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Ο διαχειριστής σας απαιτεί να επανεκκινήσετε το Chromium, προκειμένου να εφαρμοστεί μια ενημέρωση.}=1{Ο διαχειριστής σας απαιτεί να επανεκκινήσετε το Chromium, προκειμένου να εφαρμοστεί μια ενημέρωση. Το παράθυρο για ανώνυμη περιήγηση δεν θα ανοίξει ξανά.}other{Ο διαχειριστής σας απαιτεί να επανεκκινήσετε το Chromium, προκειμένου να εφαρμοστεί μια ενημέρωση. Τα # παράθυρα για ανώνυμη περιήγηση δεν θα ανοίξουν ξανά.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_en-GB.xtb b/chrome/app/resources/chromium_strings_en-GB.xtb
index 72edb580..c3dbccf1 100644
--- a/chrome/app/resources/chromium_strings_en-GB.xtb
+++ b/chrome/app/resources/chromium_strings_en-GB.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Set up your new Chromium profile</translation>
 <translation id="1396446129537741364">Chromium is trying to show passwords.</translation>
 <translation id="1414495520565016063">You're signed in to Chromium!</translation>
-<translation id="1493803763272692301">You can enjoy the most out of Chromium</translation>
 <translation id="1524282610922162960">Share a Chromium tab</translation>
 <translation id="1553461853655228091">Chromium needs permission to access your camera to create a 3D map of your surroundings</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Your administrator requires that you relaunch Chromium to apply an update}=1{Your administrator requires that you relaunch Chromium to apply an update. Your Incognito window won't reopen.}other{Your administrator requires that you relaunch Chromium to apply an update. Your # Incognito windows won't reopen.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb
index c44bb39..9b692d5 100644
--- a/chrome/app/resources/chromium_strings_es-419.xtb
+++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Configura tu nuevo perfil de Chromium</translation>
 <translation id="1396446129537741364">Chromium está intentando mostrar contraseñas.</translation>
 <translation id="1414495520565016063">Accediste a Chromium.</translation>
-<translation id="1493803763272692301">Aprovecha Chromium al máximo</translation>
 <translation id="1524282610922162960">Compartir una pestaña de Chromium</translation>
 <translation id="1553461853655228091">Chromium necesita permiso para acceder a la cámara a fin de crear un mapa 3D de tu entorno</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Tu administrador necesita que reinicies Chromium para aplicar una actualización}=1{Tu administrador necesita que reinicies Chromium para aplicar una actualización. No se volverá a abrir la ventana de incógnito.}other{Tu administrador necesita que reinicies Chromium para aplicar una actualización. No se volverán a abrir las # ventanas de incógnito.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">Puedes administrar las Cuentas de Google a las que accediste. Tus Cuentas de Google se usan en el navegador Chromium, Play Store, Gmail y otros servicios. Si quieres agregar una cuenta de otra persona, como la de un miembro de la familia, agrega a una persona nueva a tu <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Los sitios pueden almacenar información sobre tus intereses con Chromium. Por ejemplo, si visitas un sitio para comprar zapatillas para una maratón, es posible que el sitio defina que te interesa correr maratones. Luego, si visitas otro sitio para registrarte en una carrera, ese sitio podrá mostrarte un anuncio sobre calzado para correr en función de tus intereses.</translation>
 <translation id="1881322772814446296">Estás por acceder con una cuenta administrada, lo que significa que proporcionarás al administrador el control sobre tu perfil de Chromium. Tus datos de Chromium, como las aplicaciones, los favoritos, el historial, las contraseñas y otros parámetros de configuración quedarán vinculados a <ph name="USER_NAME" /> de forma permanente. Podrás eliminar estos datos a través del Panel de control de Cuentas de Google, pero no podrás asociarlos a otra cuenta. También puedes crear un perfil para mantener separados tus datos de Chromium. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Cuando escribes en la barra de direcciones o en el cuadro de búsqueda, Chromium envía lo que escribes a Google Drive a fin de obtener sugerencias de artículos. Esta función está desactivada en el modo Incógnito.</translation>
 <translation id="1911763535808217981">Si desactivas esta preferencia, podrás acceder a sitios de Google (como Gmail) sin tener que acceder a Chromium</translation>
 <translation id="1929939181775079593">Chromium no responde. ¿Quieres reiniciarlo ahora?</translation>
 <translation id="193439633299369377">Chromium OS debe reiniciarse para que se aplique la actualización.</translation>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb
index 0c9900f..0159d2eb 100644
--- a/chrome/app/resources/chromium_strings_es.xtb
+++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Configura tu nuevo perfil de Chromium</translation>
 <translation id="1396446129537741364">Chromium está intentando mostrar contraseñas.</translation>
 <translation id="1414495520565016063">Has iniciado sesión en Chromium</translation>
-<translation id="1493803763272692301">Puedes disfrutar al máximo de Chromium</translation>
 <translation id="1524282610922162960">Compartir una pestaña de Chromium</translation>
 <translation id="1553461853655228091">Para crear un mapa 3D de tu entorno, Chromium necesita permiso para acceder a tu cámara</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Tu administrador pide que reinicies Chromium para aplicar una actualización}=1{Tu administrador pide que reinicies Chromium para aplicar una actualización. La ventana de Incógnito no se volverá a abrir.}other{Tu administrador pide que reinicies Chromium para aplicar una actualización. Las # ventanas de Incógnito no se volverán a abrir.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_et.xtb b/chrome/app/resources/chromium_strings_et.xtb
index 4c4806f..3782659 100644
--- a/chrome/app/resources/chromium_strings_et.xtb
+++ b/chrome/app/resources/chromium_strings_et.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Uue Chromiumi profiili seadistamine</translation>
 <translation id="1396446129537741364">Chromium püüab paroole kuvada.</translation>
 <translation id="1414495520565016063">Olete Chromiumi sisse logitud.</translation>
-<translation id="1493803763272692301">Kasutage Chromiumi kõiki funktsioone</translation>
 <translation id="1524282610922162960">Chromiumi vahekaardi jagamine</translation>
 <translation id="1553461853655228091">Chromium vajab luba teie kaamerale juurdepääsemiseks, et luua teid ümbritsevast 3D-kaart</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administraator nõuab, et käivitaksite Chromiumi värskenduse rakendamiseks uuesti}=1{Administraator nõuab, et käivitaksite Chromiumi värskenduse rakendamiseks uuesti. Teie inkognito akent ei avata uuesti.}other{Administraator nõuab, et käivitaksite Chromiumi värskenduse rakendamiseks uuesti. Teie # inkognito akent ei avata uuesti.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">Saate oma sisselogitud Google'i kontosid hallata. Teie Google'i kontosid kasutatakse Chromiumi brauseris, Play poes, Gmailis ja mujal. Kui soovite lisada konto kellegi teise (näiteks pereliikme) jaoks, lisage selle asemel oma seadmesse <ph name="DEVICE_TYPE" /> uus inimene. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Saidid võivad talletada Chromiumisse teavet teie huvide kohta. Näiteks kui külastate saiti, et osta maratoni jooksmiseks jalatseid, võib sait määratleda teie huviks maratonijooksu. Kui külastate hiljem jooksule registreerumiseks muud saiti, võib see sait näidata teile teie huvide alusel jooksujalatsite reklaami.</translation>
 <translation id="1881322772814446296">Logite sisse hallatud kontoga ja annate selle administraatorile üle Chromiumi profiili juhtimise. Teie Chromiumi andmed, näiteks rakendused, järjehoidjad, ajalugu, paroolid ja muud seaded seotakse jäädavalt kasutajaga <ph name="USER_NAME" />. Saate need andmed kustutada Google'i kontode juhtpaneeli kaudu, kuid te ei saa neid seostada teise kontoga. Võite olemasolevate Chrome'i andmete eraldi hoidmiseks luua aga uue profiili. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Kui sisestate aadressiribale või otsingukasti teksti, saadab Chromium sisestatud teksti üksusesoovituste hankimiseks Google Drive’i. See on inkognito režiimis välja lülitatud.</translation>
 <translation id="1911763535808217981">Kui selle välja lülitate, saate Google'i saitidele (nt Gmaili) sisse logida ilma Chromiumisse sisse logimata</translation>
 <translation id="1929939181775079593">Chromium ei reageeri. Kas soovite kohe taaskäivitada?</translation>
 <translation id="193439633299369377">Chromium OS tuleb värskenduse rakendamiseks taaskäivitada.</translation>
diff --git a/chrome/app/resources/chromium_strings_eu.xtb b/chrome/app/resources/chromium_strings_eu.xtb
index 553aad6..5a4f94e8 100644
--- a/chrome/app/resources/chromium_strings_eu.xtb
+++ b/chrome/app/resources/chromium_strings_eu.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Konfiguratu Chromium-eko profil berria</translation>
 <translation id="1396446129537741364">Chromium pasahitzak erakusten saiatzen ari da.</translation>
 <translation id="1414495520565016063">Chromium-en saioa hasi duzu.</translation>
-<translation id="1493803763272692301">Atera ahalik eta etekin handiena Chromium-i</translation>
 <translation id="1524282610922162960">Partekatu Chromium-eko fitxa bat</translation>
 <translation id="1553461853655228091">Chromium-ek kamera erabiltzeko baimena behar du, ingurunearen hiru dimentsioko mapa bat sortzeko</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Chromium berrabiaraz dezazun behar du administratzaileak, eguneratzea aplikatzeko}=1{Chromium berrabiaraz dezazun behar du administratzaileak, eguneratzea aplikatzeko. Ezkutuko moduko leihoa ez da berriro irekiko.}other{Chromium berrabiaraz dezazun behar du administratzaileak, eguneratzea aplikatzeko. Ezkutuko moduko # leihoak ez dira berriro irekiko.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb
index 9450cc7..12b1bc4b 100644
--- a/chrome/app/resources/chromium_strings_fa.xtb
+++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">‏راه‌اندازی نمایه Chromium جدید</translation>
 <translation id="1396446129537741364">‏Chromium می‌خواهد گذرواژه‌ها را نشان دهد.</translation>
 <translation id="1414495520565016063">‏شما وارد سیستم Chromium شدید!</translation>
-<translation id="1493803763272692301">‏می‌توانید از Chromium نهایت استفاده را ببرید</translation>
 <translation id="1524282610922162960">‏هم‌رسانی برگه Chromium</translation>
 <translation id="1553461853655228091">‏Chromium برای ایجاد نقشه سه‌بعدی محیط شما باید اجازه دسترسی به دوربین داشته باشد</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید}=1{‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید. پنجره ناشناس بازگشایی نمی‌شود.}one{‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید. # پنجره ناشناس بازگشایی نمی‌شود.}other{‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید. # پنجره ناشناس بازگشایی نمی‌شود.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb
index b31d92eb..ebc3bb4c 100644
--- a/chrome/app/resources/chromium_strings_fi.xtb
+++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Luo uusi Chromium-profiili</translation>
 <translation id="1396446129537741364">Chromium yrittää näyttää salasanat.</translation>
 <translation id="1414495520565016063">Olet kirjautunut Chromiumiin!</translation>
-<translation id="1493803763272692301">Saat eniten irti Chromiumista</translation>
 <translation id="1524282610922162960">Jaa Chromium-välilehti</translation>
 <translation id="1553461853655228091">Chromium tarvitsee luvan käyttää kameraasi ympäristön 3D-kartoittamiseen</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Ylläpitäjä vaatii Chromiumin uudelleenkäynnistystä, jotta päivitys voidaan ottaa käyttöön.}=1{Ylläpitäjä vaatii Chromiumin uudelleenkäynnistystä, jotta päivitys voidaan ottaa käyttöön. Incognito-ikkunaasi ei avata uudelleen.}other{Ylläpitäjä vaatii Chromiumin uudelleenkäynnistystä, jotta päivitys voidaan ottaa käyttöön. # incognito-ikkunaasi ei avata uudelleen.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">Voit ylläpitää sisäänkirjautuneita Google-tilejäsi. Google-tilejäsi käytetään Chromium-selaimella, Play Kaupassa ja muualla. Jos haluat lisätä tilin jollekulle toiselle, esim. perheenjäsenelle, lisää tämän sijasta uusi henkilö laitteelle (<ph name="DEVICE_TYPE" />). <ph name="LINK_BEGIN" />Lue lisää<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Sivustot voivat tallentaa Chromiumiin tietoja kiinnostuksen kohteistasi. Jos esimerkiksi käyt sivustolla, koska haluat ostaa kengät maratonia varten, sivusto voi määritellä maratonjuoksun sinua kiinnostavaksi aiheeksi. Jos myöhemmin käyt toisella sivustolla, jolla ilmoittaudut juoksukilpailuun, kyseinen sivusto voi näyttää sinulle mainoksen juoksukengistä kiinnostuksen kohteidesi perusteella.</translation>
 <translation id="1881322772814446296">Olet kirjautumassa sisään hallinnoidulla tilillä ja antamassa tilin järjestelmänvalvojalle oikeuden hallita Chromium-profiiliasi. Chromium-tietosi, kuten sovelluksesi, kirjanmerkkisi, historiasi, salasanasi ja muut asetuksesi, yhdistetään pysyvästi käyttäjätiliin <ph name="USER_NAME" />. Voit poistaa nämä tiedot Google-tilien Hallintapaneelissa, mutta et voi liittää tietoja toiseen tiliin. Halutessasi voit luoda uuden profiilin, jolloin aiemmat Chromium-tietosi pysyvät erillään. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Kun kirjoitat osoitepalkkiin tai hakukenttään, Chromium lähettää kirjoittamasi tekstin Google Driveen, niin saat ehdotuksia. Tämä on poissa päältä incognito-tilassa.</translation>
 <translation id="1911763535808217981">Poistamalla tämän käytöstä voit kirjautua Google-sivustoille, esim. Gmailiin, kirjautumatta Chromiumiin.</translation>
 <translation id="1929939181775079593">Chromium ei vastaa. Käynnistetäänkö uudelleen?</translation>
 <translation id="193439633299369377">Chromium-käyttöjärjestelmä täytyy käynnistää uudelleen, jotta päivitys voidaan ottaa käyttöön.</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb
index aa7471d..49f8f4220 100644
--- a/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">I-set up ang iyong bagong profile sa Chromium</translation>
 <translation id="1396446129537741364">Sinusubukan ng Chromium na magpakita ng mga password.</translation>
 <translation id="1414495520565016063">Naka-sign in ka sa Chromium!</translation>
-<translation id="1493803763272692301">Masusulit mo ang Chromium</translation>
 <translation id="1524282610922162960">Magbahagi ng tab ng Chromium</translation>
 <translation id="1553461853655228091">Kailangan ng Chromium ng access sa iyong camera para gumawa ng 3D na mapa ng kapaligiran mo</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Ipinag-aatas ng iyong administrator na ilunsad mo ulit ang Chromium para mailapat ang isang update}=1{Ipinag-aatas ng iyong administrator na ilunsad mo ulit ang Chromium para mailapat ang isang update. Hindi bubukas ulit ang iyong Incognito window.}one{Ipinag-aatas ng iyong administrator na ilunsad mo ulit ang Chromium para mailapat ang isang update. Hindi bubukas ulit ang iyong # Incognito window.}other{Ipinag-aatas ng iyong administrator na ilunsad mo ulit ang Chromium para mailapat ang isang update. Hindi bubukas ulit ang iyong # na Incognito window.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_fr-CA.xtb b/chrome/app/resources/chromium_strings_fr-CA.xtb
index 6311976..0c219a7 100644
--- a/chrome/app/resources/chromium_strings_fr-CA.xtb
+++ b/chrome/app/resources/chromium_strings_fr-CA.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Configurer votre nouveau profil Chromium</translation>
 <translation id="1396446129537741364">Chromium essaie d'afficher les mots de passe.</translation>
 <translation id="1414495520565016063">Vous êtes connecté à Chromium!</translation>
-<translation id="1493803763272692301">Vous pouvez profiter au maximum de Chromium</translation>
 <translation id="1524282610922162960">Partager un onglet de Chromium</translation>
 <translation id="1553461853655228091">Chromium a besoin de votre autorisation pour accéder à votre appareil photo afin de créer une carte 3D de votre environnement</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Votre administrateur exige que vous relanciez Chromium pour appliquer une mise à jour}=1{Votre administrateur exige que vous relanciez Chromium pour appliquer une mise à jour. Votre fenêtre de navigation privée ne sera pas rouverte.}one{Votre administrateur exige que vous relanciez Chromium pour appliquer une mise à jour. Votre fenêtre de navigation privée ne sera pas rouverte.}other{Votre administrateur exige que vous relanciez Chromium pour appliquer une mise à jour. Vos # fenêtres de navigation privée ne seront pas rouvertes.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb
index 811ba43..5f525e3 100644
--- a/chrome/app/resources/chromium_strings_fr.xtb
+++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -15,7 +15,6 @@
 <translation id="1315551408014407711">Configurer votre nouveau profil Chromium</translation>
 <translation id="1396446129537741364">Tentative d'affichage des mots de passe dans Chromium</translation>
 <translation id="1414495520565016063">Vous êtes connecté à Chromium.</translation>
-<translation id="1493803763272692301">Profitez pleinement de Chromium</translation>
 <translation id="1524282610922162960">Partager un onglet Chromium</translation>
 <translation id="1553461853655228091">Chromium a besoin de votre autorisation pour accéder à votre appareil photo et créer un plan 3D de votre environnement</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{À la demande de votre administrateur, vous devez relancer Chromium pour installer une mise à jour}=1{À la demande de votre administrateur, vous devez relancer Chromium pour installer une mise à jour. Sachez que la fenêtre de navigation privée ne sera pas rouverte.}one{À la demande de votre administrateur, vous devez relancer Chromium pour installer une mise à jour. Sachez que la fenêtre de navigation privée (#) ne sera pas rouverte.}other{À la demande de votre administrateur, vous devez relancer Chromium pour installer une mise à jour. Sachez que les # fenêtres de navigation privée ne seront pas rouvertes.}}</translation>
@@ -32,6 +31,7 @@
 <translation id="185970820835152459">Vous pouvez gérer les comptes Google auxquels vous êtes connecté. Ils vous permettent d'accéder au navigateur Chromium, au Play Store, à Gmail, etc. Pour ajouter le compte d'une autre personne, comme un membre de votre famille, ajoutez un nouvel utilisateur à votre <ph name="DEVICE_TYPE" /> à la place. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Les sites peuvent stocker des informations sur vos centres d'intérêt dans Chromium. Par exemple, si vous allez sur un site afin d'acheter des chaussures pour un marathon, le site peut définir le marathon comme l'un de vos centres d'intérêt. Ensuite, si vous consultez un autre site pour vous enregistrer pour une course, ce site peut diffuser une annonce pour des chaussures de running en se basant sur vos centres d'intérêt.</translation>
 <translation id="1881322772814446296">Vous vous connectez avec un compte géré et donnez le contrôle de votre profil Chromium à son administrateur. Vos données Chromium, telles que les applications, les favoris, l'historique, les mots de passe et les autres paramètres, vont être définitivement associées à <ph name="USER_NAME" />. Vous pouvez supprimer ces données via le tableau de bord des comptes Google, mais vous ne pouvez pas les associer à un autre compte. Vous pouvez éventuellement créer un nouveau profil pour maintenir vos données Chromium séparées. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Lorsque vous saisissez du texte dans la barre d'adresse ou dans le champ de recherche, Chromium envoie ce que vous saisissez à Google Drive pour obtenir des suggestions d'éléments. Ce paramètre est désactivé en navigation privée.</translation>
 <translation id="1911763535808217981">Désactiver cette option vous permet de vous connecter à des sites Google tels que Gmail sans vous connecter à Chromium</translation>
 <translation id="1929939181775079593">Chromium ne répond pas. Voulez-vous le relancer maintenant ?</translation>
 <translation id="193439633299369377">Redémarrez Chromium OS pour appliquer la mise à jour.</translation>
diff --git a/chrome/app/resources/chromium_strings_gl.xtb b/chrome/app/resources/chromium_strings_gl.xtb
index 1300f59..fb31c036 100644
--- a/chrome/app/resources/chromium_strings_gl.xtb
+++ b/chrome/app/resources/chromium_strings_gl.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Configura o teu novo perfil de Chromium</translation>
 <translation id="1396446129537741364">Chromium está tentando mostrar contrasinais.</translation>
 <translation id="1414495520565016063">Iniciaches sesión en Chromium.</translation>
-<translation id="1493803763272692301">Podes gozar ao máximo de Chromium</translation>
 <translation id="1524282610922162960">Compartir unha pestana de Chromium</translation>
 <translation id="1553461853655228091">Chromium necesita permiso para acceder á cámara co fin de crear un mapa 3D do que te rodea</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{O teu administrador require que reinicies Chromium para aplicar unha actualización}=1{O teu administrador require que reinicies Chromium para aplicar unha actualización. A ventá do modo de incógnito non se volverá abrir.}other{O teu administrador require que reinicies Chromium para aplicar unha actualización. As # ventás do modo de incógnito non se volverán abrir.}}</translation>
@@ -33,6 +32,7 @@
 <translation id="185970820835152459">Podes xestionar as Contas de Google nas que teñas a sesión iniciada. As túas Contas de Google úsanse para o navegador Chromium, Play Store, Gmail e moito máis. Se queres engadir unha conta para outra persoa, como un familiar, engade unha persoa nova ao teu dispositivo (<ph name="DEVICE_TYPE" />). <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Os sitios poden almacenar con Chromium información sobre os teus intereses. Por exemplo, se visitas un sitio para comprar zapatillas deportivas para un maratón, ese sitio podería determinar que che interesa correr maratóns. Máis tarde, se visitas un sitio distinto que che permite rexistrarte para participar nunha carreira, pode mostrárseche nel un anuncio de zapatillas deportivas baseado nos teus intereses.</translation>
 <translation id="1881322772814446296">Estás iniciando sesión cunha conta xestionada e outorgando control ao seu administrador sobre o teu perfil de Chromium. Os teus datos de Chromium, como as túas aplicacións, marcadores, historial, contrasinais e outras configuracións ligaranse permanentemente a <ph name="USER_NAME" />. Poderás eliminar estes datos a través do Panel de control das contas de Google, pero non poderás asociar estes datos a outra conta. Tamén podes crear un perfil novo para manter separados os teus datos de Chromium existentes. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Cando escribes algo na barra de enderezos ou na caixa de busca, Chromium envíao a Google Drive para mostrarche suxestións de elementos. Esta opción está desactivada no modo de incógnito.</translation>
 <translation id="1911763535808217981">Ao desactivar esta opción, podes iniciar sesión nos sitios de Google, como Gmail, sen iniciar sesión en Chromium</translation>
 <translation id="1929939181775079593">Chromium non responde. Queres volver inicialo agora?</translation>
 <translation id="193439633299369377">É necesario reiniciar Chromium OS para aplicar a actualización.</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb
index 8bb2442e..a8f051d 100644
--- a/chrome/app/resources/chromium_strings_gu.xtb
+++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">તમારી નવી Chromium પ્રોફાઇલ સેટઅપ કરો</translation>
 <translation id="1396446129537741364">Chromium પાસવર્ડ્સ બતાવવાનો પ્રયાસ કરી રહ્યું છે.</translation>
 <translation id="1414495520565016063">તમે Chromium માં સાઇન ઇન કર્યું છે!</translation>
-<translation id="1493803763272692301">તમે Chromiumનો મહત્તમ લાભ મેળવી શકો છો</translation>
 <translation id="1524282610922162960">Chromium ટૅબ શેર કરો</translation>
 <translation id="1553461853655228091">તમારા આસપાસનો 3D નકશો બનાવવા માટે, Chromiumને તમારા કૅમેરાના ઍક્સેસની પરવાનગી જરૂરી છે</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{અપડેટ લાગુ કરવા માટે તમે Chromiumને ફરીથી લૉન્ચ કરો એવું તમારા વ્યવસ્થાપક ઇચ્છે છે}=1{અપડેટ લાગુ કરવા માટે તમે Chromiumને ફરીથી લૉન્ચ કરો એવું તમારા વ્યવસ્થાપક ઇચ્છે છે. તમારી છુપી વિન્ડો ફરીથી ખૂલશે નહીં.}one{અપડેટ લાગુ કરવા માટે તમે Chromiumને ફરીથી લૉન્ચ કરો એવું તમારા વ્યવસ્થાપક ઇચ્છે છે. તમારી # છુપી વિન્ડો ફરીથી ખૂલશે નહીં.}other{અપડેટ લાગુ કરવા માટે તમે Chromiumને ફરીથી લૉન્ચ કરો એવું તમારા વ્યવસ્થાપક ઇચ્છે છે. તમારી # છુપી વિન્ડો ફરીથી ખૂલશે નહીં.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb
index df81af67..7bd39af 100644
--- a/chrome/app/resources/chromium_strings_hi.xtb
+++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">क्रोमियम पर अपनी नई प्रोफ़ाइल सेट अप करें</translation>
 <translation id="1396446129537741364">क्रोमियम पासवर्ड दिखाने का प्रयास कर रहा है.</translation>
 <translation id="1414495520565016063">आप क्रोमियम में प्रवेश हैं!</translation>
-<translation id="1493803763272692301">Chromium की सुविधाओं का ज़्यादा से ज़्यादा फ़ायदा लिया जा सकता है</translation>
 <translation id="1524282610922162960">क्रोमियम का टैब शेयर करें</translation>
 <translation id="1553461853655228091">क्रोमियम को आपके आस-पास की जगह का 3D मैप बनाने के लिए, कैमरा ऐक्सेस करने की अनुमति चाहिए</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम को फिर से लॉन्च करें}=1{आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम को फिर से लॉन्च करें. आपकी गुप्त विंडो फिर से नहीं खुलेगी.}one{आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम को फिर से लॉन्च करें. आपकी # गुप्त विंडो फिर से नहीं खुलेंगी.}other{आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम को फिर से लॉन्च करें. आपकी # गुप्त विंडो फिर से नहीं खुलेंगी.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb
index f20fcef..e15f4602 100644
--- a/chrome/app/resources/chromium_strings_hr.xtb
+++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Postavite novi profil u Chromiumu</translation>
 <translation id="1396446129537741364">Chromium pokušava prikazati zaporke.</translation>
 <translation id="1414495520565016063">Prijavljeni ste na Chromium!</translation>
-<translation id="1493803763272692301">Iskoristite sve prednosti Chromiuma</translation>
 <translation id="1524282610922162960">Dijeljenje kartice Chromium</translation>
 <translation id="1553461853655228091">Chromium treba dopuštenje za pristup kameri radi izrade 3D karte vašeg okruženja</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Vaš administrator zahtijeva da ponovno pokrenete Chromium radi primjene ažuriranja}=1{Vaš administrator zahtijeva da ponovno pokrenete Chromium radi primjene ažuriranja. Anonimni se prozor neće ponovno otvoriti.}one{Vaš administrator zahtijeva da ponovno pokrenete Chromium radi primjene ažuriranja. Vaš # anonimni prozor neće se ponovno otvoriti.}few{Vaš administrator zahtijeva da ponovno pokrenete Chromium radi primjene ažuriranja. Vaša # anonimna prozora neće se ponovno otvoriti.}other{Vaš administrator zahtijeva da ponovno pokrenete Chromium radi primjene ažuriranja. Vaših # anonimnih prozora neće se ponovno otvoriti.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index 2800cff1..82e8b9c9 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Új Chromium-profil beállítása</translation>
 <translation id="1396446129537741364">A Chromium megpróbálja megjeleníteni a jelszavakat.</translation>
 <translation id="1414495520565016063">Bejelentkezett a Chromiumba.</translation>
-<translation id="1493803763272692301">Kihozhatja a legtöbbet a Chromiumból</translation>
 <translation id="1524282610922162960">Chromium-lap megosztása</translation>
 <translation id="1553461853655228091">A Chromiumnak engedélyre van szüksége a kamerájához való hozzáféréshez annak érdekében, hogy 3D-s térképet készíthessen az Ön környezetéről.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{A rendszergazda előírta, hogy újra kell indítania a Chromiumot a frissítés alkalmazásához.}=1{A rendszergazda előírta, hogy újra kell indítania a Chromiumot a frissítés alkalmazásához. Az inkognitó ablak nem fog újra megnyílni.}other{A rendszergazda előírta, hogy újra kell indítania a Chromiumot a frissítés alkalmazásához. A(z) # inkognitó ablak nem fog újra megnyílni.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_hy.xtb b/chrome/app/resources/chromium_strings_hy.xtb
index a53710a..92179409 100644
--- a/chrome/app/resources/chromium_strings_hy.xtb
+++ b/chrome/app/resources/chromium_strings_hy.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Կարգավորեք Chromium-ի ձեր նոր պրոֆիլը</translation>
 <translation id="1396446129537741364">Chromium-ը փորձում է ցուցադրել գաղտնաբառերը:</translation>
 <translation id="1414495520565016063">Դուք մուտք եք գործել Chromium:</translation>
-<translation id="1493803763272692301">Դուք կկարողանաք օգտվել Chromium-ի բոլոր գործառույթներից</translation>
 <translation id="1524282610922162960">Կիսվեք Chromium-ի ներդիրով</translation>
 <translation id="1553461853655228091">Chromium-ին անհրաժեշտ է տեսախցիկն օգտագործելու թույլտվություն՝ ձեր շրջակայքի եռաչափ քարտեզը ստեղծելու համար։</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Թարմացումը կիրառելու համար ադմինիստրատորը պահանջում է վերագործարկել Chromium-ը}=1{Թարմացումը կիրառելու համար ադմինիստրատորը պահանջում է վերագործարկել Chromium-ը։ Ձեր ինկոգնիտո պատուհանը նորից չի բացվի։}one{Թարմացումը կիրառելու համար ադմինիստրատորը պահանջում է վերագործարկել Chromium-ը։ Ձեր # ինկոգնիտո պատուհանը նորից չի բացվի։}other{Թարմացումը կիրառելու համար ադմինիստրատորը պահանջում է վերագործարկել Chromium-ը։ Ձեր # ինկոգնիտո պատուհանները նորից չեն բացվի։}}</translation>
@@ -33,6 +32,7 @@
 <translation id="185970820835152459">Դուք կարող եք կառավարել ձեր Google հաշիվները, որոնցում մուտք եք գործել։ Դրանք օգտագործվում են Chromium դիտարկիչում, Play Խանութում, Gmail-ում և այլ ծառայություններում։ Եթե ուզում եք ընտանեկան խմբի անդամի կամ մեկ ուրիշի համար հաշիվ ավելացնել, <ph name="DEVICE_TYPE" /> սարքում ավելացրեք նոր օգտատեր։ <ph name="LINK_BEGIN" />Իմանալ ավելին<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Կայքերը կարող են ձեր հետաքրքրությունների մասին տեղեկություններ պահել Chromium-ում։ Օրինակ, եթե դուք այցելել եք ինչ-որ կայք՝ մարաթոնի համար վազքի կոշիկներ գնելու, այդ կայքը կորոշի, որ ձեզ հետաքրքրում է մարաթոնյան վազքը։ Ավելի ուշ, երբ դուք այցելեք մեկ այլ կայք՝ մրցավազքի համար գրանցվելու, այնտեղ կարող է վազքի կոշիկների գովազդ ցուցադրվել։</translation>
 <translation id="1881322772814446296">Դուք մուտք եք գործում վերահսկվող հաշիվ` թույլ տալով ադմինիստրատորին վերահսկել ձեր Chromium պրոֆիլը: Ձեր Chromium տվյալները, ինչպես օրինակ՝ հավելվածները, էջանիշները, պատմությունը, գաղտնաբառերը և այլ կարգավորումները մշտապես կկցվեն <ph name="USER_NAME" />-ին: Դուք կարող եք ջնջել այս տվյալները Google Dashboard-ի միջոցով, սակայն չեք կարող համակցել այս տվյալները այլ հաշվի հետ: Կարող եք ստեղծել նոր պրոֆիլ՝ ձեր առկա Chromium տվյալներն առանձին պահելու համար: <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Երբ դուք տեքստ եք մուտքագրում հասցեագոտում կամ որոնման դաշտում, Chromium-ը ձեր հարցումն ուղարկում է Google Drive-ին՝ ավելի լավ առաջարկներ ստանալու համար։ Այս գործառույթն անջատված է ինկոգնիտո ռեժիմում։</translation>
 <translation id="1911763535808217981">Անջատելով այս գործառույթը՝ դուք կարող եք մտնել հաշիվ Google-ի կայքերում, օրինակ՝ Gmail, առանց մուտք գործելու Chromium:</translation>
 <translation id="1929939181775079593">Chromium-ը չի պատասխանում: Վերագործարկե՞լ:</translation>
 <translation id="193439633299369377">Թարմացումը կիրառելու համար հարկավոր է վերագործարկել ChromiumOS-ը։</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb
index dceeac6..52f98fa4 100644
--- a/chrome/app/resources/chromium_strings_id.xtb
+++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Siapkan profil Chromium baru Anda</translation>
 <translation id="1396446129537741364">Chromium mencoba menampilkan sandi.</translation>
 <translation id="1414495520565016063">Anda sudah masuk ke Chromium!</translation>
-<translation id="1493803763272692301">Anda dapat menikmati manfaat optimal Chromium</translation>
 <translation id="1524282610922162960">Bagikan tab Chromium</translation>
 <translation id="1553461853655228091">Chromium memerlukan izin untuk mengakses kamera guna membuat peta 3D untuk area di sekeliling Anda.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administrator mewajibkan Anda meluncurkan kembali Chromium untuk menerapkan update}=1{Administrator mewajibkan Anda meluncurkan kembali Chromium untuk menerapkan update. Jendela Samaran Anda tidak akan dibuka kembali.}other{Administrator mewajibkan Anda meluncurkan kembali Chromium untuk menerapkan update. # jendela Samaran Anda tidak akan dibuka kembali.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_is.xtb b/chrome/app/resources/chromium_strings_is.xtb
index 4dbf0c6..26c3f65 100644
--- a/chrome/app/resources/chromium_strings_is.xtb
+++ b/chrome/app/resources/chromium_strings_is.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Settu upp nýja Chromium prófílinn þinn</translation>
 <translation id="1396446129537741364">Chromium er að reyna að birta aðgangsorð.</translation>
 <translation id="1414495520565016063">Þú ert skráð(ur) inn á Chromium!</translation>
-<translation id="1493803763272692301">Þú getur nýtt Chromium til fulls</translation>
 <translation id="1524282610922162960">Deila Chromium flipa</translation>
 <translation id="1553461853655228091">Chromium þarf leyfi til að nota myndavélina til að búa til þrívíddarkort af umhverfinu</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Kerfisstjórinn þinn gerir kröfu um að þú endurræsir Chromium til að setja upp uppfærslu}=1{Kerfisstjórinn þinn gerir kröfu um að þú endurræsir Chromium til að setja upp uppfærslu. Huliðsglugginn enduropnast ekki.}one{Kerfisstjórinn þinn gerir kröfu um að þú endurræsir Chromium til að setja upp uppfærslu. # huliðsgluggi enduropnast ekki.}other{Kerfisstjórinn þinn gerir kröfu um að þú endurræsir Chromium til að setja upp uppfærslu. # huliðsgluggar enduropnast ekki.}}</translation>
@@ -33,6 +32,7 @@
 <translation id="185970820835152459">Þú getur stjórnað innskráðum Google reikningum þínum. Google reikningarnir þínir eru notaðir fyrir Chromium vafrann, Play Store, Gmail og fleira. Ef þú vilt bæta við reikningi fyrir einhvern annan, t.d. fjölskyldumeðlim, skaltu frekar bæta nýjum einstaklingi við <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Vefsvæði geta vistað upplýsingar um áhugasvið þín í Chromium. Ef þú heimsækir til dæmis vefsvæði til að kaupa skó fyrir maraþonhlaup kann vefsvæðið að skilgreina maraþonhlaup sem áhugasvið þitt. Ef þú heimsækir svo annað vefsvæði síðar meir til að skrá þig í hlaup getur viðkomandi vefsvæði birt þér auglýsingu um hlaupaskó í samræmi við áhugasvið þitt.</translation>
 <translation id="1881322772814446296">Þú ert að skrá þig inn með stýrðum reikningi og veitir stjórnanda hans vald yfir Chromium prófílnum þínum. Chromium gögnin þín, s.s. forrit, bókamerki, ferill, aðgangsorð og aðrar stillingar, verða tengd varanlega við <ph name="USER_NAME" />. Þú getur eytt þessum gögnum á stjórnborði Google reikninga en getur ekki tengt þau öðrum reikningi. Þér er frjálst að búa til nýjan prófíl til að halda fyrirliggjandi Chromium gögnum aðskildum. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Þegar þú skrifar í veffangastikuna eða leitarreitinn sendir Chromium það sem þú skrifar á Google Drive til að fá tillögur að atriðum. Slökkt er á þessu í huliðsstillingu.</translation>
 <translation id="1911763535808217981">Með því að slökkva á þessu geturðu skráð þig inn á Google vefsvæði eins og Gmail án þess að skrá þig inn í Chromium</translation>
 <translation id="1929939181775079593">Chromium svarar ekki. Viltu endurræsa núna?</translation>
 <translation id="193439633299369377">Endurræsa þarf ChromiumOS til að nota uppfærsluna.</translation>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb
index 46670fd..668603e3 100644
--- a/chrome/app/resources/chromium_strings_it.xtb
+++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Configura il tuo nuovo profilo di Chromium</translation>
 <translation id="1396446129537741364">Chromium sta cercando di visualizzare le password.</translation>
 <translation id="1414495520565016063">Hai eseguito l'accesso a Chromium.</translation>
-<translation id="1493803763272692301">Puoi goderti al meglio l'esperienza di Chromium</translation>
 <translation id="1524282610922162960">Condividi una scheda di Chromium</translation>
 <translation id="1553461853655228091">Chromium ha bisogno dell'autorizzazione ad accedere alla fotocamera per creare una mappa 3D dell'ambiente circostante</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{L'amministratore richiede il riavvio di Chromium per installare un aggiornamento}=1{L'amministratore richiede il riavvio di Chromium per installare un aggiornamento. La finestra di navigazione in incognito non verrà riaperta.}other{L'amministratore richiede il riavvio di Chromium per installare un aggiornamento. Le # finestre di navigazione in incognito non verranno riaperte.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">Puoi gestire gli Account Google a cui hai eseguito l'accesso. I tuoi Account Google vengono usati per il browser Chromium, il Play Store, Gmail e altro ancora. Se vuoi aggiungere un account per qualcun altro, come un membro del gruppo Famiglia, aggiungi invece una nuova persona a <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Scopri di più<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">I siti possono memorizzare su Chromium informazioni relative ai tuoi interessi. Ad esempio, se visiti un sito per acquistare scarpe per una maratona, il sito potrebbe definire come tuo interesse le maratone. Se in un secondo momento visiti un altro sito per registrarti a una gara, il sito può mostrarti un annuncio relativo a scarpe da corsa in base ai tuoi interessi.</translation>
 <translation id="1881322772814446296">Stai per accedere con un account gestito e per dare al relativo amministratore il controllo del tuo profilo Chromium. I tuoi dati di Chromium, come app, Preferiti, cronologia, password e altre impostazioni, verranno collegati definitivamente a <ph name="USER_NAME" />. Potrai eliminare questi dati tramite la Dashboard di Google Account, ma non potrai associare questi dati a un altro account. Se preferisci puoi creare un nuovo profilo per mantenere separati i dati di Chromium esistenti. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Quando digiti nella barra degli indirizzi o nella casella di ricerca, Chromium invia ciò che digiti a Google Drive per ricevere suggerimenti sugli elementi. Questa opzione è disattivata in incognito.</translation>
 <translation id="1911763535808217981">Se disattivi questa funzione, puoi accedere ai siti Google quali Gmail senza accedere a Chromium</translation>
 <translation id="1929939181775079593">Chromium non risponde. Riavviarlo ora?</translation>
 <translation id="193439633299369377">Per applicare l'aggiornamento è necessario riavviare Chromium OS.</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb
index 25cd2b8..c54d300 100644
--- a/chrome/app/resources/chromium_strings_iw.xtb
+++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">‏הגדרת הפרופיל החדש שלך ב-Chromium</translation>
 <translation id="1396446129537741364">‏Chromium מנסה להציג סיסמאות.</translation>
 <translation id="1414495520565016063">‏נכנסת ל-Chromium!</translation>
-<translation id="1493803763272692301">‏אפשר ליהנות מהמיטב של Chromium</translation>
 <translation id="1524282610922162960">‏שיתוף כרטיסיית Chromium</translation>
 <translation id="1553461853655228091">‏Chromium זקוק להרשאת גישה למצלמה כדי ליצור מפה תלת-ממדית של הסביבה שלך</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{‏מנהל המערכת מבקש להפעיל מחדש את Chromium כדי להחיל עדכון}=1{‏מנהל המערכת מבקש להפעיל מחדש את Chromium כדי להחיל עדכון. החלון האנונימי לא ייפתח מחדש.}one{‏מנהל המערכת מבקש להפעיל מחדש את Chromium כדי להחיל עדכון. # החלונות האנונימיים לא ייפתחו מחדש.}two{‏מנהל המערכת מבקש להפעיל מחדש את Chromium כדי להחיל עדכון. # החלונות האנונימיים לא ייפתחו מחדש.}other{‏מנהל המערכת מבקש להפעיל מחדש את Chromium כדי להחיל עדכון. # החלונות האנונימיים לא ייפתחו מחדש.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">‏יש לך אפשרות לנהל את חשבונות Google שאליהם נכנסת. כדי ליהנות מחיבור לחשבון בדפדפן Chromium, בחנות Play, ב-‏Gmail ובשירותים נוספים, עליך להיכנס עם חשבונות Google שלך. כדי להוסיף חשבון של מישהו אחר, כמו חבר/ה בקבוצה המשפחתית, יש להוסיף משתמש חדש ל-<ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">‏אתרים יכולים לשמור מידע ב-Chromium לגבי תחומי העניין שלך. לדוגמה, אם ביקרת באתר כדי לקנות נעליים למרתון, האתר עשוי להגדיר 'ריצת מרתון' כתחום עניין שלך. לאחר מכן, בביקור באתר שונה, למשל כדי להירשם למרוץ, יכול להיות שתוצג לך מודעה לנעלי ריצה על סמך תחומי העניין שלך.</translation>
 <translation id="1881322772814446296">‏נכנסת עם חשבון מנוהל שנותן למנהל המערכת שלו שליטה על הפרופיל שלך ב-Chromium. הנתונים שלך ב-Chromium, כגון אפליקציות, סימניות, היסטוריה, סיסמאות והגדרות אחרות ייקשרו באופן קבוע ל-<ph name="USER_NAME" />. ניתן למחוק את הנתונים האלה באמצעות לוח הבקרה של חשבונות Google, אבל אי אפשר לשייך את הנתונים האלה לחשבון אחר. לחלופין, באפשרותך ליצור פרופיל חדש כדי לשמור את הנתונים הקיימים שלך ב-Chromium בנפרד.<ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">‏כשמקלידים טקסט בסרגל הכתובות או בתיבת החיפוש, Chromium שולח את הטקסט הזה ל-Google Drive כדי לקבל הצעות לפריטים. האפשרות הזו מושבתת במצב הפרטי.</translation>
 <translation id="1911763535808217981">‏כיבוי הגדרה זו יאפשר לך להיכנס לאתרי Google, כמו Gmail, בלי להיכנס אל Chromium</translation>
 <translation id="1929939181775079593">‏Chromium אינו מגיב. להפעיל מחדש עכשיו?</translation>
 <translation id="193439633299369377">‏צריך להפעיל מחדש את ChromiumOS כדי להחיל את העדכון הזה.</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index 6a49083..c5f3155 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">新しい Chromium プロファイルの設定</translation>
 <translation id="1396446129537741364">Chromium はパスワードを表示しようとしています。</translation>
 <translation id="1414495520565016063">Chromium にログインしました</translation>
-<translation id="1493803763272692301">Chromium を最大限に活用できます</translation>
 <translation id="1524282610922162960">Chromium タブの共有</translation>
 <translation id="1553461853655228091">周囲の 3D マップを作成するには、Chromium にカメラの使用を許可する必要があります</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{管理者が、アップデートを適用するために Chromium を再起動するよう求めています}=1{管理者が、アップデートを適用するために Chromium を再起動するよう求めています。シークレット ウィンドウは、再起動後は自動的には開きません。}other{管理者が、アップデートを適用するために Chromium を再起動するよう求めています。現在開いている # 個のシークレット ウィンドウは、再起動後は自動的には開きません。}}</translation>
diff --git a/chrome/app/resources/chromium_strings_ka.xtb b/chrome/app/resources/chromium_strings_ka.xtb
index 7b29458..4a10da1b 100644
--- a/chrome/app/resources/chromium_strings_ka.xtb
+++ b/chrome/app/resources/chromium_strings_ka.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">შექმენით ახალი Chromium პროფილი</translation>
 <translation id="1396446129537741364">Chromium ცდილობს პაროლების ჩვენებას.</translation>
 <translation id="1414495520565016063">თქვენ შესული ხართ Chromium-ში!</translation>
-<translation id="1493803763272692301">თქვენ საშუალება გაქვთ, Chromium-ის შესაძლებლობები მაქსიმალურად გამოიყენოთ</translation>
 <translation id="1524282610922162960">Chromium ჩანართის გაზიარება</translation>
 <translation id="1553461853655228091">Chromium საჭიროებს თქვენს კამერაზე წვდომის ნებართვას, თქვენი გარემოს 3-განზომილებიანი რუკის შექმნა რომ შეძლოს</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{განახლების მისასადაგებლად თქვენი ადმინისტრატორი მოითხოვს Chromium-ის ხელახლა გაშვებას}=1{განახლების მისასადაგებლად თქვენი ადმინისტრატორი მოითხოვს Chromium-ის ხელახლა გაშვებას. თქვენი ინკოგნიტო ფანჯარა ხელახლა არ გაიხსნება.}other{განახლების მისასადაგებლად თქვენი ადმინისტრატორი მოითხოვს Chromium-ის ხელახლა გაშვებას. თქვენი # ინკოგნიტო ფანჯარა ხელახლა არ გაიხსნება.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_kk.xtb b/chrome/app/resources/chromium_strings_kk.xtb
index a05f468..e7d94422 100644
--- a/chrome/app/resources/chromium_strings_kk.xtb
+++ b/chrome/app/resources/chromium_strings_kk.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Жаңа Chromium профилінің параметрлерін реттеу</translation>
 <translation id="1396446129537741364">Chromium құпия сөздерді көрсетпек.</translation>
 <translation id="1414495520565016063">Chromium жүйесіне кірдіңіз!</translation>
-<translation id="1493803763272692301">Chromium-ді толық қолдануға болады.</translation>
 <translation id="1524282610922162960">Chromium қойындысын бөлісу</translation>
 <translation id="1553461853655228091">Chromium браузеріне айналаңыздың 3D картасын жасау үшін камераны пайдалану рұқсаты керек.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Жаңартылған нұсқаны қолдану үшін әкімшіңіз Chromium браузерін қайта іске қосуыңызды талап етеді.}=1{Жаңартылған нұсқаны қолдану үшін әкімшіңіз Chromium браузерін қайта іске қосуыңызды талап етеді. Инкогнито терезесі қайта ашылмайды.}other{Жаңартылған нұсқаны қолдану үшін әкімшіңіз Chromium браузерін қайта іске қосуыңызды талап етеді. # инкогнито терезесі қайта ашылмайды.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_km.xtb b/chrome/app/resources/chromium_strings_km.xtb
index 8073664..116dae5 100644
--- a/chrome/app/resources/chromium_strings_km.xtb
+++ b/chrome/app/resources/chromium_strings_km.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">រៀបចំ​កម្រងព័ត៌មាន Chromium ថ្មី​របស់អ្នក</translation>
 <translation id="1396446129537741364">Chromium កំពុងព្យាយាមបង្ហាញពាក្យសម្ងាត់។</translation>
 <translation id="1414495520565016063">អ្នកបានចូលមកកាន់ Chromium!</translation>
-<translation id="1493803763272692301">អ្នកអាច​រីករាយ​នឹង​អត្ថប្រយោជន៍ច្រើនបំផុត​ពី Chromium</translation>
 <translation id="1524282610922162960">ចែករំលែក​ផ្ទាំង Chromium</translation>
 <translation id="1553461853655228091">Chromium ត្រូវការការអនុញ្ញាតចូលប្រើកាមេរ៉ារបស់អ្នក ដើម្បីបង្កើតផែនទី 3D នៃមជ្ឈដ្ឋានជុំវិញរបស់អ្នក</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{អ្នក​គ្រប់គ្រង​របស់អ្នក​តម្រូវឱ្យអ្នក​ចាប់ផ្ដើម Chromium ឡើងវិញ​ ដើម្បីប្រើ​កំណែថ្មី}=1{អ្នក​គ្រប់គ្រង​របស់អ្នក​តម្រូវឱ្យអ្នក​ចាប់ផ្ដើម Chromium ឡើងវិញ​ ដើម្បីប្រើ​កំណែថ្មី។ ផ្ទាំងឯកជនរបស់អ្នក​នឹង​មិនបើកឡើងវិញទេ។}other{អ្នក​គ្រប់គ្រង​របស់អ្នក​តម្រូវឱ្យអ្នក​ចាប់ផ្ដើម Chromium ឡើងវិញ​ ដើម្បីប្រើ​កំណែថ្មី។ ផ្ទាំងឯកជន # របស់អ្នក​នឹងមិន​បើកឡើងវិញទេ។}}</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index 8cf845a..06b3eb71 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">ನಿಮ್ಮ ಹೊಸ Chromium ಪ್ರೊಫೈಲ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ</translation>
 <translation id="1396446129537741364">Chromium ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ತೋರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation>
 <translation id="1414495520565016063">ನೀವು Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿರುವಿರಿ!</translation>
-<translation id="1493803763272692301">ನೀವು Chromium ನಿಂದ ಹೆಚ್ಚಿನದನ್ನು ಆನಂದಿಸಬಹುದು</translation>
 <translation id="1524282610922162960">Chromium ಟ್ಯಾಬ್ ಹಂಚಿಕೊಳ್ಳಿ</translation>
 <translation id="1553461853655228091">ನಿಮ್ಮ ಸುತ್ತಮುತ್ತಲಿನ ಪರಿಸರದ 3D ನಕ್ಷೆಯನ್ನು ರಚಿಸುವುದಕ್ಕಾಗಿ ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಪ್ರವೇಶಿಸಲು Chromium ಗೆ ಅನುಮತಿ ಬೇಕಾಗಿದೆ</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{ಅಪ್‌ಡೇಟ್‌ ಅನ್ವಯಿಸಲು ನೀವು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಬಯಸುತ್ತಾರೆ}=1{ಅಪ್‌ಡೇಟ್‌ ಅನ್ವಯಿಸಲು ನೀವು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಬಯಸುತ್ತಾರೆ. ನಿಮ್ಮ ಅಜ್ಞಾತ ವಿಂಡೋವನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.}one{ಅಪ್‌ಡೇಟ್‌ ಅನ್ವಯಿಸಲು ನೀವು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಬಯಸುತ್ತಾರೆ. ನಿಮ್ಮ # ಅಜ್ಞಾತ ವಿಂಡೋಗಳನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.}other{ಅಪ್‌ಡೇಟ್‌ ಅನ್ವಯಿಸಲು ನೀವು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಬಯಸುತ್ತಾರೆ. ನಿಮ್ಮ # ಅಜ್ಞಾತ ವಿಂಡೋಗಳನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb
index d7f5dc0..35475155 100644
--- a/chrome/app/resources/chromium_strings_ko.xtb
+++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">새 Chromium 프로필 설정</translation>
 <translation id="1396446129537741364">Chromium이 비밀번호를 표시하려고 합니다.</translation>
 <translation id="1414495520565016063">Chromium에 로그인했습니다.</translation>
-<translation id="1493803763272692301">Chromium을 최대한 활용하세요</translation>
 <translation id="1524282610922162960">Chromium 탭 공유</translation>
 <translation id="1553461853655228091">Chromium에서 주변 3D 지도를 만들려면 카메라 액세스 권한이 필요합니다.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{관리자의 요구에 따라 업데이트를 적용하려면 Chromium을 다시 실행해야 합니다.}=1{관리자의 요구에 따라 업데이트를 적용하려면 Chromium을 다시 실행해야 합니다. 시크릿 창이 다시 열리지 않습니다.}other{관리자의 요구에 따라 업데이트를 적용하려면 Chromium을 다시 실행해야 합니다. 시크릿 창 #개가 다시 열리지 않습니다.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_ky.xtb b/chrome/app/resources/chromium_strings_ky.xtb
index b9d31b1..3b17d85 100644
--- a/chrome/app/resources/chromium_strings_ky.xtb
+++ b/chrome/app/resources/chromium_strings_ky.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Жаңы Chromium профилин жөндөп алыңыз</translation>
 <translation id="1396446129537741364">Chromium сырсөздөрдү көрсөткөнгө аракет кылып жатат.</translation>
 <translation id="1414495520565016063">Chromium'га кирдиңиз!</translation>
-<translation id="1493803763272692301">Chromium'дун бардык мүмкүнчүлүктөрүн пайдалана аласыз</translation>
 <translation id="1524282610922162960">Chromium өтмөгүн бөлүшүү</translation>
 <translation id="1553461853655228091">Chromium айланаңыздын 3D картасын түзүү үчүн камераңызды колдонушу керек</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Администраторуңуз жаңыртууну колдонуу үчүн Chromium'ду кайра иштетүүнү талап кылууда}=1{Администраторуңуз жаңыртууну колдонуу үчүн Chromium'ду кайра иштетүүнү талап кылууда. Жашыруун терезеңиз кайра ачылбайт.}other{Администраторуңуз жаңыртууну колдонуу үчүн Chromium'ду кайра иштетүүнү талап кылууда. # жашыруун терезеңиз кайра ачылбайт.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_lo.xtb b/chrome/app/resources/chromium_strings_lo.xtb
index d4932508..f046fb3 100644
--- a/chrome/app/resources/chromium_strings_lo.xtb
+++ b/chrome/app/resources/chromium_strings_lo.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">ຕັ້ງຄ່າໂປຣໄຟລ໌ Chromium ໃໝ່ຂອງທ່ານ</translation>
 <translation id="1396446129537741364">Chromium ກໍາລັງພະຍາຍາມສະແດງລະຫັດຜ່ານ.</translation>
 <translation id="1414495520565016063">ທ່ານ​ລົງຊື່ເຂົ້າ​ໃຊ້ Chromium ແລ້ວ​!</translation>
-<translation id="1493803763272692301">ທ່ານສາມາດເພີດເພີນໄປກັບການນຳໃຊ້ປະໂຫຍດສູງສຸດຈາກ Chromium</translation>
 <translation id="1524282610922162960">ແບ່ງປັນແຖບ Chromium</translation>
 <translation id="1553461853655228091">Chromium ຕ້ອງການການອະນຸຍາດເພື່ອເຂົ້າເຖິງກ້ອງຂອງທ່ານເພື່ອສ້າງແຜນທີ່ 3 ມິຕິຂອງສະພາບແວດລ້ອມອ້ອມຂ້າງຂອງທ່ານ</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານກຳນົດໃຫ້ທ່ານເປີດ Chromium ຄືນໃໝ່ເພື່ອນຳໃຊ້ການອັບເດດ}=1{ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານກຳນົດໃຫ້ທ່ານເປີດ Chromium ຄືນໃໝ່ເພື່ອນຳໃຊ້ການອັບເດດ. ໜ້າຈໍທີ່ບໍ່ເປີດເຜີຍຕົວຕົນຂອງທ່ານຈະບໍ່ເປີດຄືນໃໝ່.}other{ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານກຳນົດໃຫ້ທ່ານເປີດ Chromium ຄືນໃໝ່ເພື່ອນຳໃຊ້ການອັບເດດ. ໜ້າຈໍທີ່ບໍ່ເປີດເຜີຍຕົວຕົນຂອງທ່ານ # ລາຍການຈະບໍ່ເປີດຄືນໃໝ່.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index 4456b07..3e4d9077 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Nustatykite naują „Chromium“ profilį</translation>
 <translation id="1396446129537741364">„Chromium“ bando parodyti slaptažodžius.</translation>
 <translation id="1414495520565016063">Esate prisijungę prie „Chromium“.</translation>
-<translation id="1493803763272692301">Galite mėgautis visomis „Chromium“ galimybėmis</translation>
 <translation id="1524282610922162960">„Chromium“ skirtuko bendrinimas</translation>
 <translation id="1553461853655228091">„Chromium“ reikia leidimo naudoti fotoaparatą jūsų aplinkos 3D žemėlapiui kurti</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administratorius reikalauja paleisti „Chromium“ iš naujo, kad būtų galima pritaikyti naujinį}=1{Administratorius reikalauja paleisti „Chromium“ iš naujo, kad būtų galima pritaikyti naujinį. Inkognito langas nebus atidarytas iš naujo.}one{Administratorius reikalauja paleisti „Chromium“ iš naujo, kad būtų galima pritaikyti naujinį. # inkognito langas nebus atidarytas iš naujo.}few{Administratorius reikalauja paleisti „Chromium“ iš naujo, kad būtų galima pritaikyti naujinį. # inkognito langai nebus atidaryti iš naujo.}many{Administratorius reikalauja paleisti „Chromium“ iš naujo, kad būtų galima pritaikyti naujinį. # inkognito lango nebus atidaryta iš naujo.}other{Administratorius reikalauja paleisti „Chromium“ iš naujo, kad būtų galima pritaikyti naujinį. # inkognito langų nebus atidaryta iš naujo.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb
index 91d1084..007a3b7 100644
--- a/chrome/app/resources/chromium_strings_lv.xtb
+++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Jaunā Chromium profila iestatīšana</translation>
 <translation id="1396446129537741364">Chromium mēģina rādīt paroles.</translation>
 <translation id="1414495520565016063">Esat pierakstījies operētājsistēmā Chromium!</translation>
-<translation id="1493803763272692301">Varat pilnvērtīgi izmantot pārlūku Chromium</translation>
 <translation id="1524282610922162960">Chromium cilnes kopīgošana</translation>
 <translation id="1553461853655228091">Pārlūkam Chromium ir nepieciešama atļauja piekļūt jūsu kamerai, lai varētu izveidot jūsu apkārtnes 3D karti</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Lai lietotu atjauninājumu, administrators pieprasa restartēt pārlūku Chromium.}=1{Lai lietotu atjauninājumu, administrators pieprasa restartēt pārlūku Chromium. Jūsu inkognito režīma logs netiks atkārtoti atvērts.}zero{Lai lietotu atjauninājumu, administrators pieprasa restartēt pārlūku Chromium. # jūsu inkognito režīma logi netiks atkārtoti atvērti.}one{Lai lietotu atjauninājumu, administrators pieprasa restartēt pārlūku Chromium. # jūsu inkognito režīma logs netiks atkārtoti atvērts.}other{Lai lietotu atjauninājumu, administrators pieprasa restartēt pārlūku Chromium. # jūsu inkognito režīma logi netiks atkārtoti atvērti.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">Varat pārvaldīt Google kontus, kuros esat pierakstījies. Jūsu Google konti tiek izmantoti pārlūkā Chromium, Play veikalā, pakalpojumā Gmail un citur. Ja vēlaties pievienot kontu kādam citam, piemēram, ģimenes loceklim, pievienojiet jaunu personu savai <ph name="DEVICE_TYPE" /> ierīcei. <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation>
 <translation id="1863308913976887472">Vietnes pārlūkā Chromium var glabāt informāciju par jūsu interesēm. Piemēram, ja apmeklējat kādu vietni, lai iegādātos apavus maratona skriešanai, vietne var noteikt, ka interesējaties par maratonu skriešanu. Ja vēlāk apmeklēsiet citu vietni, lai reģistrētos sacensībām, šajā vietnē var tikt rādīta skriešanas apavu reklāma, pamatojoties uz jūsu interesēm.</translation>
 <translation id="1881322772814446296">Jūs pierakstāties ar pārvaldītu kontu, kura administrators var kontrolēt jūsu profilu. Jūsu Chromium dati, piemēram, lietotnes, grāmatzīmes, vēsture, paroles un citi iestatījumi, tiks neatgriezeniski saistīti ar lietotāju <ph name="USER_NAME" />. Varēsiet dzēst šos datus, izmantojot Google kontu informācijas paneli, taču nevarēsiet šos datus saistīt ar citu kontu. Ja vēlaties, varat izveidot jaunu profilu, lai atsevišķi glabātu Chromium datus. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Kad rakstāt adreses joslā vai meklēšanas lodziņā, pārlūks Chromium nosūta ierakstīto tekstu Google diskam, lai iegūtu vienumu ieteikumus. Inkognito režīmā šis iestatījums ir izslēgts.</translation>
 <translation id="1911763535808217981">Ja izslēgsiet šo iestatījumu, varēsiet pierakstīties Google vietnēs, piemēram, pakalpojumā Gmail, nepierakstoties pārlūkā Chromium.</translation>
 <translation id="1929939181775079593">Chromium nereaģē. Vai restartēt to tūlīt?</translation>
 <translation id="193439633299369377">Chromium OS ir jārestartē, lai lietotu atjauninājumu.</translation>
diff --git a/chrome/app/resources/chromium_strings_mk.xtb b/chrome/app/resources/chromium_strings_mk.xtb
index b29dc4b58..6f834299 100644
--- a/chrome/app/resources/chromium_strings_mk.xtb
+++ b/chrome/app/resources/chromium_strings_mk.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Поставете нов профил на Chromium</translation>
 <translation id="1396446129537741364">Chromium се обидува да покаже лозинки.</translation>
 <translation id="1414495520565016063">Најавени сте на Chromium!</translation>
-<translation id="1493803763272692301">Можете да го извлечете максимумот од Chromium</translation>
 <translation id="1524282610922162960">Споделете картичка на Chromium</translation>
 <translation id="1553461853655228091">На Chromium му треба дозвола за да пристапи до камерата и да создаде 3D-карта од вашето опкружување</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Администраторот бара да го рестартирате Chromium за да се примени ажурирање}=1{Администраторот бара да го рестартирате Chromium за да се примени ажурирање. Прозорецот „Инкогнито“ нема да се отвори повторно.}one{Администраторот бара да го рестартирате Chromium за да се примени ажурирање. # прозорец „Инкогнито“ нема да се отвори повторно.}other{Администраторот бара да го рестартирате Chromium за да се примени ажурирање. # прозорци „Инкогнито“ нема да се отворат повторно.}}</translation>
@@ -33,6 +32,7 @@
 <translation id="185970820835152459">Може да управувате со најавените сметки на Google. Вашите сметки на Google се користат за прелистувачот Chromium, Play Store, Gmail и друго. Ако сакате да додадете сметка за некој друг, како член на семејството, додајте ново лице во вашиот уред <ph name="DEVICE_TYPE" /> наместо тоа. <ph name="LINK_BEGIN" />Дознај повеќе<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Сајтовите можат да зачувуваат податоци со Chromium за вашите интереси. На пример, ако посетите сајт за да купите патики за маратон, сајтот може да дефинира дека вашиот интерес е трчање маратони. Подоцна ако посетите друг сајт за да се регистрирате за трка, тој сајт може да ви прикаже реклама за патики за трчање според вашите интереси.</translation>
 <translation id="1881322772814446296">Се најавувате со управувана сметка и му давате контрола на администраторот за вашиот профил на Chromium. Вашите податоци на Chromium, како на пример, апликации, обележувачи, историја, лозинки и други поставки ќе бидат трајно поврзани со <ph name="USER_NAME" />. Ќе може да ги бришете овие податоци преку информациската табла на сметки на Google, но нема да може да ги поврзете со друга сметка. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Кога ќе напишете нешто во лентата за адреси или полето за пребарување, Chromium го испраќа напишаното до Google Drive за да добиете предлози за ставки. Ова е исклучено во „Инкогнито“.</translation>
 <translation id="1911763535808217981">Ако го исклучите ова, може да се најавувате на сајтови на Google, како што е Gmail, без да се најавите на Chromium</translation>
 <translation id="1929939181775079593">Chromium не реагира. Да се рестартира сега?</translation>
 <translation id="193439633299369377">Chromium OS треба да се рестартира за да се примени ажурирањето.</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index 18d9d0dd..69a272a 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">നിങ്ങളുടെ പുതിയ Chromium പ്രൊഫൈൽ സജ്ജീകരിക്കുക</translation>
 <translation id="1396446129537741364">Chromium പാസ്‌വേഡുകൾ ദൃശ്യമാക്കാൻ ശ്രമിക്കുന്നു.</translation>
 <translation id="1414495520565016063">നിങ്ങൾ Chromium-ൽ സൈൻ ഇൻ ചെയ്‌തു!</translation>
-<translation id="1493803763272692301">നിങ്ങൾക്ക് Chromium പരമാവധി പ്രയോജനപ്പെടുത്താം</translation>
 <translation id="1524282610922162960">ഒരു Chromium ടാബ് പങ്കിടുക</translation>
 <translation id="1553461853655228091">നിങ്ങളുടെ ചുറ്റുപാടിന്റെ 3D മാപ്പ് സൃഷ്ടിക്കുന്നതിന് നിങ്ങളുടെ ക്യാമറ ആക്സസ് ചെയ്യാൻ Chromium-ന് നിങ്ങളുടെ അനുമതി ആവശ്യമാണ്</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{അപ്‌ഡേറ്റ് പ്രയോഗിക്കുന്നതിന് Chromium വീണ്ടും ആരംഭിക്കാൻ നിങ്ങളുടെ അഡ്‌മിൻ ആവശ്യപ്പെടുന്നു}=1{അപ്‌ഡേറ്റ് പ്രയോഗിക്കുന്നതിന് Chromium വീണ്ടും ആരംഭിക്കാൻ നിങ്ങളുടെ അഡ്‌മിൻ ആവശ്യപ്പെടുന്നു. നിങ്ങളുടെ അദൃശ്യ വിൻഡോ വീണ്ടും തുറക്കില്ല.}other{അപ്‌ഡേറ്റ് പ്രയോഗിക്കുന്നതിന് Chromium വീണ്ടും ആരംഭിക്കാൻ നിങ്ങളുടെ അഡ്‌മിൻ ആവശ്യപ്പെടുന്നു. നിങ്ങളുടെ # അദൃശ്യ വിൻഡോകൾ വീണ്ടും തുറക്കില്ല.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_mn.xtb b/chrome/app/resources/chromium_strings_mn.xtb
index b77c8a9..37e3db9a 100644
--- a/chrome/app/resources/chromium_strings_mn.xtb
+++ b/chrome/app/resources/chromium_strings_mn.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Chromium-н шинэ профайлаа тохируулах</translation>
 <translation id="1396446129537741364">Chromium нь нууц үгийг үзүүлэхээр ачаалж байна.</translation>
 <translation id="1414495520565016063">Та Chromium руу нэвтэрсэн байна!</translation>
-<translation id="1493803763272692301">Ta Chromium-г таатайгаар бүрэн ашиглах боломжтой</translation>
 <translation id="1524282610922162960">Chromium-н таб хуваалцах</translation>
 <translation id="1553461853655228091">Орчин тойрны тань 3D газрын зургийг үүсгэхийн тулд таны камерт хандах зөвшөөрөл Chromium-д шаардлагатай</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Шинэчлэлтийг хэрэгжүүлэхийн тулд Chromium-г дахин ачаалахыг таны администратор танаас шаардаж байна}=1{Шинэчлэлтийг хэрэгжүүлэхийн тулд Chromium-г дахин ачаалахыг таны администратор танаас шаардаж байна. Таны нууцлалтай цонхыг дахин нээхгүй.}other{Шинэчлэлтийг хэрэгжүүлэхийн тулд Chromium-г дахин ачаалахыг таны администратор танаас шаардаж байна. Таны # нууцлалтай цонхыг дахин нээхгүй.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index c7d6595..9ad1192 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -15,7 +15,6 @@
 <translation id="1315551408014407711">तुमची नवीन Chromium प्रोफाइल सेट करा</translation>
 <translation id="1396446129537741364">Chromium पासवर्ड दर्शविण्याचा प्रयत्न करत आहे.</translation>
 <translation id="1414495520565016063">तुम्ही Chromium मध्ये साइन इन केले आहे!</translation>
-<translation id="1493803763272692301">तुम्ही Chromium चा पुरेपूर आनंद घेऊ शकता</translation>
 <translation id="1524282610922162960">Chromium टॅब शेअर करा</translation>
 <translation id="1553461853655228091">तुमच्या आसपासचा 3D नकाशा तयार करण्यासाठी Chromium ला तुमचा कॅमेरा अ‍ॅक्सेस करण्याची परवानगी हवी आहे</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{अपडेट लागू करता यावे यासाठी तुम्ही Chromium पुन्हा लाँच करण्याची तुमच्या ॲडमिनिस्ट्रेटरला गरज आहे}=1{अपडेट लागू करता यावे यासाठी तुम्ही Chromium पुन्हा लाँच करण्याची तुमच्या ॲडमिनिस्ट्रेटरला गरज आहे. तुमची गुप्त विंडो पुन्हा उघडणार नाही.}other{अपडेट लागू करता यावे यासाठी तुम्ही Chromium पुन्हा लाँच करण्याची तुमच्या ॲडमिनिस्ट्रेटरला गरज आहे. तुमच्या # गुप्त विंडो पुन्हा उघडणार नाहीत.}}</translation>
@@ -32,6 +31,7 @@
 <translation id="185970820835152459">तुम्ही तुमची साइन इन केलेली Google खाती व्यवस्थापित करू शकता. तुमची Google खाती Chromium ब्राउझर, Play Store, Gmail आणि बर्‍याच गोष्टींसाठी वापरली जातात. तुम्हाला कुटुंब सदस्यासारख्या इतर कोणासाठी खाते जोडायचे असल्यास, त्याऐवजी तुमच्या <ph name="DEVICE_TYPE" /> वर नवीन व्यक्ती जोडा. <ph name="LINK_BEGIN" />अधिक जाणून घ्या<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">साइट तुमच्या स्वारस्यांबद्दलची माहिती Chromium वापरून स्टोअर करू शकतात. उदाहरणार्थ, तुम्ही मॅरेथॉनसाठी शूज खरेदी करण्यासाठी एखाद्या साइटला भेट दिल्यास, ती साइट तुमचे स्वारस्य मॅरेथॉनमध्ये धावणे म्हणून परिभाषित करू शकते. त्यानंतर, तुम्ही एखाद्या शर्यतीसाठी नोंदणी करण्याकरिता वेगळ्या साइटला भेट दिल्यास, ती साइट तुम्हाला तुमच्या स्वारस्यांनुसार धावण्यासाठीच्या शूजची जाहिरात दाखवू शकते.</translation>
 <translation id="1881322772814446296">तुम्ही एका व्यवस्थापित खात्यासह साइन इन करत आहात आणि तुमच्या Chromium प्रोफाइलवर त्याच्या ॲडमिनिस्ट्रेटरला नियंत्रण देत आहात. तुमचा Chromium डेटा, जसे की तुमचे अ‍ॅप्स, बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज <ph name="USER_NAME" /> वर कायमच्या बद्ध होतील. तुम्ही Google खाती डॅशबोर्डद्वारे हा डेटा हटवण्यात सक्षम व्हाल, परंतु तुम्ही दुसर्‍या खात्यासह हा डेटा संबद्ध करण्यात सक्षम असणार नाही. तुम्ही तुमचा विद्यमान Chromium डेटा वेगळी ठेवण्यासाठी एक नवीन पर्यायी प्रोफाइल तयार करू शकता. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">तुम्ही अ‍ॅड्रेस बार किंवा सर्च बॉक्समध्ये टाइप करता, तेव्हा आयटमसंबंधित सूचना मिळवण्यासाठी, Chromium तुम्ही जे टाइप करता ते Google Drive वर पाठवते. हे गुप्त मोड मध्ये बंद आहे.</translation>
 <translation id="1911763535808217981">हे बंद करून, तुम्ही Chromium वर साइन इन न करता Gmail सारख्या Google साइटवर साइन इन करू शकता</translation>
 <translation id="1929939181775079593">Chromium असंवादी आहे. आता पुन्‍हा लाँच करायचे?</translation>
 <translation id="193439633299369377">अपडेट लागू करण्यासाठी ChromiumOS रीस्टार्ट करणे आवश्यक आहे.</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index 3e8b525..a52002b 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Sediakan profil Chromium baharu anda</translation>
 <translation id="1396446129537741364">Chromium sedang cuba memaparkan kata laluan.</translation>
 <translation id="1414495520565016063">Anda log masuk ke Chromium!</translation>
-<translation id="1493803763272692301">Anda boleh memanfaatkan Chromium sepenuhnya</translation>
 <translation id="1524282610922162960">Kongsi tab Chromium</translation>
 <translation id="1553461853655228091">Chromium memerlukan kebenaran untuk mengakses kamera anda untuk membuat peta 3D persekitaran anda</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Pentadbir anda menghendaki anda melancarkan semula Chromium untuk menggunakan kemas kini}=1{Pentadbir anda menghendaki anda melancarkan semula Chromium untuk menggunakan kemas kini. Tetingkap Inkognito anda tidak dapat dibuka semula.}other{Pentadbir anda menghendaki anda melancarkan semula Chromium untuk menggunakan kemas kini. # tetingkap Inkognito anda tidak dapat dibuka semula.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_my.xtb b/chrome/app/resources/chromium_strings_my.xtb
index 457da84..a6ddaa8f 100644
--- a/chrome/app/resources/chromium_strings_my.xtb
+++ b/chrome/app/resources/chromium_strings_my.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">သင်၏ Chromium ပရိုဖိုင်အသစ်ကို စနစ်ထည့်သွင်းပါ</translation>
 <translation id="1396446129537741364">Chromium က စကားဝှက်များကို ပြရန် ကြိုးစားနေသည်။</translation>
 <translation id="1414495520565016063">သင်သည် Chromium သို့ဝင်ရောက်ပြီးဖြစ်သည်!</translation>
-<translation id="1493803763272692301">Chromium ကို အကောင်းဆုံး အသုံးချနိုင်သည်</translation>
 <translation id="1524282610922162960">Chromium တဘ် မျှဝေခြင်း</translation>
 <translation id="1553461853655228091">သင့်ပတ်ဝန်းကျင်၏ 3D မြေပုံ ပြုလုပ်ရန် Chromium က သင့်ကင်မရာကို အသုံးပြုခွင့် လိုအပ်သည်</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{အပ်ဒိတ်ကို အသုံးပြုနိုင်ရန်အတွက် Chromium ကို ပြန်လည်စတင်ရန် သင်၏စီမံခန့်ခွဲသူက တောင်းဆိုထားပါသည်}=1{အပ်ဒိတ်ကို အသုံးပြုနိုင်ရန်အတွက် Chromium ကို ပြန်လည်စတင်ရန် သင်၏စီမံခန့်ခွဲသူက တောင်းဆိုထားပါသည်။ သင်၏ရုပ်ဖျက် ဝင်ဒိုးကို ပြန်ဖွင့်မည် မဟုတ်ပါ။}other{အပ်ဒိတ်ကို အသုံးပြုနိုင်ရန်အတွက် Chromium ကို ပြန်လည်စတင်ရန် သင်၏စီမံခန့်ခွဲသူက တောင်းဆိုထားပါသည်။ သင်၏ရုပ်ဖျက် ဝင်ဒိုး # ခုကို ပြန်ဖွင့်မည် မဟုတ်ပါ။}}</translation>
diff --git a/chrome/app/resources/chromium_strings_ne.xtb b/chrome/app/resources/chromium_strings_ne.xtb
index ba3e484..b35e4b34 100644
--- a/chrome/app/resources/chromium_strings_ne.xtb
+++ b/chrome/app/resources/chromium_strings_ne.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Chromium मा आफ्नो नयाँ प्रोफाइल सेटअप गर्नुहोस्</translation>
 <translation id="1396446129537741364">Chromium ले पासवर्डहरू देखाउने प्रयास गर्दैछ।</translation>
 <translation id="1414495520565016063">तपाइँ Chromium मा साइन इन</translation>
-<translation id="1493803763272692301">तपाईं Chromium बाट बढीभन्दा बढी फाइदाहरूको आनन्द लिन सक्नुहुन्छ</translation>
 <translation id="1524282610922162960">Chromium को ट्याब सेयर गर्नुहोस्</translation>
 <translation id="1553461853655228091">Chromium लाई तपाईं वरपरको ठाउँको 3D नक्सा बनाउन तपाईंको क्यामेरा प्रयोग गर्ने अनुमति चाहिन्छ</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{तपाईंका व्यवस्थापकका अनुसार तपाईंले यो अद्यावधिक लागू गर्न Chromium पुनः सुरु गर्नु पर्ने हुन्छ}=1{तपाईंका व्यवस्थापकका अनुसार तपाईंले यो अद्यावधिक लागू गर्न Chromium पुनः सुरु गर्नु पर्ने हुन्छ। तपाईंको इन्कोग्निटो विन्डो पुनः खुल्ने छैन।}other{तपाईंका व्यवस्थापकका अनुसार तपाईंले यो अद्यावधिक लागू गर्न Chromium पुनः सुरु गर्नु पर्ने हुन्छ। तपाईंका # वटा इन्कोग्निटो विन्डो पुनः खुल्ने छैनन्।}}</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index fac044b..43fb100 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Je nieuwe Chromium-profiel instellen</translation>
 <translation id="1396446129537741364">Chromium probeert wachtwoorden te bekijken.</translation>
 <translation id="1414495520565016063">Je bent ingelogd bij Chromium.</translation>
-<translation id="1493803763272692301">Haal het maximale uit Chromium</translation>
 <translation id="1524282610922162960">Een Chromium-tabblad delen</translation>
 <translation id="1553461853655228091">Chromium heeft toegangsrechten voor de camera nodig om een 3D-kaart van je omgeving te maken</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Je beheerder vereist dat je Chromium opnieuw start om een update uit te voeren.}=1{Je beheerder vereist dat je Chromium opnieuw start om een update uit te voeren. Je incognitovenster kan niet opnieuw worden geopend.}other{Je beheerder vereist dat je Chromium opnieuw start om een update uit te voeren. Je # incognitovensters kunnen niet opnieuw worden geopend.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb
index 59642641..ac3828c 100644
--- a/chrome/app/resources/chromium_strings_no.xtb
+++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Konfigurer den nye Chromium-profilen din</translation>
 <translation id="1396446129537741364">Chromium prøver å vise passord.</translation>
 <translation id="1414495520565016063">Du er logget på Chromium.</translation>
-<translation id="1493803763272692301">Du kan få mest mulig ut av Chromium</translation>
 <translation id="1524282610922162960">Del en Chromium-fane</translation>
 <translation id="1553461853655228091">Chromium trenger tilgang til kameraet for å lage et 3D-kart av omgivelsene</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administratoren din krever at du starter Chromium på nytt for å ta i bruk en oppdatering}=1{Administratoren din krever at du starter Chromium på nytt for å ta i bruk en oppdatering. Inkognitovinduet ditt blir ikke gjenåpnet.}other{Administratoren din krever at du starter Chromium på nytt for å ta i bruk en oppdatering. De # inkognitovinduene dine blir ikke gjenåpnet.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_or.xtb b/chrome/app/resources/chromium_strings_or.xtb
index e6fa59e..2d05fde 100644
--- a/chrome/app/resources/chromium_strings_or.xtb
+++ b/chrome/app/resources/chromium_strings_or.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">ଆପଣଙ୍କର ନୂଆ Chromium ପ୍ରୋଫାଇଲ୍ ସେଟ୍ ଅପ୍ କରନ୍ତୁ</translation>
 <translation id="1396446129537741364">ପାସ୍‌ୱର୍ଡଗୁଡ଼ିକ ଦେଖାଇବାକୁ Chromium ଚେଷ୍ଟା କରୁଛି।</translation>
 <translation id="1414495520565016063">ଆପଣ Chromium‍ରେ ସାଇନ୍-ଇନ୍ କରିଛନ୍ତି!</translation>
-<translation id="1493803763272692301">ଆପଣ Chromiumରୁ ସବୁଠୁ ଅଧିକ ମଜା ନେଇପାରିବେ</translation>
 <translation id="1524282610922162960">ଗୋଟିଏ Chromium ଟାବ୍ ସେୟାର୍ କରନ୍ତୁ</translation>
 <translation id="1553461853655228091">Chromium ଆପଣଙ୍କ ପରିପାର୍ଶ୍ୱର ଏକ 3D ମ୍ୟାପ୍ ତିଆରି କରିବା ପାଇଁ ଆପଣଙ୍କ କ୍ୟାମେରା ଆକ୍ସେସ୍ କରିବାକୁ ଅନୁମତି ଆବଶ୍ୟକ କରେ</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{ଆପଣଙ୍କର ଆଡ୍‍ମିନିଷ୍ଟ୍ରେଟର୍ ଚାହୁଁଛନ୍ତି ଯେ ଆପଣ ଏକ ଅପ୍‌ଡେଟ୍ ଲାଗୁ କରିବା ପାଇଁ Chromiumକୁ ପୁଣି ଲଞ୍ଚ କରନ୍ତୁ}=1{ଆପଣଙ୍କର ଆଡ୍‍ମିନିଷ୍ଟ୍ରେଟର୍ ଚାହୁଁଛନ୍ତି ଯେ ଆପଣ ଏକ ଅପ୍‌ଡେଟ୍ ଲାଗୁ କରିବା ପାଇଁ Chromiumକୁ ପୁଣି ଲଞ୍ଚ କରନ୍ତୁ ଆପଣଙ୍କର ଇନ୍‌କଗ୍ନିଟୋ ୱିଣ୍ଡୋ ପୁଣି ଖୋଲିବ ନାହିଁ।}other{ଆପଣଙ୍କର ଆଡ୍‍ମିନିଷ୍ଟ୍ରେଟର୍ ଚାହୁଁଛନ୍ତି ଯେ ଆପଣ ଏକ ଅପ୍‌ଡେଟ୍ ଲାଗୁ କରିବା ପାଇଁ Chromiumକୁ ପୁଣି ଲଞ୍ଚ କରନ୍ତୁ ଆପଣଙ୍କର #ଟି ଇନ୍‌କଗ୍ନିଟୋ ୱିଣ୍ଡୋ ପୁଣି ଖୋଲିବ ନାହିଁ।}}</translation>
diff --git a/chrome/app/resources/chromium_strings_pa.xtb b/chrome/app/resources/chromium_strings_pa.xtb
index 3da78f7..8af533e 100644
--- a/chrome/app/resources/chromium_strings_pa.xtb
+++ b/chrome/app/resources/chromium_strings_pa.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">ਆਪਣੇ ਨਵੇਂ Chromium ਪ੍ਰੋਫਾਈਲ ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ</translation>
 <translation id="1396446129537741364">Chromium ਪਾਸਵਰਡ ਦਿਖਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ।</translation>
 <translation id="1414495520565016063">ਤੁਸੀਂ Chromium ਤੇ ਸਾਈਨ ਇਨ ਕੀਤਾ ਹੈ!</translation>
-<translation id="1493803763272692301">ਤੁਸੀਂ Chromium ਦਾ ਵੱਧ ਤੋਂ ਵੱਧ ਲਾਹਾ ਲੈ ਸਕਦੇ ਹੋ</translation>
 <translation id="1524282610922162960">ਕੋਈ Chromium ਟੈਬ ਸਾਂਝੀ ਕਰੋ</translation>
 <translation id="1553461853655228091">Chromium ਨੂੰ ਤੁਹਾਡੇ ਆਲੇ-ਦੁਆਲੇ ਦਾ 3D ਨਕਸ਼ਾ ਬਣਾਉਣ ਵਾਸਤੇ ਤੁਹਾਡੇ ਕੈਮਰੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{ਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਚਾਹੁੰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਅੱਪਡੇਟ ਲਾਗੂ ਕਰਨ ਲਈ Chromium ਨੂੰ ਮੁੜ-ਲਾਂਚ ਕਰੋ}=1{ਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਚਾਹੁੰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਅੱਪਡੇਟ ਲਾਗੂ ਕਰਨ ਲਈ Chromium ਨੂੰ ਮੁੜ-ਲਾਂਚ ਕਰੋ। ਤੁਹਾਡੀ ਇਨਕੋਗਨਿਟੋ ਵਿੰਡੋ ਦੁਬਾਰਾ ਨਹੀਂ ਖੁੱਲ੍ਹੇਗੀ।}other{ਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਚਾਹੁੰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਅੱਪਡੇਟ ਲਾਗੂ ਕਰਨ ਲਈ Chromium ਨੂੰ ਮੁੜ-ਲਾਂਚ ਕਰੋ। ਤੁਹਾਡੀਆਂ # ਇਨਕੋਗਨਿਟੋ ਵਿੰਡੋ ਦੁਬਾਰਾ ਨਹੀਂ ਖੁੱਲ੍ਹਣਗੀਆਂ।}}</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb
index 0142655..aa90978 100644
--- a/chrome/app/resources/chromium_strings_pl.xtb
+++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Skonfiguruj nowy profil w Chromium</translation>
 <translation id="1396446129537741364">Chromium próbuje pokazać hasła.</translation>
 <translation id="1414495520565016063">Jesteś zalogowany w Chromium.</translation>
-<translation id="1493803763272692301">Możesz w pełni wykorzystać możliwości Chromium</translation>
 <translation id="1524282610922162960">Udostępnij kartę Chromium</translation>
 <translation id="1553461853655228091">Aby utworzyć mapę 3D Twojego otoczenia, Chromium potrzebuje uprawnień dostępu do kamery</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administrator wymaga ponownego uruchomienia Chromium, by przeglądarka mogła zainstalować aktualizację}=1{Administrator wymaga ponownego uruchomienia Chromium, by przeglądarka mogła zainstalować aktualizację. Okno incognito nie otworzy się ponownie.}few{Administrator wymaga ponownego uruchomienia Chromium, by przeglądarka mogła zainstalować aktualizację. # okna incognito nie otworzą się ponownie.}many{Administrator wymaga ponownego uruchomienia Chromium, by przeglądarka mogła zainstalować aktualizację. # okien incognito nie otworzy się ponownie.}other{Administrator wymaga ponownego uruchomienia Chromium, by przeglądarka mogła zainstalować aktualizację. # okna incognito nie otworzy się ponownie.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb
index e5a98679..10b5d39 100644
--- a/chrome/app/resources/chromium_strings_pt-BR.xtb
+++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Configure seu novo perfil do Chromium</translation>
 <translation id="1396446129537741364">O Chromium está tentando mostrar senhas.</translation>
 <translation id="1414495520565016063">Você está conectado ao Chromium.</translation>
-<translation id="1493803763272692301">Aproveite o Chromium ao máximo</translation>
 <translation id="1524282610922162960">Compartilhar uma guia do Chromium</translation>
 <translation id="1553461853655228091">O Chromium precisa de permissão para acessar sua câmera e criar um mapa 3D do ambiente a sua volta</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Seu administrador exige que você reinicie o Chromium para que uma atualização seja feita.}=1{Seu administrador exige que você reinicie o Chromium para que uma atualização seja feita. Sua janela anônima não será aberta novamente.}one{Seu administrador exige que você reinicie o Chromium para que uma atualização seja feita. Sua janela anônima não será aberta novamente.}other{Seu administrador exige que você reinicie o Chromium para que uma atualização seja feita. Suas # 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 46b3d0fc..9e096d0 100644
--- a/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Configure o seu novo perfil do Chromium</translation>
 <translation id="1396446129537741364">O Chromium está a tentar mostrar palavras-passe.</translation>
 <translation id="1414495520565016063">Tem sessão iniciada no Chromium!</translation>
-<translation id="1493803763272692301">Pode tirar o máximo partido do Chromium</translation>
 <translation id="1524282610922162960">Partilhe um separador do Chromium</translation>
 <translation id="1553461853655228091">O Chromium necessita de autorização de acesso à câmara para criar um mapa 3D do ambiente à sua volta.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{O seu administrador necessita que reinicie o Chromium para aplicar uma atualização.}=1{O seu administrador necessita que reinicie o Chromium para aplicar uma atualização. Não é possível reabrir a sua janela de navegação anónima.}other{O seu administrador necessita que reinicie o Chromium para aplicar uma atualização. Não é possível reabrir as suas # janelas de navegação anónima.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb
index bc7a38b..d205c3e 100644
--- a/chrome/app/resources/chromium_strings_ro.xtb
+++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Configurează noul profil Chromium</translation>
 <translation id="1396446129537741364">Chromium încearcă să afișeze parolele.</translation>
 <translation id="1414495520565016063">V-ați conectat la Chromium!</translation>
-<translation id="1493803763272692301">Poți profita din plin de Chromium</translation>
 <translation id="1524282610922162960">Distribuie o filă Chromium</translation>
 <translation id="1553461853655228091">Chromium are nevoie de permisiunea de a accesa camera foto pentru a crea o hartă 3D a lucrurilor din jurul tău</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administratorul solicită să relansezi Chromium pentru a aplica o actualizare}=1{Administratorul solicită să relansezi Chromium pentru a aplica o actualizare. Fereastra incognito nu se va mai deschide.}few{Administratorul solicită să relansezi Chromium pentru a aplica o actualizare. Cele # ferestre incognito nu se vor mai deschide.}other{Administratorul solicită să relansezi Chromium pentru a aplica o actualizare. Cele # de ferestre incognito nu se vor mai deschide.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index 8040bec..5875101a 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Создайте профиль Chromium</translation>
 <translation id="1396446129537741364">Вводимые пароли будут отображаться в Chromium.</translation>
 <translation id="1414495520565016063">Добро пожаловать в Chromium!</translation>
-<translation id="1493803763272692301">Так вы сможете пользоваться всеми возможностями Chromium.</translation>
 <translation id="1524282610922162960">Откройте доступ к вкладке Chromium</translation>
 <translation id="1553461853655228091">Chromium запрашивает доступ к камере, чтобы создавать 3D-карты места, в котором вы находитесь.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Администратор требует перезапустить Chromium для установки обновления.}=1{Администратор требует перезапустить Chromium для установки обновления. Окно в режиме инкогнито не будет открыто повторно.}one{Администратор требует перезапустить Chromium для установки обновления. # окно в режиме инкогнито не будет открыто повторно.}few{Администратор требует перезапустить Chromium для установки обновления. # окна в режиме инкогнито не будут открыты повторно.}many{Администратор требует перезапустить Chromium для установки обновления. # окон в режиме инкогнито не будут открыты повторно.}other{Администратор требует перезапустить Chromium для установки обновления. # окна в режиме инкогнито не будут открыты повторно.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_si.xtb b/chrome/app/resources/chromium_strings_si.xtb
index baa2f1b..77a8dacd 100644
--- a/chrome/app/resources/chromium_strings_si.xtb
+++ b/chrome/app/resources/chromium_strings_si.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">ඔබගේ නව Chromium පැතිකඩ පිහිටුවන්න</translation>
 <translation id="1396446129537741364">Chromium මුරපද පෙන්වීමට උත්සාහ කරමින් සිටී.</translation>
 <translation id="1414495520565016063">ඔබ Chromium වෙත ප්‍රවිෂ්ට වී ඇත!</translation>
-<translation id="1493803763272692301">ඔබට Chromium වෙතින් උපරිමය භුක්ති විඳිය හැක</translation>
 <translation id="1524282610922162960">Chromium පටිත්තක් බෙදා ගන්න</translation>
 <translation id="1553461853655228091">Chromium හට ඔබේ වටපිටාවේ ත්‍රිමාන සිතියමක් සෑදීමට ඔබේ කැමරාවට ප්‍රවේශ වීමට අවසර අවශ්‍යයි</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{යාවත්කාලීනයක් යෙදීමට ඔබ Chromium නැවත ආරම්භ කිරීම පරිපාලකයාට අවශ්‍ය වේ}=1{යාවත්කාලීනයක් යෙදීමට ඔබ Chromium නැවත ආරම්භ කිරීම පරිපාලකයාට අවශ්‍ය වේ. ඔබේ අප්‍රසිද්ධ කවුළුව යළි විවෘත නොවෙයි.}one{යාවත්කාලීනයක් යෙදීමට ඔබ Chromium නැවත ආරම්භ කිරීම පරිපාලකයාට අවශ්‍ය වේ. ඔබේ අප්‍රසිද්ධ කවුළු # යළි විවෘත නොවෙයි.}other{යාවත්කාලීනයක් යෙදීමට ඔබ Chromium නැවත ආරම්භ කිරීම පරිපාලකයාට අවශ්‍ය වේ. ඔබේ අප්‍රසිද්ධ කවුළු # යළි විවෘත නොවෙයි.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb
index 2824edd0..11d2bd6 100644
--- a/chrome/app/resources/chromium_strings_sk.xtb
+++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Nastavte si nový profil prehliadača Chromium</translation>
 <translation id="1396446129537741364">Prehliadač Chromium sa snaží zobraziť heslá.</translation>
 <translation id="1414495520565016063">Ste prihlásený/-á do prehliadača Chromium.</translation>
-<translation id="1493803763272692301">Môžete naplno využívať Chromium</translation>
 <translation id="1524282610922162960">Zdieľajte kartu prehliadača Chromium</translation>
 <translation id="1553461853655228091">Chromium potrebuje povolenie použiť fotoaparát, aby mohol vytvoriť 3D mapu vášho okolia</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Správca požaduje nové spustenie prehliadača Chromium, aby sa použila aktualizácia}=1{Správca požaduje nové spustenie prehliadača Chromium, aby sa použila aktualizácia. Vaše okno inkognito sa neotvorí.}few{Správca požaduje nové spustenie prehliadača Chromium, aby sa použila aktualizácia. Vaše # okná inkognito sa neotvoria.}many{Správca požaduje nové spustenie prehliadača Chromium, aby sa použila aktualizácia. Your # Incognito windows won't reopen.}other{Správca požaduje nové spustenie prehliadača Chromium, aby sa použila aktualizácia. Vašich # okien inkognito sa neotvorí.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb
index d1c3ace..96fafb8 100644
--- a/chrome/app/resources/chromium_strings_sl.xtb
+++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Nastavitev novega profila v Chromiumu</translation>
 <translation id="1396446129537741364">Chromium poskuša prikazati gesla.</translation>
 <translation id="1414495520565016063">Prijavljeni ste v Chromium.</translation>
-<translation id="1493803763272692301">Kar najbolje izkoristite Chromium</translation>
 <translation id="1524282610922162960">Deljenje zavihka v Chromiumu</translation>
 <translation id="1553461853655228091">Chromium potrebuje dovoljenje za dostop do fotoaparata zaradi ustvarjanja tridimenzionalnega zemljevida okolice.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete Chromium.}=1{Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete Chromium. Anonimno okno se ne bo znova odprlo.}one{Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete Chromium. # anonimno okno se ne bo znova odprlo.}two{Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete Chromium. # anonimni okni se ne bosta znova odprli.}few{Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete Chromium. # anonimna okna se ne bodo znova odprla.}other{Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete Chromium. # anonimnih oken se ne bo znova odprlo.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_sq.xtb b/chrome/app/resources/chromium_strings_sq.xtb
index ee47c34..fde8a01 100644
--- a/chrome/app/resources/chromium_strings_sq.xtb
+++ b/chrome/app/resources/chromium_strings_sq.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Konfiguro profilin tënd të ri të Chromium</translation>
 <translation id="1396446129537741364">Chromium po përpiqet të shfaqë fjalëkalimet.</translation>
 <translation id="1414495520565016063">Je i identifikuar në Chromium!</translation>
-<translation id="1493803763272692301">Mund të përfitosh në maksimum nga Chromium</translation>
 <translation id="1524282610922162960">Ndaj një skedë të Chromium</translation>
 <translation id="1553461853655228091">Chromium ka nevojë për leje për t'u qasur te kamera jote për të krijuar një hartë 3D të ambientit tënd rrethues</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administratori yt kërkon që të hapësh përsëri Chromium për të zbatuar këtë përditësim}=1{Administratori yt kërkon që të hapësh përsëri Chromium për të zbatuar këtë përditësim Dritarja jote "e fshehtë" nuk do të rihapet.}other{Administratori yt kërkon që të hapësh përsëri Chromium për të zbatuar këtë përditësim # dritaret e tua "të fshehta" nuk do të rihapen.}}</translation>
@@ -33,6 +32,7 @@
 <translation id="185970820835152459">Mund t'i menaxhosh "Llogaritë e Google" ku je identifikuar. "Llogaritë e tua të Google" përdoren për shfletuesin Chromium, Play Store, Gmail etj. Nëse do të shtosh një llogari për dikë tjetër, si p.sh. anëtar të familjes, shto më mirë një person të ri te <ph name="DEVICE_TYPE" /> yt. <ph name="LINK_BEGIN" />Mëso më shumë<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Sajtet mund të ruajnë informacione rreth interesave të tua në Chromium. Për shembull, nëse viziton një sajt për të blerë këpucë për një maratonë, sajti mund ta përcaktojë interesin tënd si vrapim në maratona. Më vonë, nëse viziton një sajt tjetër për t'u regjistruar për një garë, ai sajt mund të të shfaqë një reklamë për këpucë vrapimi bazuar në interesat e tua.</translation>
 <translation id="1881322772814446296">Po identifikohesh me një llogari të menaxhuar dhe po i jep administratorit të saj kontrollin mbi profilin tënd të Chromium. Të dhënat e tua të Chromium, si aplikacionet, faqeshënuesit, historiku, fjalëkalimet dhe cilësimet e tjera do të bëhen të lidhura përgjithmonë me <ph name="USER_NAME" />. Do të mund t'i fshish këto të dhëna nëpërmjet "Panelit të llogarive të Google", por nuk do të mund t'i lidhësh këto të dhëna me një llogari tjetër. Mund të krijosh si opsion një profil të ri për t'i mbajtur më vete të dhënat ekzistuese të Chromium. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Kur shkruan në shiritin e adresës ose në kutinë e kërkimit, Chromium i dërgon ato që shkruan te "Disku i Google" për të marrë sugjerime për artikujt. Kjo është joaktive në modalitetin "e fshehtë".</translation>
 <translation id="1911763535808217981">Duke çaktivizuar këtë, mund të identifikohesh në sajtet e Google si Gmail pa u identifikuar në Chromium</translation>
 <translation id="1929939181775079593">Chromium nuk përgjigjet. Dëshiron ta hapësh sërish tani?</translation>
 <translation id="193439633299369377">ChromiumOS ka nevojë të riniset për të zbatuar përditësimin.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr-Latn.xtb b/chrome/app/resources/chromium_strings_sr-Latn.xtb
index 95cdeaf..efcd825 100644
--- a/chrome/app/resources/chromium_strings_sr-Latn.xtb
+++ b/chrome/app/resources/chromium_strings_sr-Latn.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Podesite nov Chromium profil</translation>
 <translation id="1396446129537741364">Chromium pokušava da prikaže lozinke.</translation>
 <translation id="1414495520565016063">Prijavljeni ste na Chromium!</translation>
-<translation id="1493803763272692301">Možete da uživate u Chromium-u na najbolji način</translation>
 <translation id="1524282610922162960">Delite Chromium karticu</translation>
 <translation id="1553461853655228091">Chromium traži dozvolu da pristupi kameri da bi napravio 3D mapu okruženja</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administrator zahteva da ponovo pokrenete Chromium da biste primenili ažuriranje}=1{Administrator zahteva da ponovo pokrenete Chromium da biste primenili ažuriranje. Prozor bez arhiviranja se neće ponovo otvoriti.}one{Administrator zahteva da ponovo pokrenete Chromium da biste primenili ažuriranje. # prozor bez arhiviranja se neće ponovo otvoriti.}few{Administrator zahteva da ponovo pokrenete Chromium da biste primenili ažuriranje. # prozora bez arhiviranja se neće ponovo otvoriti.}other{Administrator zahteva da ponovo pokrenete Chromium da biste primenili ažuriranje. # prozora bez arhiviranja se neće ponovo otvoriti.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index 4a5fde5..a22d0f6 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Подесите нов Chromium профил</translation>
 <translation id="1396446129537741364">Chromium покушава да прикаже лозинке.</translation>
 <translation id="1414495520565016063">Пријављени сте на Chromium!</translation>
-<translation id="1493803763272692301">Можете да уживате у Chromium-у на најбољи начин</translation>
 <translation id="1524282610922162960">Делите Chromium картицу</translation>
 <translation id="1553461853655228091">Chromium тражи дозволу да приступи камери да би направио 3D мапу окружења</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Администратор захтева да поново покренете Chromium да бисте применили ажурирање}=1{Администратор захтева да поново покренете Chromium да бисте применили ажурирање. Прозор без архивирања се неће поново отворити.}one{Администратор захтева да поново покренете Chromium да бисте применили ажурирање. # прозор без архивирања се неће поново отворити.}few{Администратор захтева да поново покренете Chromium да бисте применили ажурирање. # прозора без архивирања се неће поново отворити.}other{Администратор захтева да поново покренете Chromium да бисте применили ажурирање. # прозора без архивирања се неће поново отворити.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index 89aa3b6..ccb3f21 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Konfigurera din nya profil i Chromium</translation>
 <translation id="1396446129537741364">Chromium försöker visa lösenord.</translation>
 <translation id="1414495520565016063">Du är inloggad i Chromium.</translation>
-<translation id="1493803763272692301">Få ut mesta möjliga av Chromium</translation>
 <translation id="1524282610922162960">Dela en flik i Chromium</translation>
 <translation id="1553461853655228091">Du behöver ge Chromium behörighet att använda kameran om du vill skapa en 3D-karta över dina omgivningar</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administratören meddelar att du måste starta om Chromium så att en uppdatering tillämpas}=1{Administratören meddelar att du måste starta om Chromium så att en uppdatering tillämpas. Inkognitofönstret öppnas inte igen.}other{Administratören meddelar att du måste starta om Chromium så att en uppdatering tillämpas. De # inkognitofönstren öppnas inte igen.}}</translation>
@@ -33,6 +32,7 @@
 <translation id="185970820835152459">Du kan hantera dina inloggade Google-konton. Dina Google-konton används för webbläsaren Chromium, Play Butik, Gmail med mera. Om du vill lägga till ett konto åt någon annan, till exempel en familjemedlem, lägger du till en ny person på <ph name="DEVICE_TYPE" /> i stället. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Webbplatser kan lagra information om dina intressen med Chromium. Om du till exempel besöker en webbplats för att köpa skor till ett maraton kanske webbplatsen anger att du är intresserad av att springa maraton. Om du sedan besöker en annan webbplats för att registrera dig för ett lopp kan webbplatsen visa en annons för löparskor utifrån dina intressen.</translation>
 <translation id="1881322772814446296">Du loggar in med ett hanterat konto och ger dess administratör kontroll över din Chromium-profil. Dina uppgifter i Chromium, t.ex. dina appar, bokmärken, din historik, ditt lösenord och andra inställningar, kopplas då permanent till <ph name="USER_NAME" />. Du kommer att kunna ta bort dessa uppgifter via instrumentpanelen i Google Konton, men du kommer inte att kunna koppla dem till något annat konto. Du kan skapa en ny profil om du vill hålla dina befintliga Chromium-uppgifter separata. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">När du skriver i adressfältet eller sökrutan skickar Chromium det du skriver till Google Drive för att få förslag på objekt. Detta är inaktiverat i inkognitoläge.</translation>
 <translation id="1911763535808217981">Om du inaktiverar detta kan du logga in på Googles webbplatser, till exempel Gmail, utan att logga in i Chromium</translation>
 <translation id="1929939181775079593">Chromium svarar inte. Vill du starta om?</translation>
 <translation id="193439633299369377">Chromium OS måste startas om för att uppdateringen ska börja gälla.</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb
index 5df4547..bea7ac9 100644
--- a/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Weka mipangilio ya wasifu wako mpya wa Chromium</translation>
 <translation id="1396446129537741364">Chromium inajaribu kuonyesha manenosiri.</translation>
 <translation id="1414495520565016063">Umeingia kwenye Chromium!</translation>
-<translation id="1493803763272692301">Unaweza kunufaika zaidi unapotumia Chromium</translation>
 <translation id="1524282610922162960">Shiriki kichupo cha Chromium</translation>
 <translation id="1553461853655228091">Chromium inahitaji ruhusa ya kufikia kamera yako ili iunde ramani ya 3D ya mazingira yako</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Msimamizi wako anataka ufungue Chromium tena ili utumie sasisho}=1{Msimamizi wako anataka ufungue Chromium tena ili utumie sasisho. Haitafungua upya dirisha fiche.}other{Msimamizi wako anataka ufungue Chromium tena ili utumie sasisho. Haitafungua upya madirisha # fiche.}}</translation>
@@ -33,6 +32,7 @@
 <translation id="185970820835152459">Unaweza kudhibiti Akaunti zako za Google ulizotumia kuingia katika tovuti na programu. Akaunti zako za Google hutumiwa kwenye kivinjari cha Chromium, Duka la Google Play, Gmail na kwingineko. Iwapo ungependa kuweka akaunti ya mtu mwingine, kama vile mwanafamilia, ongeza mtu mpya kwenye <ph name="DEVICE_TYPE" /> yako badala yake. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Tovuti zinaweza kuhifadhi maelezo kuhusu mambo yanayokuvutia kwa kutumia Chromium. Kwa mfano, iwapo utatembelea tovuti ili kununua viatu kwa ajili ya kukimbia mbio za marathoni, tovuti hiyo huenda ikatambua kuwa moja ya mambo yanayokuvutia ni kukimbia mbio za marathoni. Baadaye, iwapo utatembelea tovuti tofauti ili kujisajili kwa ajili ya mbio, tovuti hiyo huenda ikakuonyesha tangazo la viatu vya kukimbilia kulingana na mambo yanayokuvutia.</translation>
 <translation id="1881322772814446296">Unaingia katika akaunti ukitumia akaunti inayodhibitiwa na kumpa msimamizi wa akaunti hiyo udhibiti wa wasifu wako kwenye Chromium. Data yako ya Chromium, kama vile programu zako, alamisho, historia, manenosiri, na mipangilio nyingine itahusishwa na<ph name="USER_NAME" /> kabisa. Utaweza kufuta data hii kupitia Dashibodi ya Akaunti za Google, lakini hutaweza  kuunganisha data hii na akaunti nyingine. Unaweza kwa hiari kuunda wasifu mpya ili kuweka data yako ya Chromium iliyo kando. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Unapoandika kwenye sehemu ya anwani au kisanduku cha kutafutia, Chromium hutuma unachokiandika kwenda kwenye Hifadhi ya Google ili upate mapendekezo ya kipengee. Kipengele hiki huwa kimezimwa katika Hali fiche.</translation>
 <translation id="1911763535808217981">Kwa kuzima kipengele hiki, unaweza kuingia katika tovuti za Google kama vile Gmail bila kuingia katika akaunti ya Chromium</translation>
 <translation id="1929939181775079593">Chromium haiamiliki. Zindua upya sasa?</translation>
 <translation id="193439633299369377">Mfumo wa Uendeshaji wa Chromium unahitaji kuzimwa na kuwashwa ili utekeleze usasishaji.</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb
index c98d31e..7bfeb2d 100644
--- a/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">உங்கள் புதிய Chromium சுயவிவரத்தை அமைத்திடுங்கள்</translation>
 <translation id="1396446129537741364">Chromium ஆனது கடவுச்சொற்களைக் காட்ட முயற்சிக்கிறது.</translation>
 <translation id="1414495520565016063">Chromium இல் உள்நுழைந்துள்ளீர்கள்!</translation>
-<translation id="1493803763272692301">Chromiumமில் இருந்து அதிகப் பலன்களைப் பெறலாம்</translation>
 <translation id="1524282610922162960">Chromium தாவலைப் பகிர்தல்</translation>
 <translation id="1553461853655228091">உங்களைச் சுற்றியுள்ள இடங்களின் 3D வரைபடத்தை உருவாக்க, Chromiumமுக்கு உங்கள் கேமராவை அணுக அனுமதி தேவை</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{புதுப்பிப்பைப் பயன்படுத்த Chromiumமை மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி சொல்கிறார்}=1{புதுப்பிப்பைப் பயன்படுத்த Chromiumமை மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி சொல்கிறார். உங்கள் மறைநிலை சாளரம் மீண்டும் திறக்காது.}other{புதுப்பிப்பைப் பயன்படுத்த Chromiumமை மீண்டும் தொடங்கும்படி உங்கள் நிர்வாகி சொல்கிறார். உங்கள் # மறைநிலை சாளரங்கள் மீண்டும் திறக்காது.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">நீங்கள் உள்நுழைந்துள்ள Google கணக்குகளை நிர்வகிக்கலாம். Chromium உலாவி, Play Store, Gmail மற்றும் பலவற்றில் உங்கள் Google கணக்குகள் பயன்படுத்தப்படும். வேறு ஒருவரின் (எ.கா. குடும்ப உறுப்பினர்) கணக்கைச் சேர்க்க விரும்பினால் உங்கள் <ph name="DEVICE_TYPE" /> சாதனத்தில் ஒரு புதிய பயனரைச் சேர்க்கவும். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">உங்கள் ஆர்வங்கள் குறித்த தகவல்களை Chromium மூலம் தளங்கள் சேமிக்கலாம். உதாரணமாக, மாரத்தான் ஓட்டத்திற்காக ஷூ வாங்க ஒரு தளத்திற்கு நீங்கள் சென்றால் உங்கள் ஆர்வம் மாரத்தான் ஓட்டங்கள் சார்ந்தது என தளம் தீர்மானிக்கக்கூடும். அதன்பிறகு, பந்தயத்திற்குப் பதிவு செய்வதற்காக வேறொரு தளத்திற்கு நீங்கள் சென்றால் உங்கள் ஆர்வங்களின் அடிப்படையில் அந்தத் தளம் ஓட்டப்பந்தய ஷூ விளம்பரத்தை உங்களுக்குக் காட்டக்கூடும்.</translation>
 <translation id="1881322772814446296">நீங்கள் நிர்வகிக்கப்படும் கணக்கு மூலம் உள்நுழைகிறீர்கள், மேலும் அதன் நிர்வாகிக்கு உங்கள் Chromium சுயவிவரத்தின் கட்டுப்பாட்டை வழங்குகிறீர்கள். உங்கள் ஆப்ஸ், புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் போன்ற உங்கள் Chromium தரவு மற்றும் பிற அமைப்புகள் நிரந்தரமாக <ph name="USER_NAME" /> உடன் இணைக்கப்படும். இந்தத் தரவை Google கணக்குகளின் டாஷ்போர்டு வழியாக நீக்க முடியும், ஆனால் இந்தத் தரவை வேறொரு கணக்குடன் தொடர்புபடுத்த முடியாது. விரும்பினால், உங்களுடைய நடப்பு Chromium தரவைத் தனிப்பட்ட முறையில் வைத்திருக்க நீங்கள் புதிய சுயவிவரத்தை உருவாக்கலாம். <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">முகவரிப் பட்டியிலோ தேடல் பெட்டியிலோ நீங்கள் டைப் செய்யும்போது, ஃபைல்களுக்கான பரிந்துரைகளைப் பெறுவதற்காக அவற்றை உங்கள் Google Driveவுக்கு Chromium அனுப்பும். இந்த அம்சம் மறைநிலைப் பயன்முறையில் முடக்கப்பட்டிருக்கும்.</translation>
 <translation id="1911763535808217981">இதை முடக்கினால், நீங்கள் Chromiumமில் உள்நுழையாமலேயே Gmail போன்ற Google தளங்களில் உள்நுழையலாம்</translation>
 <translation id="1929939181775079593">Chromium பதிலளிக்கவில்லை. இப்போது மீண்டும் தொடங்கவா?</translation>
 <translation id="193439633299369377">புதுப்பிப்பைப் பயன்படுத்த, ChromiumOSஸை மீண்டும் தொடங்க வேண்டும்.</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index eff357d..e7bac653 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">మీ కొత్త Chromium ప్రొఫైల్‍ను సెట్ అప్ చేయండి</translation>
 <translation id="1396446129537741364">Chromium పాస్‌వర్డ్‌లను చూపడానికి ప్రయత్నిస్తోంది.</translation>
 <translation id="1414495520565016063">మీరు Chromiumకు సైన్ ఇన్ చేశారు!</translation>
-<translation id="1493803763272692301">Chromium అందించే ప్రయోజనాలన్నింటినీ మీరు ఆస్వాదించవచ్చు</translation>
 <translation id="1524282610922162960">Chromium ట్యాబ్‌ను షేర్ చేయండి</translation>
 <translation id="1553461853655228091">మీ పరిసరాల 3D మ్యాప్‌ను క్రియేట్ చేయడానికి Chromiumకు మీ కెమెరాను యాక్సెస్ చేసే అనుమతి కావాలి</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromiumను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు}=1{అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromiumను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు. మీ అజ్ఞాత విండో మళ్లీ తెరవబడదు.}other{అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromiumను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు. మీ # అజ్ఞాత విండోలు మళ్లీ తెరవబడవు.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index 95c362b..5f8d8c61 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">ตั้งค่าโปรไฟล์ Chromium ใหม่</translation>
 <translation id="1396446129537741364">Chromium กำลังพยายามแสดงรหัสผ่าน</translation>
 <translation id="1414495520565016063">คุณลงชื่อเข้าใช้ Chromium แล้ว!</translation>
-<translation id="1493803763272692301">ใช้งาน Chromium อย่างเต็มประสิทธิภาพ</translation>
 <translation id="1524282610922162960">แชร์แท็บ Chromium</translation>
 <translation id="1553461853655228091">Chromium ต้องการสิทธิ์เข้าถึงกล้องเพื่อสร้างแผนที่ 3 มิติของสิ่งที่อยู่รอบตัวคุณ</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{ผู้ดูแลระบบต้องการให้คุณเปิด Chromium ขึ้นมาใหม่เพื่อใช้การอัปเดต}=1{ผู้ดูแลระบบต้องการให้คุณเปิด Chromium ขึ้นมาใหม่เพื่อใช้การอัปเดต หน้าต่างที่ไม่ระบุตัวตนจะไม่เปิดให้อีก}other{ผู้ดูแลระบบต้องการให้คุณเปิด Chromium ขึ้นมาใหม่เพื่อใช้การอัปเดต หน้าต่างที่ไม่ระบุตัวตนจำนวน # หน้าต่างจะไม่เปิดให้อีก}}</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb
index fb2a984..7067e00 100644
--- a/chrome/app/resources/chromium_strings_tr.xtb
+++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Yeni Chromium profilinizi oluşturun</translation>
 <translation id="1396446129537741364">Chromium, şifreleri göstermeye çalışıyor.</translation>
 <translation id="1414495520565016063">Chromium'da oturum açtınız!</translation>
-<translation id="1493803763272692301">Chromium'dan en iyi şekilde yararlanabilirsiniz</translation>
 <translation id="1524282610922162960">Chromium sekmesini paylaşın</translation>
 <translation id="1553461853655228091">Çevrenizin 3D haritasını oluşturmak için Chromium'un kameranıza erişim iznine ihtiyacı var</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Yöneticiniz bir güncellemeyi uygulamak için Chromium'u yeniden başlatmanızı gerektiriyor}=1{Yöneticiniz bir güncellemeyi uygulamak için Chromium'u yeniden başlatmanızı gerektiriyor. Gizli pencereniz yeniden açılmayacak.}other{Yöneticiniz bir güncellemeyi uygulamak için Chromium'u yeniden başlatmanızı gerektiriyor. # Gizli pencereniz yeniden açılmayacak.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb
index b0ed20d9..b144dfd 100644
--- a/chrome/app/resources/chromium_strings_uk.xtb
+++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Налаштуйте новий профіль Chromium</translation>
 <translation id="1396446129537741364">Chromium намагається показати паролі.</translation>
 <translation id="1414495520565016063">Ви ввійшли в Chromium.</translation>
-<translation id="1493803763272692301">Користуйтеся всіма можливостями Chromium</translation>
 <translation id="1524282610922162960">Поділитися вкладкою Chromium</translation>
 <translation id="1553461853655228091">Chromium потрібен дозвіл на використання камери, щоб створити 3D-карту вашого оточення</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Адміністратор вимагає перезапустити Chromium, щоб застосувати оновлення}=1{Адміністратор вимагає перезапустити Chromium, щоб застосувати оновлення. Вікно в режимі анонімного перегляду не відновиться й не відкриється знову.}one{Адміністратор вимагає перезапустити Chromium, щоб застосувати оновлення. # вікно в режимі анонімного перегляду не відновиться й не відкриється знову.}few{Адміністратор вимагає перезапустити Chromium, щоб застосувати оновлення. # вікна в режимі анонімного перегляду не відновляться й не відкриються знову.}many{Адміністратор вимагає перезапустити Chromium, щоб застосувати оновлення. # вікон в режимі анонімного перегляду не відновляться й не відкриються знову.}other{Адміністратор вимагає перезапустити Chromium, щоб застосувати оновлення. # вікна в режимі анонімного перегляду не відновиться й не відкриється знову.}}</translation>
@@ -31,6 +30,7 @@
 <translation id="185970820835152459">Ви можете керувати обліковими записами Google, у які ввійшли. Через них ви входите у веб-переглядач Chromium, Google Play, Gmail тощо. Якщо ви хочете додати обліковий запис для іншого користувача (наприклад, учасника сімейної групи), зробіть це натомість на пристрої <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation>
 <translation id="1863308913976887472">Сайти можуть зберігати в Chromium інформацію про ваші інтереси. Наприклад, якщо ви перейшли на сайт, щоб придбати кросівки для марафону, цей сайт визначить, що вас цікавить марафонський біг. Тоді, якщо ви згодом відвідайте інший сайт, щоб зареєструватися на забіг, на ньому може з’явитися реклама кросівок.</translation>
 <translation id="1881322772814446296">Ви входите, використовуючи дані облікового запису, яким керує адміністратор. Адміністратор може контролювати ваш профіль Chromium. Ваші дані Chromium, як-от програми, закладки, історія, паролі й інші налаштування, буде назавжди пов’язано з обліковим записом <ph name="USER_NAME" />. Ці дані можна видалити на інформаційній панелі Облікових записів Google, але ви не зможете пов’язати їх з іншим обліковим записом. Проте ви можете створити новий профіль, щоб зберігати наявні дані Chromium окремо. <ph name="LEARN_MORE" /></translation>
+<translation id="1906696617298807388">Коли ви вводите текст в адресному рядку або вікні пошуку, Chromium надсилає його на Google Диск, щоб надати вам підказки щодо файлів. В анонімному режимі цю функцію вимкнено.</translation>
 <translation id="1911763535808217981">Якщо вимкнути цей параметр, ви зможете входити на сайти Google, як-от Gmail, без входу в Chromium</translation>
 <translation id="1929939181775079593">Chromium не відповідає. Перезапустити зараз?</translation>
 <translation id="193439633299369377">Щоб застосувати це оновлення, потрібно перезапустити Chromium OS.</translation>
diff --git a/chrome/app/resources/chromium_strings_ur.xtb b/chrome/app/resources/chromium_strings_ur.xtb
index dfaf2c92..c1fc735 100644
--- a/chrome/app/resources/chromium_strings_ur.xtb
+++ b/chrome/app/resources/chromium_strings_ur.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">‏اپنی نئی Chromium پروفائل سیٹ اپ کریں</translation>
 <translation id="1396446129537741364">‏Chromium پاس ورڈز دکھانے کی کوشش کر رہا ہے۔</translation>
 <translation id="1414495520565016063">‏آپ Chromium میں سائن ان ہیں!</translation>
-<translation id="1493803763272692301">‏آپ Chromium سے زیادہ سے زیادہ لطف اٹھا سکتے ہیں</translation>
 <translation id="1524282610922162960">‏ایک Chromium ٹیب کا اشتراک کریں</translation>
 <translation id="1553461853655228091">‏پنے اطراف کا 3D نقشہ تخلیق کرنے کی خاطر Chromium کو آپ کے کیمرے تک رسائی کی اجازت درکار ہے</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{‏آپ کے منتظم کا مطالبہ ہے کہ آپ اپ ڈیٹ کو لاگو کرنے کیلئے Chromium کو بند کر کے دوبارہ چلائیں}=1{‏آپ کے منتظم کا مطالبہ ہے کہ آپ اپ ڈیٹ کو لاگو کرنے کیلئے Chromium کو بند کر کے دوبارہ چلائیں۔ آپ کی پوشیدگی ونڈو دوبارہ نہیں کھلے گی۔}other{‏آپ کے منتظم کا مطالبہ ہے کہ آپ اپ ڈیٹ کو لاگو کرنے کیلئے Chromium کو بند کر کے دوبارہ چلائیں۔ آپ کی # پوشیدگی ونڈوز دوبارہ نہیں کھلیں گی۔}}</translation>
diff --git a/chrome/app/resources/chromium_strings_uz.xtb b/chrome/app/resources/chromium_strings_uz.xtb
index e5be799..60fe8d2 100644
--- a/chrome/app/resources/chromium_strings_uz.xtb
+++ b/chrome/app/resources/chromium_strings_uz.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Yangi Chromium profilini sozlang</translation>
 <translation id="1396446129537741364">Kirtilgan parollar Chromium brauzerida ko‘rsatiladi.</translation>
 <translation id="1414495520565016063">Chromium‘ga xush kelibsiz!</translation>
-<translation id="1493803763272692301">Chromium ilovasining barcha imkoniyatlaridan foydalanishingiz mumkin</translation>
 <translation id="1524282610922162960">Chromium sahifasini namoyish qilish</translation>
 <translation id="1553461853655228091">Chromium atrofingiz 3D xaritasini yaratishi uchun unga kamera ruxsati zarur</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Administrator yangilishlarni oʻrnatish uchun Chromium brauzerini qayta ishga tushirishni talab qilmoqda}=1{Administrator yangilishlarni oʻrnatish uchun Chromium brauzerini qayta ishga tushirishni talab qilmoqda Inkognito oynalar qayta ochilmaydi.}other{Administrator yangilishlarni oʻrnatish uchun Chromium brauzerini qayta ishga tushirishni talab qilmoqda # ta inkognito oyna qayta ochilmaydi.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index 2c9b7150..a3ad9f4 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">Thiết lập hồ sơ Chromium mới</translation>
 <translation id="1396446129537741364">Chromium đang cố gắng hiển thị mật khẩu.</translation>
 <translation id="1414495520565016063">Bạn đã đăng nhập vào Chromium!</translation>
-<translation id="1493803763272692301">Bạn có thể khai thác tối đa Chromium</translation>
 <translation id="1524282610922162960">Chia sẻ một thẻ Chromium</translation>
 <translation id="1553461853655228091">Chromium cần có quyền sử dụng máy ảnh của bạn để tạo bản đồ 3D về các khu vực xung quanh bạn</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Quản trị viên của bạn yêu cầu bạn chạy lại Chromium để áp dụng bản cập nhật}=1{Quản trị viên của bạn yêu cầu bạn chạy lại Chromium để áp dụng bản cập nhật. Cửa sổ ẩn danh của bạn sẽ không mở lại.}other{Quản trị viên của bạn yêu cầu bạn chạy lại Chromium để áp dụng bản cập nhật. # cửa sổ ẩn danh của bạn sẽ không mở lại.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb
index 93dcc4f8..75e79ba 100644
--- a/chrome/app/resources/chromium_strings_zh-CN.xtb
+++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">设置您的新 Chromium 个人资料</translation>
 <translation id="1396446129537741364">Chromium 正尝试显示密码。</translation>
 <translation id="1414495520565016063">您已登录 Chromium!</translation>
-<translation id="1493803763272692301">您可以充分利用 Chromium</translation>
 <translation id="1524282610922162960">共享 Chromium 标签页</translation>
 <translation id="1553461853655228091">Chromium 需要获得相应权限,才能使用您的摄像头为您的周边环境创建 3D 地图</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{您的管理员要求您重新启动 Chromium 以应用一项更新}=1{您的管理员要求您重新启动 Chromium 以应用一项更新。您的无痕式窗口不会重新打开。}other{您的管理员要求您重新启动 Chromium 以应用一项更新。您的 # 个无痕式窗口不会重新打开。}}</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-HK.xtb b/chrome/app/resources/chromium_strings_zh-HK.xtb
index c54af1ee..38100378 100644
--- a/chrome/app/resources/chromium_strings_zh-HK.xtb
+++ b/chrome/app/resources/chromium_strings_zh-HK.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">設定新的 Chromium 設定檔</translation>
 <translation id="1396446129537741364">Chromium 即將顯示密碼。</translation>
 <translation id="1414495520565016063">您已登入 Chromium!</translation>
-<translation id="1493803763272692301">您可充分運用 Chromium 的所有功能</translation>
 <translation id="1524282610922162960">分享 Chromium 分頁</translation>
 <translation id="1553461853655228091">Chromium 需要取得權限,才能存取相機以建立您身處環境的 3D 地圖</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{管理員要求您重新啟動 Chromium,以套用更新}=1{管理員要求您重新啟動 Chromium,以套用更新。您的無痕式視窗不會重新開啟。}other{管理員要求您重新啟動 Chromium,以套用更新。您的 # 個無痕式視窗不會重新開啟。}}</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb
index c04ce375..2969bd29 100644
--- a/chrome/app/resources/chromium_strings_zh-TW.xtb
+++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -14,7 +14,6 @@
 <translation id="1315551408014407711">設定新的 Chromium 設定檔</translation>
 <translation id="1396446129537741364">Chromium 即將顯示密碼。</translation>
 <translation id="1414495520565016063">你已登入 Chromium!</translation>
-<translation id="1493803763272692301">你可以充分運用 Chromium 的所有功能</translation>
 <translation id="1524282610922162960">分享 Chromium 分頁</translation>
 <translation id="1553461853655228091">Chromium 需要取得攝影機權限,才能根據你的周遭環境建立 3D 地圖</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{系統管理員要求你重新啟動 Chromium,以套用更新}=1{系統管理員要求你重新啟動 Chromium,以套用更新。你的無痕式視窗不會重新開啟。}other{系統管理員要求你重新啟動 Chromium,以套用更新。你的 # 個無痕式視窗不會重新開啟。}}</translation>
diff --git a/chrome/app/resources/chromium_strings_zu.xtb b/chrome/app/resources/chromium_strings_zu.xtb
index cdf8fd5..64e0b3d4 100644
--- a/chrome/app/resources/chromium_strings_zu.xtb
+++ b/chrome/app/resources/chromium_strings_zu.xtb
@@ -16,7 +16,6 @@
 <translation id="1315551408014407711">Setha iphrofayela yakho entsha ye-Chromium</translation>
 <translation id="1396446129537741364">I-Chromium izama ukubonisa amaphasiwedi.</translation>
 <translation id="1414495520565016063">Ungene ngemvume ku-Chromium!</translation>
-<translation id="1493803763272692301">Ungajabulela okuningi kwe-Chromium</translation>
 <translation id="1524282610922162960">Yabelana ngethebhu ye-Chromium</translation>
 <translation id="1553461853655228091">I-Chromium idinga imvume yokufinyelela kwikhamera yakho ukudala imephu engu-3D yendawo yakho ekuzungezile</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Umlawuli wakho udinga ukuthi uqalise kabusha i-Chromium ukuze kusetshenziswe isibuyekezo}=1{Umlawuli wakho udinga ukuthi uqalise kabusha i-Chromium ukuze kusetshenziswe isibuyekezo. Iwindi lakho le-Incognito ngeke liphinde livuleke.}one{Umlawuli wakho udinga ukuthi uqalise kabusha i-Chromium ukuze kusetshenziswe isibuyekezo. Amawindi akho angu-# e-Incognito ngeke aze aphinde avuleke.}other{Umlawuli wakho udinga ukuthi uqalise kabusha i-Chromium ukuze kusetshenziswe isibuyekezo. Amawindi akho angu-# 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 955aa85..702acfd 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -3963,6 +3963,7 @@
 <translation id="4522890784888918985">Kinderrekeninge word nie gesteun nie</translation>
 <translation id="4523876148417776526">XML-werflyste is nog nie gaan haal nie.</translation>
 <translation id="4524832533047962394">Die inskrywingmodus wat verskaf is, word nie deur hierdie weergawe van die bedryfstelsel gesteun nie. Maak asseblief seker dat jy die nuutste weergawe gebruik.</translation>
+<translation id="4526051299161934899">Versteekte gestoorde oortjiegroepe</translation>
 <translation id="4526853756266614740">Kies ’n prent om die tema onmiddellik toe te pas</translation>
 <translation id="452750746583162491">Gaan jou gesinkroniseerde data na</translation>
 <translation id="4527929807707405172">Aktiveer omgekeerde rollees. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
@@ -4287,6 +4288,7 @@
 <translation id="4824037980212326045">Rugsteun en Teruglaai in Linux</translation>
 <translation id="4824958205181053313">Kanselleer sinkronisering?</translation>
 <translation id="4825532258163983651">Kan nie wagwoordsleutel uitvee nie</translation>
+<translation id="4827283332383516812">Vee kaart uit</translation>
 <translation id="4827675678516992122">Kon nie koppel nie</translation>
 <translation id="4827784381479890589">Verbeterde speltoets in Chrome-blaaier (teks word na Google gestuur vir spellingvoorstelle)</translation>
 <translation id="4827904420700932487">Skep QR-kode vir hierdie prent</translation>
@@ -4462,7 +4464,6 @@
 <translation id="4977942889532008999">Bevestig toegang</translation>
 <translation id="4980805016576257426">Hierdie uitbreiding bevat wanware.</translation>
 <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Meld aan<ph name="END_LINK" /> om jou blaaierdata van al jou gesinkroniseerde toestelle en jou Google-rekening af uit te vee.</translation>
-<translation id="4982111327868342436">Gaan aan waar jy laas opgehou het op enige toestel</translation>
 <translation id="4986706507552097681">Jy kan altyd in instellings kies wat om te sinkroniseer. Google kan Search en ander dienste op grond van jou geskiedenis personaliseer.</translation>
 <translation id="4986728572522335985">Dit sal alle data op die sekuriteitsleutel, insluitend sy PIN, uitvee</translation>
 <translation id="4988526792673242964">Bladsye</translation>
@@ -4579,7 +4580,6 @@
 <translation id="5097349930204431044">Werwe wat jy besoek, kan bepaal waarvan jy hou en dan advertensies voorstel soos jy verder blaai</translation>
 <translation id="5097649414558628673">Nutsding: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Klik outomaties wanneer skermpyltjie stop</translation>
-<translation id="5101683448725092498">Rugsteun jou goed</translation>
 <translation id="5101839224773798795">Klik outomaties wanneer die merker stop</translation>
 <translation id="5106350808162641062">Verwyder</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> is onder toesig van Family Link. Jy kan skoolrekeninge byvoeg om met ouertoesig toegang tot skoolhulpbronne te kry.</translation>
@@ -5146,7 +5146,6 @@
 <translation id="5623842676595125836">Loglêer</translation>
 <translation id="5624120631404540903">Bestuur wagwoorde</translation>
 <translation id="5625225435499354052">Wysig op Google Pay</translation>
-<translation id="5625631605902707678">Op alle toestelle</translation>
 <translation id="5626134646977739690">Naam:</translation>
 <translation id="5627086634964711283">Dit beheer ook watter bladsy gewys word wanneer jy die Tuis-knoppie klik.</translation>
 <translation id="5627676517703583263">Blaai slim met Chrome</translation>
@@ -5258,7 +5257,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Hierdie data of jou toestel voldoen nie aan sommige van jou organisasie se sekuriteitsbeleide nie. Vind uit by jou admin wat reggestel moet word.}=1{Hierdie lêer of jou toestel voldoen nie aan sommige van jou organisasie se sekuriteitsbeleide nie. Vind uit by jou admin wat reggestel moet word.}other{Hierdie lêers voldoen nie aan sommige van jou organisasie se sekuriteitsbeleide nie. Vind uit by jou admin wat reggestel moet word.}}</translation>
 <translation id="5736796278325406685">Voer asseblief 'n geldige gebruikernaam in</translation>
 <translation id="5738093759615225354">Jy het hierdie wagwoordsleutel nodig om by jou rekenaar aan te meld</translation>
-<translation id="5738329404678738022">Berg jou boekmerke en meer met sinkronisering</translation>
 <translation id="5739017626473506901">Meld aan om <ph name="USER_NAME" /> te help om 'n skoolrekening by te voeg</translation>
 <translation id="5739235828260127894">Wag tans vir verifikasie. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Baie groot</translation>
@@ -5280,7 +5278,6 @@
 <translation id="5757375109985023827">Kies 'n oortjie om te voorbeskou</translation>
 <translation id="5758631781033351321">Jy sal jou leeslys hier kry</translation>
 <translation id="5759728514498647443">Dokumente wat jy deur <ph name="APP_NAME" /> stuur om gedruk te word, kan deur <ph name="APP_NAME" /> gelees word.</translation>
-<translation id="5760508342220592715">Meld aan vir nog voordele</translation>
 <translation id="5762787084360227629">Voer Google-rekeninginligting in</translation>
 <translation id="5763751966069581670">Geen USB-toestelle gevind nie</translation>
 <translation id="5764483294734785780">Stoor oudio as …</translation>
@@ -5316,6 +5313,7 @@
 <translation id="5792295754950501287">Meer handelinge vir <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Tik asseblief op jou aan/af-skakelaar</translation>
 <translation id="5792874008054171483">Meer handelinge vir <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Hierdie betaalmetode sal van hierdie toestel af uitgevee word</translation>
 <translation id="5793339252089865437">As jy die opdatering oor jou selnetwerk aflaai, kan dit tot bykomende koste lei.</translation>
 <translation id="5793420564274426163">Saambindingbevestiging</translation>
 <translation id="5793430094159150686">Jou wagwoord het verander. Jy moet jou ou wagwoord invoer as jy jou plaaslike data wil terugstel.</translation>
@@ -7294,6 +7292,7 @@
 <translation id="7609148976235050828">Koppel aan die internet en probeer weer.</translation>
 <translation id="7612401678989660900">Laat toegang toe vir apps en webwerwe met die mikrofoontoestemming</translation>
 <translation id="7612655942094160088">Aktiveer gekoppelde foonkenmerke.</translation>
+<translation id="7612989789287281429">Meld jou tans aan …</translation>
 <translation id="7614260613810441905">Vra wanneer 'n werf lêers of vouers op jou toestel wil wysig (aanbeveel)</translation>
 <translation id="761530003705945209">Rugsteun in Google Drive. Laai jou data maklik terug of wissel enige tyd jou toestel. Jou rugsteun sluit programdata in. Jou rugsteune word na Google toe opgelaai en met jou Google-rekeningwagwoord geënkripteer.</translation>
 <translation id="7615365294369022248">Kon nie 'n rekening byvoeg nie</translation>
@@ -7822,7 +7821,6 @@
 <translation id="8059417245945632445">Ondersoek toestelle</translation>
 <translation id="8059456211585183827">Daar is nie enige drukkers beskikbaar om te stoor nie.</translation>
 <translation id="8061091456562007989">Verander dit terug</translation>
-<translation id="8061965471006133016">Ekstra beskerming vir jou wagwoorde en meer</translation>
 <translation id="8061970399284390013">Spelling- en grammatikakontrolering</translation>
 <translation id="8061991877177392872">Dit lyk of jy Voice Match met jou Assistent op 'n ander toestel opgestel het. Hierdie vorige opnames is gebruik om 'n stemmodel op hierdie toestel te maak.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 vel papier}other{{COUNT} velle papier}}</translation>
@@ -8510,6 +8508,7 @@
 <translation id="869884720829132584">Programmekieslys</translation>
 <translation id="869891660844655955">Vervaldatum</translation>
 <translation id="8699188901396699995">PPD vir <ph name="PRINTER_NAME" /></translation>
+<translation id="8702278591052316269">Kieslys wat versteekte gestoorde oortjiegroepe bevat</translation>
 <translation id="8702825062053163569">Jou <ph name="DEVICE_TYPE" /> is gesluit.</translation>
 <translation id="8703346390800944767">Slaan advertensie oor</translation>
 <translation id="8705331520020532516">Reeksnommer</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 563cfb5..e7b54c7 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">የHypertext ትራንስፖርት ፕሮቶኮል (ኤችቲቲፒኤስ)</translation>
 <translation id="1059944192885972544"><ph name="NUM" /> ትሮች ለ«<ph name="SEARCH_TEXT" />» ተገኝቷል።</translation>
 <translation id="1060292118287751956">ማያ ገጹ የሚዘመንበት ተደጋጋሚነትን ይወስናል</translation>
+<translation id="1060570945511946595">ቲኬቶችን አስተዳድር</translation>
 <translation id="1061130374843955397">እንኳን ወደ የእርስዎ <ph name="DEVICE_TYPE" /> በደህና መጡ</translation>
 <translation id="1061373870045429865">ለዚህ አገናኝ የQR ኮድ ይፍጠሩ</translation>
 <translation id="1061904396131502319">የእረፍት ጊዜ ሊደርስ ነው</translation>
@@ -1122,6 +1123,7 @@
 <translation id="1975841812214822307">አስወግድ...</translation>
 <translation id="1976150099241323601">የደህንነት መሣሪያ ውስጥ ይግቡ</translation>
 <translation id="1977965994116744507">የእርስዎን <ph name="DEVICE_TYPE" /> ለመክፈት የእርስዎን ስልክ ያስጠጉት።</translation>
+<translation id="1978666928180318515">Bruschettaን ያስወግዱ</translation>
 <translation id="1979095679518582070">ይህን ባሕሪ ማጥፋት ይህ መሣሪያ እንደ የሥርዓት ዝማኔዎች እና ደህንነት ላሉ አስፈላጊ አገልግሎቶች የሚያስፈልገውን መረጃ የመላክ ችሎታው ላይ ተጽዕኖ አያሳርፍበትም።</translation>
 <translation id="1979280758666859181">የቆየ የ<ph name="PRODUCT_NAME" /> ስሪት ወዳለው ሰርጥ እየቀየሩ ነው። የስርጡ ስሪት አሁን በመሣሪያዎ ላይ ከተጫነው ስሪት ጋር ሲዛመድ ነው የሰርጡ ለውጥ የሚተገበረው።</translation>
 <translation id="197989455406964291">KDC የምስጠራ ዓይነትን አይደግፍም</translation>
@@ -1926,6 +1928,7 @@
 <translation id="2672142220933875349">መጥፎ የcrx ፋይል፣ ጥቅል መክፈት አልተሳካም።</translation>
 <translation id="2673135533890720193">የአሰሳ ታሪክዎን ያነብባል</translation>
 <translation id="2674764818721168631">አጥፋ</translation>
+<translation id="2675570801872027281">Bruschettaን በማስወገድ ላይ ስህተት። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="2676492189600898281">የራስ-ሙላ ግብረመልስን አቅርብ</translation>
 <translation id="2678063897982469759">እንደገና አንቃ</translation>
 <translation id="2678100101831051676">cast ማድረግ አልተቻለም።</translation>
@@ -2924,6 +2927,7 @@
 <translation id="3593965109698325041">የሰርቲፊኬት ስም እገዳዎች</translation>
 <translation id="3596012367874587041">የመተግበሪያ ቅንብሮች</translation>
 <translation id="3596414637720633074">ማንነትን በማያሳውቅ ሁነታ ሦስተኛ ወገን ኩኪዎች ያግዱ</translation>
+<translation id="3598010454707842106">«Chromeን ያብጁ» ላይ ጠቅ ያድርጉ</translation>
 <translation id="3599221874935822507">የተነሣ</translation>
 <translation id="3600051066689725006">የድር ጥያቄ መረጃ</translation>
 <translation id="360180734785106144">ልክ አዲስ ባህሪያት ሲገኙ ማቅረብ</translation>
@@ -3919,6 +3923,7 @@
 <translation id="4495419450179050807">በዚህ ገጽ ላይ አታሳይ</translation>
 <translation id="4497145443434063861">ፒሲ እና Chromecast በተለያዩ የWi-Fi አውታረ መረቦች ላይ ናቸው (ለምሳሌ፦ 2.4 ጊኸ እና 5 ጊኸ)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ተበላሽቷል</translation>
+<translation id="4500647907053779331">ምርጫዎችን ወደ <ph name="LANGUAGE" /> ይተርጉሙ</translation>
 <translation id="450099669180426158">የቃለ አጋኖ አዶ</translation>
 <translation id="4501530680793980440">ማስወገድ ያረጋግጡ</translation>
 <translation id="4502423230170890588">ከዚህ መሣሪያ አስወግድ</translation>
@@ -4448,7 +4453,6 @@
 <translation id="4977942889532008999">መዳረሻ ያረጋግጡ</translation>
 <translation id="4980805016576257426">ይህ ቅጥያ ተንኮል-አዘል ዌር ይዟል።</translation>
 <translation id="4981449534399733132">ከሁሉም የእርስዎ የተመሳሰሉ መሣሪያዎች እና የእርስዎ የGoogle መለያ ላይ የአሰሳ ውሂብን ለማጽዳት፣ <ph name="BEGIN_LINK" />በመለያ ይግቡ<ph name="END_LINK" />።</translation>
-<translation id="4982111327868342436">በማንኛውም መሣሪያ ላይ ካቋረጡበት ይቀጥሉ</translation>
 <translation id="4986706507552097681">በማንኛውም ጊዜ በቅንብሮች ውስጥ ምን እንደሚያሰምሩ መምረጥ ይችላሉ። Google በእርስዎ ታሪክ ላይ በመመሥረት ፍለጋን እና ሌሎች አገልግሎቶችን ግላዊነት ሊያላብስ ይችላል።</translation>
 <translation id="4986728572522335985">ይህ ፒኑን ጨምሮ በደህንነቱ ቁልፉ ላይ ያለው ሁሉምን ውሂብ ይሰርዛል</translation>
 <translation id="4988526792673242964">ገፆች</translation>
@@ -4565,7 +4569,6 @@
 <translation id="5097349930204431044">የሚጎበኟቸው ጣቢያዎች የሚወዱትን ሊወስኑ እና ማሰስ ሲቀጥሉ ማስታወቂያዎችን ሊጠቁሙ ይችላሉ</translation>
 <translation id="5097649414558628673">መሣሪያ፦ <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ጠቋሚው ሲያቆም በራስ-ሰር ጠቅ አድርግ</translation>
-<translation id="5101683448725092498">የእርስዎን ነገሮች ምትኬ ያስቀምጡ</translation>
 <translation id="5101839224773798795">ጠቋሚ ሲያቆም በራስሰር ጠቅ አድርግ</translation>
 <translation id="5106350808162641062">አስወግድ</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> በ Family Link ክትትል ይደረግበታል። በወላጆች ክትትል የትምህርት ቤት ንብረቶችን ለመድረስ የትምህርት ቤት መለያዎችን ማከል ይችላሉ።</translation>
@@ -5131,7 +5134,6 @@
 <translation id="5623842676595125836">ምዝግብ ማስታወሻ</translation>
 <translation id="5624120631404540903">የይለፍ ቃሎችን አስተዳድር</translation>
 <translation id="5625225435499354052">በGoogle Pay ውስጥ ያርትዑ</translation>
-<translation id="5625631605902707678">በመላ መሣሪያዎች ላይ</translation>
 <translation id="5626134646977739690">ስም፦</translation>
 <translation id="5627086634964711283">እንዲሁም የመነሻ አዝራሩን ጠቅ ሲያደርጉት ምን ገጽ እንደሚታይ ይቆጣጠራል።</translation>
 <translation id="5627676517703583263">ከChrome ጋር በዘመናዊ መንገድ ያስሱ</translation>
@@ -5243,7 +5245,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ይህ ውሂብ ወይም የእርስዎ መሣሪያ አንዳንድ የድርጅትዎን የደህንነት መመሪያዎች አያሟላም። ምን መስተካከል እንዳለበት ለማወቅ አስተዳዳሪዎን ያነጋግሩ።}=1{ይህ ፋይል ወይም የእርስዎ መሣሪያ አንዳንድ የድርጅትዎን የደህንነት መመሪያዎች አያሟላም። ምን መስተካከል እንዳለበት ለማወቅ አስተዳዳሪዎን ያነጋግሩ።}one{ይህ ፋይል አንዳንድ የድርጅትዎን የደህንነት መመሪያዎች አያሟላም። ምን መስተካከል እንዳለበት ለማወቅ አስተዳዳሪዎን ያነጋግሩ።}other{እነዚህ ፋይሎች አንዳንድ የድርጅትዎን የደህንነት መመሪያዎች አያሟሉም። ምን መስተካከል እንዳለበት ለማወቅ አስተዳዳሪዎን ያነጋግሩ።}}</translation>
 <translation id="5736796278325406685">እባክዎ የሚሠራ የተጠቃሚ ስም ያስገቡ</translation>
 <translation id="5738093759615225354">ወደ የእርስዎ ኮምፒውተር ለመግባት ይህ የይለፍ ቁልፍ ያስፈልገዎታል</translation>
-<translation id="5738329404678738022">በስምረት እልባትዎችዎን እና ሌሎችንም ያከማቹ</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> የትምህርት መለያ እንዲያክሉ ለማገዝ ወደ መለያ ይግቡ</translation>
 <translation id="5739235828260127894">ማረጋገጫን በመጠበቅ ላይ። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">በጣም ትልቅ</translation>
@@ -5265,7 +5266,6 @@
 <translation id="5757375109985023827">አስቀድመው ለማየት ትር ይምረጡ</translation>
 <translation id="5758631781033351321">የእርስዎን ንባብ ዝርዝር እዚህ ያገኛሉ</translation>
 <translation id="5759728514498647443">በ <ph name="APP_NAME" /> በኩል ሊያትሙዋቸው የሚልኩዋቸው ሰነዶች በ <ph name="APP_NAME" /> ላይ ሊነበቡ ይችላሉ።</translation>
-<translation id="5760508342220592715">ለተጨማሪ ጥቅማጥቅሞች በመለያ ይግቡ</translation>
 <translation id="5762787084360227629">የGoogle መለያ መረጃን ያስገቡ</translation>
 <translation id="5763751966069581670">ምንም የዩኤስቢ መሣሪያዎች አልተገኙም</translation>
 <translation id="5764483294734785780">ተሰሚ/ኦዲዮ አስ&amp;ቀምጥ እንደ…</translation>
@@ -5736,6 +5736,7 @@
 <translation id="617213288191670920">ምንም ቋንቋዎች አልታከሉም</translation>
 <translation id="6173623053897475761">የእርስዎን ፒን እንደገና ይተይቡት</translation>
 <translation id="6175314957787328458">Microsoft Domain GUID</translation>
+<translation id="6177412385419165772">በማስወገድ ላይ...</translation>
 <translation id="6178664161104547336">የዕውቅና ማረጋገጫ ምረጥ/ሰርቲፊኬት</translation>
 <translation id="6178682841350631965">የመለያ መግቢያ ውሂብዎ ተዘምኗል</translation>
 <translation id="6180510783007738939">የመስመር መሣሪያ</translation>
@@ -6214,6 +6215,7 @@
 <translation id="6619801788773578757">የኪዮስክ መተግበሪያ አክል</translation>
 <translation id="6619990499523117484">የእርስዎን ፒን ያረጋግጡ</translation>
 <translation id="6620254580880484313">የመያዣ ስም</translation>
+<translation id="6620927550847360014">Bruschetta ከእርስዎ <ph name="DEVICE_TYPE" /> ይወገድ?</translation>
 <translation id="6621391692573306628">ይህን ትር ወደ ሌላ መሣሪያ ለመላክ ሁለቱም መሣሪያዎች ላይ ወደ Chrome ይግቡ</translation>
 <translation id="6622980291894852883">ምስሎችን ማገድ ቀጥል</translation>
 <translation id="6624036901798307345">በጡባዊ ሁኔታ ላይ የእያንዳንዱ ትር ድንክዬዎችን የሚያሳየው አዲሱን የትር ድርድር ለመክፈት የትሩ ቆጣሪ መሣሪያ አሞሌ አዝራርን መታ ያድርጉ።</translation>
@@ -6431,6 +6433,7 @@
 <translation id="6818547713623251698">የስልክዎን ፎቶዎች፣ ሚዲያዎች፣ ማሳወቂያዎች እና መተግበሪያዎች ይመልከቱ</translation>
 <translation id="6818802132960437751">አብሮገነብ የቫይረስ መከላከያ</translation>
 <translation id="6818920801736417483">የይለፍ ቃላት ይቀመጡ?</translation>
+<translation id="6820079682647046800">Kerberosን ማረጋገጥ አልተሳካም</translation>
 <translation id="6823174134746916417">የመዳሰሻ ሰሌዳ ለጠቅታ-መታ-ማድረግ</translation>
 <translation id="6824564591481349393">&amp;ኢሜይል አድራሻ ቅዳ</translation>
 <translation id="6824584962142919697">&amp;አባለ ነገሮችን መርምር</translation>
@@ -6585,6 +6588,7 @@
 <translation id="6955698182324067397">የsshd ስውር አገልጋይን የሚያዋቅሩ እና ከዩኤስቢ አንጻፊዎች ማስነሳትን የሚያነቁ የChromeOS ማረሚያ ባህሪያትን እያነቁ ነው።</translation>
 <translation id="6955893174999506273">1 ተጨማሪ መቀየሪያ ይመድቡ</translation>
 <translation id="6957044667612803194">ይህ የደህንነት ቁልፍ ፒኖችን አይደግፍም</translation>
+<translation id="6960133692707095572">ያለ ቲኬት ጎብኝ</translation>
 <translation id="6960507406838246615">የLinux ዝማኔ ያስፈልጋል</translation>
 <translation id="6960648667961844909">የ<ph name="LANGUAGE" /> የንግግር ፋይሎችን ማውረድ አልተቻለም። ማውረድ በኋላ ላይ ይሞከራል። ማውረድ እስኪጠናቀቅ ድረስ ንግግር ለመሰናዳት ወደ Google ተልኳል።</translation>
 <translation id="696103774840402661">በዚህ <ph name="DEVICE_TYPE" /> ላይ ለሁሉም ተጠቃሚዎች ያሉ ሁሉም ፋይሎች እና አካባቢያዊ ውሂብ እስከመጨረሻው ተሰርዘዋል።</translation>
@@ -7811,7 +7815,6 @@
 <translation id="8059417245945632445">&amp;መሣሪያዎችን መርምር</translation>
 <translation id="8059456211585183827">ለማስቀመጥ ሊገኙ የሚችሉ ምንም አታሚዎች የሉም።</translation>
 <translation id="8061091456562007989">መልሰው ይቀይሩት</translation>
-<translation id="8061965471006133016">ለእርስዎ የይለፍ ቃላት እና ሌሎች ተጨማሪ ጥበቃ</translation>
 <translation id="8061970399284390013">የፊደል እና ሰዋስው እርማት</translation>
 <translation id="8061991877177392872">አስቀድመው በሌላ መሣሪያ ላይ በእርስዎ ረዳት Voice Matchን ያቀናበሩ ይመስላሉ። እነዚህ ቀዳሚ ቀረጻዎች በዚህ መሣሪያ ላይ የድምፅ ሞዴል ለመስራት ጥቅም ላይ ውለው ነበር።</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 የወረቀት ሉህ}one{{COUNT} የወረቀት ሉሆች}other{{COUNT} የወረቀት ሉሆች}}</translation>
@@ -8052,6 +8055,7 @@
 <translation id="8272443605911821513">በ«ተጨማሪ መሣሪያዎች» ምናሌው ውስጥ ቅጥያዎች የሚለውን ጠቅ በማድረግ ቅጥያዎችዎን ያቀናብሩ።</translation>
 <translation id="8272786333453048167">እንደገና ፍቀድ</translation>
 <translation id="8273905181216423293">አሁን አውርድ</translation>
+<translation id="827488840488530039">ሊጎበኙት እየሞከሩ ያሉት ገጽ የእርስዎን የKerberos ቲኬቶች ለማረጋገጥ አልቻለም</translation>
 <translation id="8274921654076766238">ማጉያ የቁልፍ ሰሌዳ ትኩረትን ይከተላል</translation>
 <translation id="8274924778568117936">ዝማኔው እስኪጨርስ ድረስ የእርስዎን <ph name="DEVICE_TYPE" /> አያጥፉት ወይም አይዝጉት። መጫኑ ከተጠናቀቀ በኋላ የእርስዎ <ph name="DEVICE_TYPE" /> ዳግም ይነሳል።</translation>
 <translation id="8275038454117074363">ከውጭ አስመጣ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index bbeb069..520229e 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -4450,7 +4450,6 @@
 <translation id="4977942889532008999">تأكيد الدخول</translation>
 <translation id="4980805016576257426">تحتوي هذه الإضافة على برامج ضارة.</translation>
 <translation id="4981449534399733132">‏لمحو بيانات التصفُّح من جميع أجهزتك التي تمت مزامنتها ومن حسابك على Google، يُرجى <ph name="BEGIN_LINK" />تسجيل الدخول<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">يمكنك المتابعة من حيث توقفت على أي جهاز.</translation>
 <translation id="4986706507552097681">‏يمكنك متى شئت اختيار البيانات التي تريد مزامنتها، وذلك من خلال الإعدادات. وقد تستخدم Google السجلّ لتخصيص "بحث Google" والخدمات الأخرى.</translation>
 <translation id="4986728572522335985">سيؤدي هذا الإجراء إلى حذف جميع البيانات على مفتاح الأمان، بما في ذلك رقم التعريف الشخصي الخاص به</translation>
 <translation id="4988526792673242964">الصفحات</translation>
@@ -4567,7 +4566,6 @@
 <translation id="5097349930204431044">يمكن للمواقع الإلكترونية التي تنتقل إليها تحديد اهتماماتك، ثم اقتراح الإعلانات أثناء مواصلة التصفُّح.</translation>
 <translation id="5097649414558628673">الأداة: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">النقر تلقائيًا عند توقف المؤشر</translation>
-<translation id="5101683448725092498">الاحتفاظ بنسخة احتياطية من بياناتك</translation>
 <translation id="5101839224773798795">النقر تلقائيًا عند توقف المؤشر</translation>
 <translation id="5106350808162641062">إزالة</translation>
 <translation id="510695978163689362">‏يخضع عنوان البريد الإلكتروني <ph name="USER_EMAIL" /> للإشراف من خلال Family Link. يمكنك إضافة حسابات تديرها مؤسسات تعليمية للوصول إلى المصادر التعليمية تحت الإشراف الأبوي.</translation>
@@ -5133,7 +5131,6 @@
 <translation id="5623842676595125836">السجل</translation>
 <translation id="5624120631404540903">إدارة كلمات المرور</translation>
 <translation id="5625225435499354052">‏تعديل المعلومات في Google Pay</translation>
-<translation id="5625631605902707678">على جميع الأجهزة</translation>
 <translation id="5626134646977739690">الاسم:</translation>
 <translation id="5627086634964711283">كما أنها تتحكم في الصفحة التي تظهر عند  النقر على زر الصفحة الرئيسية.</translation>
 <translation id="5627676517703583263">‏استمتع بالتصفح الذكي باستخدام Chrome</translation>
@@ -5245,7 +5242,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{لا تستوفي هذه البيانات أو جهازك متطلبات بعض سياسات الأمان لدى مؤسستك. يُرجى التواصل مع المشرف لمعرفة ما يجب تعديله.}=1{لا يستوفي هذا الملف أو جهازك متطلبات بعض سياسات الأمان لدى مؤسستك. يُرجى التواصل مع المشرف لمعرفة ما يجب تعديله.}two{لا يستوفي هذان الملفان متطلبات بعض سياسات الأمان لدى مؤسستك. يُرجى التواصل مع المشرف لمعرفة ما يجب تعديله.}few{لا تستوفي هذه الملفات متطلبات بعض سياسات الأمان لدى مؤسستك. يُرجى التواصل مع المشرف لمعرفة ما يجب تعديله.}many{لا تستوفي هذه الملفات متطلبات بعض سياسات الأمان لدى مؤسستك. يُرجى التواصل مع المشرف لمعرفة ما يجب تعديله.}other{لا تستوفي هذه الملفات متطلبات بعض سياسات الأمان لدى مؤسستك. يُرجى التواصل مع المشرف لمعرفة ما يجب تعديله.}}</translation>
 <translation id="5736796278325406685">يُرجى إدخال اسم مستخدم صالح</translation>
 <translation id="5738093759615225354">يجب إدخال مفتاح المرور هذا لتسجيل الدخول إلى جهاز الكمبيوتر.</translation>
-<translation id="5738329404678738022">يمكنك تخزين إشاراتك المرجعية وغيرها باستخدام ميزة المزامنة.</translation>
 <translation id="5739017626473506901">سجِّل الدخول لمساعدة <ph name="USER_NAME" /> على إضافة حساب للمؤسسة التعليمية.</translation>
 <translation id="5739235828260127894">في انتظار التحقُّق من صحة الاتصال. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">كبير جدًا</translation>
@@ -5267,7 +5263,6 @@
 <translation id="5757375109985023827">اختَر علامة تبويب لمعاينتها.</translation>
 <translation id="5758631781033351321">ستظهر لك "قائمة القراءة" هنا</translation>
 <translation id="5759728514498647443">يمكن قراءة المستندات التي ترسلها إلى الطباعة عبر <ph name="APP_NAME" /> بواسطة <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">تسجيل الدخول للحصول على المزيد من المزايا</translation>
 <translation id="5762787084360227629">‏إدخال معلومات حساب Google</translation>
 <translation id="5763751966069581670">‏لم يتم العثور على أي أجهزة USB</translation>
 <translation id="5764483294734785780">حف&amp;ظ ملف الصوت باسم...</translation>
@@ -7819,7 +7814,6 @@
 <translation id="8059417245945632445">&amp;فحص الأجهزة</translation>
 <translation id="8059456211585183827">لا تتوفّر أي طابعات للحفظ.</translation>
 <translation id="8061091456562007989">العودة إلى الإعدادات السابقة</translation>
-<translation id="8061965471006133016">يمكنك الاستفادة من حماية إضافية لكلمات المرور وغيرها من البيانات.</translation>
 <translation id="8061970399284390013">التدقيق الإملائي والنحوي</translation>
 <translation id="8061991877177392872">‏يبدو أنه سبق لك إعداد ميزة Voice Match في خدمة "مساعد Google" على جهاز آخر. أمّا بالنسبة إلى التسجيلات الصوتية السابقة، فقد تم استخدامها لإنشاء نموذج صوتي على هذا الجهاز.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ورقة واحدة}zero{{COUNT} ورقة}two{ورقتان ({COUNT})}few{{COUNT} أوراق}many{{COUNT} ورقة}other{{COUNT} ورقة}}</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index d150c09..a854c7850ca 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -3960,6 +3960,7 @@
 <translation id="4522890784888918985">শিশুৰ একাউণ্ট সমৰ্থিত নহয়</translation>
 <translation id="4523876148417776526">XML ছাইটৰ সূচীসমূহ এতিয়ালৈকে আহৰণ কৰা হোৱা নাই।</translation>
 <translation id="4524832533047962394">অপাৰেটিং ছিষ্টেমটোৰ এই সংস্কৰণটোত যোগান ধৰা এনৰ‘লমেণ্ট ম‘ডটো ব্যৱহাৰ কৰিব নোৱাৰি। অনুগ্ৰহ কৰি আপুনি শেহতীয়া সংস্কৰণটো ব্যৱহাৰ কৰি আছেনে নাই নিশ্চিত কৰক।</translation>
+<translation id="4526051299161934899">লুকুৱাই ৰখা ছেভ কৰি থোৱা টেবৰ গোট</translation>
 <translation id="4526853756266614740">থীমটো তাৎক্ষণিকভাৱে প্ৰয়োগ কৰিবলৈ এখন প্ৰতিচ্ছবি বাছনি কৰক</translation>
 <translation id="452750746583162491">আপোনাৰ ছিংক কৰা ডেটা পর্যালোচনা কৰক</translation>
 <translation id="4527929807707405172">ওলোটাকৈ স্ক্ৰ’ল কৰাৰ সুবিধাটো সক্ষম কৰক। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation>
@@ -4284,6 +4285,7 @@
 <translation id="4824037980212326045">Linuxৰ বেকআপ আৰু পুনঃস্থাপন</translation>
 <translation id="4824958205181053313">ছিংক বাতিল কৰিবনে?</translation>
 <translation id="4825532258163983651">পাছকী মচিব নোৱাৰি</translation>
+<translation id="4827283332383516812">কাৰ্ডখন মচক</translation>
 <translation id="4827675678516992122">সংযোগ কৰিব পৰা নগ’ল</translation>
 <translation id="4827784381479890589">Chrome ব্ৰাউজাৰত বৰ্ধিত বানান পৰীক্ষা (বানানৰ পৰামৰ্শসমূহৰ বাবে পাঠ Googleলৈ পঠিওৱা হয়)</translation>
 <translation id="4827904420700932487">এই প্ৰতিচ্ছবিখনৰ বাবে কিউআৰ ক’ড সৃষ্টি কৰক</translation>
@@ -4459,7 +4461,6 @@
 <translation id="4977942889532008999">এক্সেছ নিশ্চিত কৰক</translation>
 <translation id="4980805016576257426">এই এক্সটেনশ্বনটোত মালৱেৰ আছে</translation>
 <translation id="4981449534399733132">আপোনাৰ ছিংক হৈ থকা সকলো ডিভাইচ আৰু নিজৰ Google একাউণ্টৰ পৰা ব্ৰাউজিঙৰ ডেটা মচিবলৈ <ph name="BEGIN_LINK" />ছাইন ইন কৰক<ph name="END_LINK" />।</translation>
-<translation id="4982111327868342436">যিকোনো ডিভাইচত আপুনি কোনো কাৰ্য য’ত এৰিছিল তাৰ পৰা আৰম্ভ কৰক</translation>
 <translation id="4986706507552097681">আপুনি কি ছিংক কৰিব লাগে সেয়া ছেটিঙলৈ গৈ যেতিয়াই মন যায় তেতিয়াই বাছনি কৰিব পাৰে। Googleএ আপোনাৰ ইতিহাসৰ ওপৰত ভিত্তি কৰি Search আৰু অন্য সেৱা ব্যক্তিগতকৰণ কৰিব পাৰে।</translation>
 <translation id="4986728572522335985">এই কাৰ্যই সুৰক্ষা চাবিটোত ষ্ট’ৰ হৈ থকা ইয়াৰ পিনকে ধৰি সকলো ডেটা মচিব</translation>
 <translation id="4988526792673242964">পৃষ্ঠা</translation>
@@ -4576,7 +4577,6 @@
 <translation id="5097349930204431044">আপুনি চোৱা ছাইটসমূহে আপুনি কি ভাল পায় সেয়া নিৰ্ণয় কৰিব পাৰে আৰু তাৰ পাছত আপুনি ব্ৰাউজ কৰি থাকোঁতে বিজ্ঞাপনৰ পৰামৰ্শ দিব পাৰে</translation>
 <translation id="5097649414558628673">সঁজুলি: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">কাৰ্ছৰডাল ৰৈ গ’লে স্বয়ংক্ৰিয়ভাৱে ক্লিক কৰক</translation>
-<translation id="5101683448725092498">আপোনাৰ বস্তুবোৰৰ বেকআপ লওক</translation>
 <translation id="5101839224773798795">কাৰ্জৰটো ৰৈ গ’লে স্বয়ংক্ৰিয়ভাৱে ক্লিক কৰক</translation>
 <translation id="5106350808162641062">আঁতৰাওক</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" />ক Family Linkএ তদাৰক কৰে। আপুনি অভিভাৱকীয় তদাৰকৰ সৈতে বিদ্যালয়ৰ সম্পদ এক্সেছ কৰিবলৈ বিদ্যালয়ৰ একাউণ্ট যোগ দিব পাৰে।</translation>
@@ -5142,7 +5142,6 @@
 <translation id="5623842676595125836">লগ</translation>
 <translation id="5624120631404540903">পাছৱৰ্ড সলনি কৰক</translation>
 <translation id="5625225435499354052">Google Payত সম্পাদনা কৰক</translation>
-<translation id="5625631605902707678">সমগ্ৰ ডিভাইচ</translation>
 <translation id="5626134646977739690">নাম:</translation>
 <translation id="5627086634964711283">আপুনি গৃহপৃষ্ঠাৰ বুটামত ক্লিক কৰিলে কি পৃষ্ঠা দেখুওৱা হ'ব সেয়াও নিয়ন্ত্ৰণ কৰে।</translation>
 <translation id="5627676517703583263">Chromeৰ জৰিয়তে স্মার্ট পদ্ধতিৰে ব্ৰাউজ কৰক</translation>
@@ -5254,7 +5253,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{এই ডেটা অথবা আপোনাৰ ডিভাইচে আপোনাৰ প্ৰতিষ্ঠানৰ কিছুমান সুৰক্ষা নীতি মানি চলা নাই। কি ঠিক কৰিব লাগে সেই বিষয়ে আপোনাৰ প্ৰশাসকৰ পৰা জানক।}=1{এই ফাইলটো অথবা আপোনাৰ ডিভাইচে আপোনাৰ প্ৰতিষ্ঠানৰ কিছুমান সুৰক্ষা নীতি মানি চলা নাই। কি ঠিক কৰিব লাগে সেই বিষয়ে আপোনাৰ প্ৰশাসকৰ পৰা জানক।}one{এই ফাইলসমূহে আপোনাৰ প্ৰতিষ্ঠানৰ কিছুমান সুৰক্ষা নীতি মানি চলা নাই। কি ঠিক কৰিব লাগে সেই বিষয়ে আপোনাৰ প্ৰশাসকৰ পৰা জানক।}other{এই ফাইলসমূহে আপোনাৰ প্ৰতিষ্ঠানৰ কিছুমান সুৰক্ষা নীতি মানি চলা নাই। কি ঠিক কৰিব লাগে সেই বিষয়ে আপোনাৰ প্ৰশাসকৰ পৰা জানক।}}</translation>
 <translation id="5736796278325406685">অনুগ্ৰহ কৰি এটা মান্য ব্যৱহাৰকাৰীৰ নাম দিয়ক</translation>
 <translation id="5738093759615225354">আপোনাৰ কম্পিউটাৰত ছাইন ইন কৰিবলৈ আপোনাক এই পাছকীটোৰ আৱশ্যক</translation>
-<translation id="5738329404678738022">ছিংক কৰি আপোনাৰ বুকমাৰ্ক আৰু অধিক ষ্ট’ৰ কৰক</translation>
 <translation id="5739017626473506901">বিদ্যালয়ৰ এটা একাউণ্ট যোগ দিয়াত <ph name="USER_NAME" />ক সহায় কৰিবলৈ ছাইন ইন কৰক</translation>
 <translation id="5739235828260127894">সত্যাপনৰ বাবে অপেক্ষা কৰি আছে। <ph name="LINK_BEGIN" />অধিক জানক<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">যথেষ্ট ডাঙৰ</translation>
@@ -5276,7 +5274,6 @@
 <translation id="5757375109985023827">পূৰ্বদৰ্শন কৰিবলৈ এটা টেব বাছনি কৰক</translation>
 <translation id="5758631781033351321">ইয়াত আপুনি নিজৰ পঢ়াৰ সূচীখন বিচাৰি পাব</translation>
 <translation id="5759728514498647443">আপুনি <ph name="APP_NAME" />ৰ মাধ্যমেৰে প্ৰিণ্টলৈ পঠিওৱা নথি <ph name="APP_NAME" />এ পঢ়িব পাৰিব।</translation>
-<translation id="5760508342220592715">অধিক লাভৰ বাবে ছাইন ইন কৰক</translation>
 <translation id="5762787084360227629">Google একাউণ্টৰ তথ্য দিয়ক</translation>
 <translation id="5763751966069581670">কোনো ইউএছবি ডিভাইচ পোৱা নাই</translation>
 <translation id="5764483294734785780">অডিঅ’ এই ধৰণে ছে&amp;ভ কৰক...</translation>
@@ -5312,6 +5309,7 @@
 <translation id="5792295754950501287"><ph name="CARD_DESCRIPTION" />ৰ বাবে আৰু অধিক কাৰ্য</translation>
 <translation id="5792728279623964091">অনুগ্ৰহ কৰি, আপোনাৰ পাৱাৰ বুটামটো টিপক</translation>
 <translation id="5792874008054171483"><ph name="SITE_NAME" />ৰ বাবে আৰু অধিক কাৰ্য</translation>
+<translation id="5793317771769868848">এই পৰিশোধ পদ্ধতিটো এই ডিভাইচটোৰ পৰা মচি পেলোৱা হ’ব</translation>
 <translation id="5793339252089865437">আপুনি যদি আপডে'টটো ম'বাইল ডেটা ব্যৱহাৰ কৰি ডাউনল'ড কৰে, এইটোৰ বাবে অতিমাত্ৰা মাচুল ভৰিবলগীয়া হ'ব পাৰে।</translation>
 <translation id="5793420564274426163">নিশ্চিতকৰণৰ পেয়াৰ কৰক</translation>
 <translation id="5793430094159150686">আপোনাৰ পাছৱৰ্ডটো সলনি কৰা হৈছে। আপোনাৰ স্থানীয় ডেটাখিনি পুনঃস্থাপন কৰইবলৈ, আপুনি নিজৰ পুৰণি পাছৱৰ্ডটো দিব লাগিব।</translation>
@@ -7292,6 +7290,7 @@
 <translation id="7609148976235050828">অনুগ্ৰহ কৰি ইন্টাৰনেটত সংযোগ কৰি পুনৰ চেষ্টা কৰক।</translation>
 <translation id="7612401678989660900">মাইক্ৰ’ফ’নৰ অনুমতি থকা এপ্‌ আৰু ৱেবছাইটৰ বাবে এক্সেছ কৰাৰ অনুমতি দিয়ে</translation>
 <translation id="7612655942094160088">সংযুক্ত হৈ থকা ফ’নৰ সুবিধাসমূহ সক্ষম কৰক।</translation>
+<translation id="7612989789287281429">আপোনাক ছাইন ইন কৰাই থকা হৈছে…</translation>
 <translation id="7614260613810441905">কোনো ছাইটে আপোনাৰ ডিভাইচত ফাইল অথবা ফ’ল্ডাৰসমূহ সম্পাদনা কৰিবলৈ বিচাৰিলে সোধক (চুপাৰিছ কৰা হয়)</translation>
 <translation id="761530003705945209">Google Driveত বেক আপ লওক। আপোনাৰ ডেটা সহজে পুনঃস্থাপন কৰক অথবা যিকোনো সময়তে ডিভাইচ সলনি কৰক। আপোনাৰ বেকআপত এপ্ ডেটাও আছে। আপোনাৰ বেকআপসমূহ Googleত আপল’ড কৰা হয় আৰু আপোনাৰ Google একাউণ্টৰ পাছৱৰ্ড ব্যৱহাৰ কৰি সেইবোৰ এনক্ৰিপ্ট কৰা হয়।</translation>
 <translation id="7615365294369022248">এটা একাউণ্ট যোগ দিওঁতে কিবা সমস্যা হৈছিল</translation>
@@ -7820,7 +7819,6 @@
 <translation id="8059417245945632445">&amp;ডিভাইচ পৰীক্ষা কৰক</translation>
 <translation id="8059456211585183827">ছেভ কৰিবলৈ কোনো প্ৰিণ্টাৰ উপলব্ধ নহয়।</translation>
 <translation id="8061091456562007989">এইটো পুনৰ সলনি কৰক</translation>
-<translation id="8061965471006133016">আপোনাৰ পাছৱৰ্ডৰ বাবে অধিক সুৰক্ষা আৰু অধিক</translation>
 <translation id="8061970399284390013">বানান আৰু ব্যাকৰণ পৰীক্ষা</translation>
 <translation id="8061991877177392872">আপুনি ইতিমধ্যে অন্য এটা ডিভাইচত আপোনাৰ Assistantৰ সৈতে Voice Match সুবিধাটো ছেট আপ কৰিছে যেন লাগিছে। এই পূৰ্বৰ ৰেকৰ্ডিংসমূহ এই ডিভাইচটোত এটা কণ্ঠধ্বনিৰ মডেল বনাবলৈ ব্যৱহাৰ কৰা হৈছে।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{১ খন কাগজ}one{{COUNT} খন কাগজ}other{{COUNT} খন কাগজ}}</translation>
@@ -8508,6 +8506,7 @@
 <translation id="869884720829132584">এপ্লিকেশ্বনৰ মেনু</translation>
 <translation id="869891660844655955">ম্যাদ উকলাৰ তাৰিখ</translation>
 <translation id="8699188901396699995"><ph name="PRINTER_NAME" />ৰ বাবে PPD</translation>
+<translation id="8702278591052316269">লুকুৱাই ৰখা ছেভ কৰি থোৱা টেবৰ গোট থকা মেনু</translation>
 <translation id="8702825062053163569">আপোনাৰ <ph name="DEVICE_TYPE" /> লক কৰা হৈছে।</translation>
 <translation id="8703346390800944767">বিজ্ঞাপন এৰি যাওক</translation>
 <translation id="8705331520020532516">ক্ৰমিক নম্বৰ</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index ec6b3780..3cf899c 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hipermətn Transport Protokolu (HTTPS)</translation>
 <translation id="1059944192885972544">'<ph name="SEARCH_TEXT" />' üçün <ph name="NUM" /> Tab tapılıb</translation>
 <translation id="1060292118287751956">Ekranın güncəllənmə tezliyini təyin edir</translation>
+<translation id="1060570945511946595">Biletləri idarə edin</translation>
 <translation id="1061130374843955397"><ph name="DEVICE_TYPE" /> cihazına xoş gəlmisiniz</translation>
 <translation id="1061373870045429865">Bu Keçid üçün QR Kodu yaradın</translation>
 <translation id="1061904396131502319">Fasilə vaxtıdır</translation>
@@ -1110,6 +1111,7 @@
 <translation id="1975841812214822307">Silin...</translation>
 <translation id="1976150099241323601">Təhlükəsizlik Cihazına daxil olun</translation>
 <translation id="1977965994116744507"><ph name="DEVICE_TYPE" /> cihazını kiliddən çıxarmaq üçün telefonunuzu yaxın tutun.</translation>
+<translation id="1978666928180318515">Bruschetta-nı silin</translation>
 <translation id="1979095679518582070">Bu xüsusiyyəti söndürmək bu cihazın sistem yeniləmələri və təhlükəsizlik kimi vacib xidmətlər üçün lazım olan məlumatları göndərmə imkanına təsir göstərmir.</translation>
 <translation id="1979280758666859181">Köhnə versiyalı <ph name="PRODUCT_NAME" /> ilə kanala keçirsiniz.</translation>
 <translation id="197989455406964291">KDC şifrələmə növünü dəstəkləmir</translation>
@@ -1916,6 +1918,7 @@
 <translation id="2672142220933875349">Crx fayl keyfiyyətsizdir, paketdən çıxarma alınmadı.</translation>
 <translation id="2673135533890720193">Brauzer tarixçənizi oxuyun</translation>
 <translation id="2674764818721168631">Deaktiv</translation>
+<translation id="2675570801872027281">Bruschetta-nı silərkən xəta oldu. Yenidən cəhd edin.</translation>
 <translation id="2676492189600898281">Avto doldurma rəyi təmin edin</translation>
 <translation id="2678063897982469759">Yenidən aktivləşdirin</translation>
 <translation id="2678100101831051676">Yayımlamaq alınmadı.</translation>
@@ -2914,6 +2917,7 @@
 <translation id="3593965109698325041">Sertifikat adları limitləri</translation>
 <translation id="3596012367874587041">Tətbiq ayarları</translation>
 <translation id="3596414637720633074">Anonim rejimdə üçüncü tərəf kukilərini bloklayın</translation>
+<translation id="3598010454707842106">“Chrome-u fərdiləşdirin” üzərinə klikləyin</translation>
 <translation id="3599221874935822507">Qabarıq</translation>
 <translation id="3600051066689725006">Veb sorğu məlumatı</translation>
 <translation id="360180734785106144">Yeni funksiyalar əlçatan olduqda təklif edin</translation>
@@ -3909,6 +3913,7 @@
 <translation id="4495419450179050807">Bu səhifədə göstərməyin</translation>
 <translation id="4497145443434063861">PC və Chromecast müxtəlif Wi-Fi şəbəkələrindədir (məsələn, 2.4GHz və ya 5GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ilə bağlı xəta oldu</translation>
+<translation id="4500647907053779331">&amp;Seçilən hissəni <ph name="LANGUAGE" /> dilinə tərcümə edin</translation>
 <translation id="450099669180426158">Nida işarəsi</translation>
 <translation id="4501530680793980440">Silinməni təsdiq edin</translation>
 <translation id="4502423230170890588">Bu cihazdan silin</translation>
@@ -3939,6 +3944,7 @@
 <translation id="4522890784888918985">Uşaq hesabları dəstəklənmir</translation>
 <translation id="4523876148417776526">XML sayt siyahıları hələ əldə edilməyib.</translation>
 <translation id="4524832533047962394">Təchiz olunmuş qeydiyyat rejimi əməliyyat sisteminin bu versiyası tərəfindən dəstəklənmir. Ən yeni versiyanı istifadə etdiyinizdən əmin olun.</translation>
+<translation id="4526051299161934899">Gizli saxlanmış tab qrupları</translation>
 <translation id="4526853756266614740">Temanı dərhal tətbiq etmək üçün şəkil seçin</translation>
 <translation id="452750746583162491">Sinxronlaşdırılmış datanızı nəzərdən keçirin</translation>
 <translation id="4527929807707405172">Əksinə sürüşdürməni aktivləşdirin. <ph name="LINK_BEGIN" />Ətraflı məlumat<ph name="LINK_END" /></translation>
@@ -4438,7 +4444,6 @@
 <translation id="4977942889532008999">Girişi təsdiqləyin</translation>
 <translation id="4980805016576257426">Bu artırmada virus var.</translation>
 <translation id="4981449534399733132">Axtarış tarixçəsini bütün sinxronizasiya olunmuş cihazlardan və Google Hesabınızdan silmək üçün <ph name="BEGIN_LINK" />daxil olun<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">İstənilən cihazda qaldığınız yerdən davam edin</translation>
 <translation id="4986706507552097681">Sinxronizasiya seçimlərini ayarlarda edə bilərsiniz. Google tarixçənizə əsasən Axtarış və digər xidmətləri fərdiləşdirə bilər.</translation>
 <translation id="4986728572522335985">Bu əməliyyat PIN kod daxil olmaqla təhlükəsizlik açarınızdakı bütün verilənləri siləcək</translation>
 <translation id="4988526792673242964">Səhifələr</translation>
@@ -4555,7 +4560,6 @@
 <translation id="5097349930204431044">Ziyarət etdiyiniz saytlar nəyi bəyəndiyinizi müəyyən edə bilər və siz baxışa davam edərkən reklamlar təklif edə bilər</translation>
 <translation id="5097649414558628673">Alət: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Kursor dayandıqda avtomatik basılsın</translation>
-<translation id="5101683448725092498">Elementlərinizi yedəkləyin</translation>
 <translation id="5101839224773798795">Kursor dayandıqda avtomatik klikləyin</translation>
 <translation id="5106350808162641062">Silin</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> Family Link tərəfindən idarə edilir. Valideyn nəzarəti ilə məktəb resurslarına giriş üçün məktəb hesabları əlavə edə bilərsiniz.</translation>
@@ -5121,7 +5125,6 @@
 <translation id="5623842676595125836">log</translation>
 <translation id="5624120631404540903">Parolları idarə edin</translation>
 <translation id="5625225435499354052">Google Pay'də redaktə edin</translation>
-<translation id="5625631605902707678">Cihazlarda</translation>
 <translation id="5626134646977739690">Ad:</translation>
 <translation id="5627086634964711283">Həmçinin, əsas səhifə düyməsinə klikləyəndə göstəriləsi səhifəyə nəzarət edir.</translation>
 <translation id="5627676517703583263">Chrome ilə ağıllı axtarış edin</translation>
@@ -5233,7 +5236,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Bu data və ya cihazınız təşkilatınızın bəzi təhlükəsizlik siyasətlərinə uyğun gəlmir. Nəyin düzəldilməli olduğunu admininizlə dəqiqləşdirin.}=1{Bu fayl və ya cihazınız təşkilatınızın bəzi təhlükəsizlik siyasətlərinə uyğun gəlmir. Nəyin düzəldilməli olduğunu admininizlə dəqiqləşdirin.}other{Bu fayllar təşkilatınızın bəzi təhlükəsizlik siyasətlərinə uyğun gəlmir. Nəyin düzəldilməli olduğunu admininizlə dəqiqləşdirin.}}</translation>
 <translation id="5736796278325406685">Etibarlı istifadəçi adı daxil edin</translation>
 <translation id="5738093759615225354">Kompüterinizə daxil olmaq üçün bu parola ehtiyacınız var</translation>
-<translation id="5738329404678738022">Sinxronizasiya ilə əlfəcinlərinizi və daha çoxunu saxlayın</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> adlı istifadəçiyə məktəb hesabı əlavə etməkdə yardım etmək üçün daxil olun</translation>
 <translation id="5739235828260127894">Doğrulama gözlənilir. <ph name="LINK_BEGIN" />Ətraflı məlumat.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Çox böyük</translation>
@@ -5255,7 +5257,6 @@
 <translation id="5757375109985023827">Önizləmək üçün tab seçin</translation>
 <translation id="5758631781033351321">Oxu siyahısını burada tapa bilərsiniz</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> vasitəsilə çapa göndərdiyiniz sənədlər <ph name="APP_NAME" /> tərəfindən oxuna bilər.</translation>
-<translation id="5760508342220592715">Daha çox üstünlüklər üçün daxil olun</translation>
 <translation id="5762787084360227629">Google Hesabı haqqında məlumatı daxil edin</translation>
 <translation id="5763751966069581670">USB cihazı tapılmadı</translation>
 <translation id="5764483294734785780">Audionun saxlanma formatı:</translation>
@@ -5724,6 +5725,7 @@
 <translation id="617213288191670920">Dil əlavə edilməyib</translation>
 <translation id="6173623053897475761">PIN kodu yenidən yazın</translation>
 <translation id="6175314957787328458">Microsoft Domain GUID</translation>
+<translation id="6177412385419165772">Silinir...</translation>
 <translation id="6178664161104547336">Sertifikat seçin</translation>
 <translation id="6178682841350631965">Giriş datanız güncəllənib</translation>
 <translation id="6180510783007738939">Sətir Aləti</translation>
@@ -6200,6 +6202,7 @@
 <translation id="6619801788773578757">Kiosk tətbiqi əlavə edin</translation>
 <translation id="6619990499523117484">PİN kodunuzu təsdiq edin</translation>
 <translation id="6620254580880484313">Konteynerin adı</translation>
+<translation id="6620927550847360014">Bruschetta <ph name="DEVICE_TYPE" /> cihazından silinsin?</translation>
 <translation id="6621391692573306628">Bu tabı başqa cihaza göndərmək üçün hər iki cihazda Chrome'a daxil olun</translation>
 <translation id="6622980291894852883">Təsvirləri blok etməyə davam edin</translation>
 <translation id="6624036901798307345">Planşet rejimində hər tabın miniatürlərini göstərən yeni tab zolağını açmaq üçün tab sayğacı alətlər paneli düyməsinə toxunun.</translation>
@@ -6417,6 +6420,7 @@
 <translation id="6818547713623251698">Telefonunuzun fotolarına, mediasına, bildirişlərinə və tətbiqlərinə baxın</translation>
 <translation id="6818802132960437751">Daxili virus qoruması</translation>
 <translation id="6818920801736417483">Parollar yadda saxlansın?</translation>
+<translation id="6820079682647046800">Kerberos identifikasiyası alınmadı</translation>
 <translation id="6823174134746916417">Taçpedin toxunaraq klikləmə funksiyası</translation>
 <translation id="6824564591481349393">E-poçt Ünvanını Kopyalayın</translation>
 <translation id="6824584962142919697">&amp;Elementləri yoxlayın</translation>
@@ -6571,6 +6575,7 @@
 <translation id="6955698182324067397">ChromeOS baq ləğvini aktivləşdirirsiniz ki, sshd daemon quraşdırır və USB cihazlarından yüklənməyə imkan verir.</translation>
 <translation id="6955893174999506273">Daha 1 keçirici təyin edin</translation>
 <translation id="6957044667612803194">Bu güvənlik açarı PIN kodları dəstəkləmir</translation>
+<translation id="6960133692707095572">Biletsiz daxil olun</translation>
 <translation id="6960507406838246615">Linux güncəlləməsi tələb edilir</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> dilində danışıq fayllarını endirmək mümkün olmadı. Endirməyə daha sonra cəhd ediləcək. Danışıq endirmə tamamlanana qədər emal üçün Google'a göndərilir.</translation>
 <translation id="696103774840402661">Bu <ph name="DEVICE_TYPE" /> cihazındakı bütün istifadəçilər üçün bütün fayllar və yerli data həmişəlik silinib.</translation>
@@ -7791,7 +7796,6 @@
 <translation id="8059417245945632445">&amp;Cihazları aşkarlayın</translation>
 <translation id="8059456211585183827">Yadda saxlanıla biləcək printer yoxdur.</translation>
 <translation id="8061091456562007989">Əvvəlki ayarları qaytarın</translation>
-<translation id="8061965471006133016">Parollarınız və daha çoxu üçün əlavə qoruma</translation>
 <translation id="8061970399284390013">Orfoqrafik və qrammatik yoxlanış</translation>
 <translation id="8061991877177392872">Görünür, başqa cihazda Assistentiniz ilə Voice Match ayarlamısınız. Əvvəlki səs yazmaları bu cihazda səs modeli yaratmaq üçün istifadə edilib.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 vərəq}other{{COUNT} vərəq}}</translation>
@@ -8032,6 +8036,7 @@
 <translation id="8272443605911821513">"Digər alətlər" menyusunda Artırmalara klikləməklə artırmalarınızı idarə edin.</translation>
 <translation id="8272786333453048167">Yenidən icazə verin</translation>
 <translation id="8273905181216423293">İndi endirin</translation>
+<translation id="827488840488530039">Daxil olmaq istədiyiniz səhifə Kerberos biletlərini doğrulaya bilmədi</translation>
 <translation id="8274921654076766238">Böyüdücü klaviatura fokusunu izləyir</translation>
 <translation id="8274924778568117936">Yeniləmə tamamlanana qədər <ph name="DEVICE_TYPE" /> cihazını deaktiv etməyin və ya bağlamayın. <ph name="DEVICE_TYPE" /> quraşdırmadan sonra yenidən başlayacaq.</translation>
 <translation id="8275038454117074363">İmport edin</translation>
@@ -8478,6 +8483,7 @@
 <translation id="869884720829132584">Tətbiqlər menyusu</translation>
 <translation id="869891660844655955">Bitmə tarixi</translation>
 <translation id="8699188901396699995"><ph name="PRINTER_NAME" /> üçün PPD</translation>
+<translation id="8702278591052316269">Gizli saxlanmış tab qrupları olan menyu</translation>
 <translation id="8702825062053163569"><ph name="DEVICE_TYPE" /> cihazınız kilidlənib.</translation>
 <translation id="8703346390800944767">Reklamı Keçin</translation>
 <translation id="8705331520020532516">Seriya Nömrəsi</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index d74a1aa..0fc45ed9c 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Абаронены пратакол перадачы гіпертэксту (HTTPS)</translation>
 <translation id="1059944192885972544">Знойдзена некалькі (<ph name="NUM" />) укладак па запыце "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="1060292118287751956">Вызначае частату абнаўлення экрана</translation>
+<translation id="1060570945511946595">Кіраваць білетамі</translation>
 <translation id="1061130374843955397">Вас вітае <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Стварыць QR-код для гэтай спасылкі</translation>
 <translation id="1061904396131502319">Набліжаецца час блакіроўкі</translation>
@@ -380,6 +381,7 @@
 <translation id="1339009753652684748">Звяртацца да Памочніка, вымавіўшы "Ok Google". У мэтах эканоміі зараду акумулятара выберыце "Уключыць (рэкамендуецца)". Памочнік будзе адказваць, толькі калі прылада будзе падключана да крыніцы сілкавання або падчас зарадкі.</translation>
 <translation id="13392265090583506">Даступнасць</translation>
 <translation id="1340527397989195812">Стварыце рэзервовыя копіі файлаў мультымедыя з прылады з дапамогай праграмы "Файлы".</translation>
+<translation id="1341701348342335220">Выдатна!</translation>
 <translation id="1341871421050612057">Ва ўліковым запісе <ph name="USERNAME" /> выкарыстоўваць сінхранізацыю нельга</translation>
 <translation id="1343865611738742294">Даць праграмам Linux доступ да прылад USB. Linux будзе забываць выдаленыя прылады USB.</translation>
 <translation id="1343920184519992513">Працягваць з месца, на якім вы спыніліся, і адкрываць пэўны набор старонак</translation>
@@ -1116,6 +1118,7 @@
 <translation id="1975841812214822307">Выдаліць...</translation>
 <translation id="1976150099241323601">Уваход на прыладу бяспекі</translation>
 <translation id="1977965994116744507">Паднясіце свой тэлефон бліжэй, каб разблакіраваць <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Выдаліць Bruschetta</translation>
 <translation id="1979095679518582070">Калі вы выключыце гэту функцыю, прылада ўсё роўна будзе адпраўляць даныя, неабходныя для працы асноўных сэрвісаў, такіх як абнаўленне сістэмы і бяспека прылады.</translation>
 <translation id="1979280758666859181">Вы пераходзіце на канал са старэйшай версіяй <ph name="PRODUCT_NAME" />. Змена канала адбудзецца, калі версія канала будзе адпавядаць версіі, усталяванай на вашай прыладзе.</translation>
 <translation id="197989455406964291">KDC не падтрымлівае шыфраванне гэтых тыпаў</translation>
@@ -1919,6 +1922,7 @@
 <translation id="2672142220933875349">Памылка распакоўкі: недапушчальны файл "crx".</translation>
 <translation id="2673135533890720193">Чытанне вашай гісторыі прагляду сайтаў</translation>
 <translation id="2674764818721168631">Выключана</translation>
+<translation id="2675570801872027281">Пры выдаленні Bruschetta адбылася памылка. Паўтарыце спробу.</translation>
 <translation id="2676492189600898281">Пакінуць водгук пра функцыю аўтазапаўнення</translation>
 <translation id="2678063897982469759">Паўторна ўключыць</translation>
 <translation id="2678100101831051676">Не ўдалося запусціць трансляцыю.</translation>
@@ -2917,6 +2921,7 @@
 <translation id="3593965109698325041">Абмежаванні назваў сертыфікатаў</translation>
 <translation id="3596012367874587041">Налады праграмы</translation>
 <translation id="3596414637720633074">Блакіраваць староннія файлы cookie у рэжыме інкогніта</translation>
+<translation id="3598010454707842106">Націсніце "Наладзіць Chrome"</translation>
 <translation id="3599221874935822507">Прыўзняты</translation>
 <translation id="3600051066689725006">Звесткі пра вэб-запыт</translation>
 <translation id="360180734785106144">Прапаноўваць новыя функцыі, як толькі яны з'яўляюцца</translation>
@@ -3625,6 +3630,7 @@
 <translation id="4232375817808480934">Канфігурацыя Kerberos</translation>
 <translation id="4235965441080806197">Скасаваць уваход</translation>
 <translation id="4236163961381003811">Паглядзець іншыя пашырэнні</translation>
+<translation id="4237282663517880406">Паказваць прапановы ад Google Дыска</translation>
 <translation id="4241182343707213132">Каб абнавіць праграмы арганізацыі, перазапусціце прыладу</translation>
 <translation id="4242145785130247982">Выкарыстанне некалькі кліенцкіх сертыфікатаў не падтрымліваецца</translation>
 <translation id="4242533952199664413">Адкрыць налады</translation>
@@ -3911,6 +3917,7 @@
 <translation id="4495419450179050807">Не паказваць на гэтай старонцы</translation>
 <translation id="4497145443434063861">ПК і прылада Chromecast знаходзяцца ў розных сетках Wi-Fi (напрыклад, 2,4 ГГц і 5 ГГц)</translation>
 <translation id="4500114933761911433">Убудова "<ph name="PLUGIN_NAME" />" дала збой</translation>
+<translation id="4500647907053779331">&amp;Перакласці вылучаны тэкст на мову: <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Значок клічніка</translation>
 <translation id="4501530680793980440">Пацвердзіць выдаленне</translation>
 <translation id="4502423230170890588">Выдаліць з гэтай прылады</translation>
@@ -4440,7 +4447,6 @@
 <translation id="4977942889532008999">Пацвярджэнне доступу</translation>
 <translation id="4980805016576257426">Гэта пашырэнне змяшчае шкоднае ПЗ.</translation>
 <translation id="4981449534399733132">Каб ачысціць даныя прагляду з усіх сінхранізаваных прылад і Уліковага запісу Google, <ph name="BEGIN_LINK" />увайдзіце ва ўліковы запіс<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Пачынайце з таго месца, дзе спыніліся, на любой прыладзе</translation>
 <translation id="4986706507552097681">У наладах заўсёды можна выбраць, што трэба сінхранізаваць. Google можа персаналізаваць Пошук і іншыя сэрвісы на аснове гісторыі прагляду вамі сайтаў.</translation>
 <translation id="4986728572522335985">Будуць выдалены ўсе даныя на ключы бяспекі, уключаючы яго PIN-код</translation>
 <translation id="4988526792673242964">Старонкі</translation>
@@ -4557,7 +4563,6 @@
 <translation id="5097349930204431044">Сайты, якія вы наведваеце, могуць вызначаць, што вам падабаецца, і пазней паказваць вам больш рэлевантную для вас рэкламу</translation>
 <translation id="5097649414558628673">Інструмент: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Аўтаматычна націскаць клавішу мышы, калі курсор спыняецца</translation>
-<translation id="5101683448725092498">Рэзервовае капіраванне даных</translation>
 <translation id="5101839224773798795">Аўтаматычна націскаць, калі курсор спыняецца</translation>
 <translation id="5106350808162641062">Выдаліць</translation>
 <translation id="510695978163689362">Уліковы запіс <ph name="USER_EMAIL" /> кантралюецца праз Family Link. Каб пад бацькоўскім кантролем атрымліваць доступ да навучальных матэрыялаў, вы можаце дадаваць навучальныя ўліковыя запісы.</translation>
@@ -5123,7 +5128,6 @@
 <translation id="5623842676595125836">Журнал</translation>
 <translation id="5624120631404540903">Кіраваць паролямі</translation>
 <translation id="5625225435499354052">Змяніць даныя ў Google Pay</translation>
-<translation id="5625631605902707678">Сінхранізацыя даных на розных прыладах</translation>
 <translation id="5626134646977739690">Назва:</translation>
 <translation id="5627086634964711283">Таксама вызначае, якая старонка паказваецца пры націсканні кнопкі галоўнай старонкі.</translation>
 <translation id="5627676517703583263">Інтэлектуальны прагляд вэб-старонак – у браўзеры Chrome</translation>
@@ -5235,7 +5239,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Гэтыя даныя або ваша прылада не адпавядаюць некаторым палітыкам бяспекі вашай арганізацыі. Каб вырашыць праблемы, з якімі вы сутыкнуліся, звяжыцеся з адміністратарам.}=1{Гэты файл або ваша прылада не адпавядаюць некаторым палітыкам бяспекі вашай арганізацыі. Каб вырашыць праблемы, з якімі вы сутыкнуліся, звяжыцеся з адміністратарам.}one{Гэтыя файлы не адпавядаюць некаторым палітыкам бяспекі вашай арганізацыі. Каб вырашыць праблемы, з якімі вы сутыкнуліся, звяжыцеся з адміністратарам.}few{Гэтыя файлы не адпавядаюць некаторым палітыкам бяспекі вашай арганізацыі. Каб вырашыць праблемы, з якімі вы сутыкнуліся, звяжыцеся з адміністратарам.}many{Гэтыя файлы не адпавядаюць некаторым палітыкам бяспекі вашай арганізацыі. Каб вырашыць праблемы, з якімі вы сутыкнуліся, звяжыцеся з адміністратарам.}other{Гэтыя файлы не адпавядаюць некаторым палітыкам бяспекі вашай арганізацыі. Каб вырашыць праблемы, з якімі вы сутыкнуліся, звяжыцеся з адміністратарам.}}</translation>
 <translation id="5736796278325406685">Увядзіце сапраўднае імя карыстальніка</translation>
 <translation id="5738093759615225354">Гэты ключ доступу патрабуецца для ўваходу ў сістэму на камп'ютары</translation>
-<translation id="5738329404678738022">Сінхранізуйце закладкі і іншыя даныя</translation>
 <translation id="5739017626473506901">Увайдзіце, каб дапамагчы дзіцяці (<ph name="USER_NAME" />) дадаць навучальны ўліковы запіс</translation>
 <translation id="5739235828260127894">Чаканне спраўджання. <ph name="LINK_BEGIN" />Даведацца больш<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Вельмі вялікі</translation>
@@ -5257,7 +5260,6 @@
 <translation id="5757375109985023827">Выберыце ўкладку для перадпрагляду</translation>
 <translation id="5758631781033351321">Ваш спіс чытання знаходзіцца тут</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> можа праглядаць дакументы, якія <ph name="APP_NAME" /> прызначае для друку.</translation>
-<translation id="5760508342220592715">Увайдзіце і выкарыстоўвайце дадатковыя магчымасці</translation>
 <translation id="5762787084360227629">Увесці даныя Уліковага запісу Google</translation>
 <translation id="5763751966069581670">Прылады USB не знойдзены</translation>
 <translation id="5764483294734785780">За&amp;хаваць аўдыя як...</translation>
@@ -5728,6 +5730,7 @@
 <translation id="617213288191670920">Мовы не дададзены</translation>
 <translation id="6173623053897475761">Увядзіце PIN-код яшчэ раз</translation>
 <translation id="6175314957787328458">GUID дамена Microsoft</translation>
+<translation id="6177412385419165772">Ідзе выдаленне...</translation>
 <translation id="6178664161104547336">Выберыце сертыфікат</translation>
 <translation id="6178682841350631965">Даныя для ўваходу абноўлены</translation>
 <translation id="6180510783007738939">Інструмент "Лінія"</translation>
@@ -6210,6 +6213,7 @@
 <translation id="6619801788773578757">Дадаць праграму-кіёск</translation>
 <translation id="6619990499523117484">Пацвердзіце PIN-код</translation>
 <translation id="6620254580880484313">Назва кантэйнера</translation>
+<translation id="6620927550847360014">Выдаліць Bruschetta з прылады <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Каб адправіць гэту ўкладку на іншую прыладу, увайдзіце ў Chrome з абедзвюх прылад</translation>
 <translation id="6622980291894852883">Працягнуць блакіраваць відарысы</translation>
 <translation id="6624036901798307345">Планшэтны рэжым: кнопка лічыльніка ўкладак на панэлі інструментаў адкрывае новую панэль укладак з мініяцюрамі кожнай укладкі.</translation>
@@ -6427,6 +6431,7 @@
 <translation id="6818547713623251698">Прагляд фота, медыяфайлаў, апавяшчэнняў і праграм з тэлефона</translation>
 <translation id="6818802132960437751">Убудаваная абарона ад вірусаў</translation>
 <translation id="6818920801736417483">Захаваць паролі?</translation>
+<translation id="6820079682647046800">Памылка аўтэнтыфікацыі Kerberos</translation>
 <translation id="6823174134746916417">Націсканне дотыкам да сэнсарнай панэлі</translation>
 <translation id="6824564591481349393">Скапіраваць &amp;адрас электроннай пошты</translation>
 <translation id="6824584962142919697">&amp;Праверыць элементы</translation>
@@ -6581,6 +6586,7 @@
 <translation id="6955698182324067397">Вы ўключаеце функцыі адладкі Chrome OS. Будзе наладжаны дэман SSHD і дазволена загрузка з USB-дыскаў.</translation>
 <translation id="6955893174999506273">Прызначыць яшчэ 1 пераключальнік</translation>
 <translation id="6957044667612803194">Гэты ключ бяспекі не падтрымлівае PIN-коды</translation>
+<translation id="6960133692707095572">Наведаць без білета</translation>
 <translation id="6960507406838246615">Патрабуецца абнаўленне Linux</translation>
 <translation id="6960648667961844909">Не ўдалося спампаваць файлы для распазнавання маўлення на наступнай мове: <ph name="LANGUAGE" />. Спроба спампаваць будзе зроблена пазней. Да завяршэння спампоўвання аўдыяматэрыял адпраўляецца для апрацоўкі ў Google.</translation>
 <translation id="696103774840402661">Усе файлы і лакальныя даныя ўсіх карыстальнікаў прылады <ph name="DEVICE_TYPE" /> выдалены назаўсёды.</translation>
@@ -7801,7 +7807,6 @@
 <translation id="8059417245945632445">&amp;Праверыць прылады</translation>
 <translation id="8059456211585183827">Няма даступных прынтараў, якія можна захаваць.</translation>
 <translation id="8061091456562007989">Вярнуць ранейшыя налады</translation>
-<translation id="8061965471006133016">Дадатковая абарона пароляў і не толькі</translation>
 <translation id="8061970399284390013">Праверка правапісу і граматыкі</translation>
 <translation id="8061991877177392872">Здаецца, вы ўжо наладзілі работу функцыі Voice Match з Памочнікам на іншай прыладзе. Зробленыя пры наладцы запісы былі выкарыстаны для стварэння галасавой мадэлі на гэтай прыладзе.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 аркуш паперы}one{{COUNT} аркуш паперы}few{{COUNT} аркушы паперы}many{{COUNT} аркушаў паперы}other{{COUNT} аркуша паперы}}</translation>
@@ -8042,6 +8047,7 @@
 <translation id="8272443605911821513">Каб кіраваць пашырэннямі, націсніце кнопку "Пашырэнні" ў меню "Іншыя інструменты".</translation>
 <translation id="8272786333453048167">Даць дазволы зноў</translation>
 <translation id="8273905181216423293">Спампаваць</translation>
+<translation id="827488840488530039">Старонцы, якую вы спрабуеце наведаць, не ўдалося праверыць вашы білеты Kerberos</translation>
 <translation id="8274921654076766238">Лупа перамяшчаецца за фокусам клавіятуры</translation>
 <translation id="8274924778568117936">Не выключайце і не закрывайце <ph name="DEVICE_TYPE" />, пакуль не скончыцца абнаўленне. <ph name="DEVICE_TYPE" /> перазапусціцца па заканчэнні ўсталявання.</translation>
 <translation id="8275038454117074363">Імпартаваць</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 564e1a487..600e1efda 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -379,6 +379,7 @@
 <translation id="1339009753652684748">Кажете „Ok Google“ за достъп до Асистент. С цел икономия на батерия изберете „Включено (препоръчително)“. Асистент ще отговаря само когато устройството ви е включено в електрическата мрежа или се зарежда.</translation>
 <translation id="13392265090583506">Настройки за достъпност</translation>
 <translation id="1340527397989195812">Създаване на резервно копие на носителя от устройството с помощта на приложението Файлове.</translation>
+<translation id="1341701348342335220">Браво!</translation>
 <translation id="1341871421050612057">Синхронизирането с(ъс) <ph name="USERNAME" /> не е възможно</translation>
 <translation id="1343865611738742294">Разрешаване на приложенията за Linux да осъществяват достъп до USB устройства. Linux няма да запомни дадено USB устройство, след като бъде премахнато.</translation>
 <translation id="1343920184519992513">Продължаване оттам, откъдето сте прекъснали, и отваряне на определен набор от страници</translation>
@@ -3636,6 +3637,7 @@
 <translation id="4232375817808480934">Конфигуриране на Kerberos</translation>
 <translation id="4235965441080806197">Анулиране на влизането</translation>
 <translation id="4236163961381003811">Откриване на още разширения</translation>
+<translation id="4237282663517880406">Показване на предложения от Google Диск</translation>
 <translation id="4241182343707213132">Рестартирайте, за да актуализирате приложенията на организацията си</translation>
 <translation id="4242145785130247982">Не се поддържа използването на няколко клиентски сертификата</translation>
 <translation id="4242533952199664413">Отваряне на настройките</translation>
@@ -4452,7 +4454,6 @@
 <translation id="4977942889532008999">Потвърждаване на достъпа</translation>
 <translation id="4980805016576257426">Това разширение съдържа злонамерен софтуер.</translation>
 <translation id="4981449534399733132">За да изчистите данните за сърфирането от всичките си синхронизирани устройства и от профила си в Google, <ph name="BEGIN_LINK" />влезте в него<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Продължавайте оттам, откъдето сте прекъснали – на което и да е устройство</translation>
 <translation id="4986706507552097681">Винаги можете да изберете какво да се синхронизира от настройките. Google може да персонализира Търсене и други услуги въз основа на историята ви.</translation>
 <translation id="4986728572522335985">Това ще изтрие всички данни на ключа за сигурност, включително ПИН кода му</translation>
 <translation id="4988526792673242964">Страници</translation>
@@ -4569,7 +4570,6 @@
 <translation id="5097349930204431044">Посещаваните от вас сайтове могат да определят какво харесвате и след това да предлагат реклами, докато продължавате да сърфирате</translation>
 <translation id="5097649414558628673">Инструмент: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Автоматично кликване при спиране на курсора</translation>
-<translation id="5101683448725092498">Създавайте резервни копия на нещата си</translation>
 <translation id="5101839224773798795">Автоматично кликване при спиране на курсора</translation>
 <translation id="5106350808162641062">Премахване</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> се контролира чрез Family Link. Можете да добавите училищни профили за достъп до училищни ресурси с родителски контрол.</translation>
@@ -5136,7 +5136,6 @@
 <translation id="5623842676595125836">Регистрационен файл</translation>
 <translation id="5624120631404540903">Управление на паролите</translation>
 <translation id="5625225435499354052">Редактиране в Google Pay</translation>
-<translation id="5625631605902707678">Безпроблемно преминаване между устройства</translation>
 <translation id="5626134646977739690">Име:</translation>
 <translation id="5627086634964711283">То също контролира коя страница се показва при кликване върху бутона „Начална страница“.</translation>
 <translation id="5627676517703583263">Сърфирайте интелигентно с Chrome</translation>
@@ -5248,7 +5247,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Тези данни или устройството ви не спазват някои от правилата за сигурност на организацията ви. Попитайте администратора си какво трябва да се коригира.}=1{Този файл или устройството ви не спазват някои от правилата за сигурност на организацията ви. Попитайте администратора си какво трябва да се коригира.}other{Тези файлове не спазват някои от правилата за сигурност на организацията ви. Попитайте администратора си какво трябва да се коригира.}}</translation>
 <translation id="5736796278325406685">Моля, въведете валидно потребителско име</translation>
 <translation id="5738093759615225354">Този код за достъп ви е необходим, за да влезете в профила си на компютъра си</translation>
-<translation id="5738329404678738022">Съхранявайте отметки и др., като включите синхронизирането</translation>
 <translation id="5739017626473506901">Влезте в профила си, за да помогнете на <ph name="USER_NAME" /> да добави профил от учебно заведение</translation>
 <translation id="5739235828260127894">Чака се потвърждение. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Много голям</translation>
@@ -5270,7 +5268,6 @@
 <translation id="5757375109985023827">Изберете раздел за визуализиране</translation>
 <translation id="5758631781033351321">Тук ще се показва списъкът ви за четене</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> може да чете документите, които изпращате за отпечатване чрез <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Влезте в профила си за още предимства</translation>
 <translation id="5762787084360227629">Въвеждане на данни за профил в Google</translation>
 <translation id="5763751966069581670">Няма намерени USB устройства</translation>
 <translation id="5764483294734785780">&amp;Запазване на аудиоклипа като...</translation>
@@ -7809,7 +7806,6 @@
 <translation id="8059417245945632445">&amp;Инспектиране на устройствата</translation>
 <translation id="8059456211585183827">Няма налични принтери за запазване.</translation>
 <translation id="8061091456562007989">Възстановяване на настройките</translation>
-<translation id="8061965471006133016">Допълнителна защита за паролите ви и др.</translation>
 <translation id="8061970399284390013">Проверка на правописа и граматиката</translation>
 <translation id="8061991877177392872">Изглежда, че вече сте настроили Voice Match за Асистент на друго устройство. Предишните записи бяха използвани за създаване на гласов модел на това устройство.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 лист хартия}other{{COUNT} листа хартия}}</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 0129e48d..3b4195d 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">হাইপারটেক্সট ট্রান্সপোর্ট প্রোটোকল (HTTPS)</translation>
 <translation id="1059944192885972544">'<ph name="SEARCH_TEXT" />'-এর জন্য <ph name="NUM" />টি ট্যাব পাওয়া গেছে</translation>
 <translation id="1060292118287751956">স্ক্রিন আপডেট হওয়ার ফ্রিকোয়েন্সি নির্ধারণ করে</translation>
+<translation id="1060570945511946595">টিকিট ম্যানেজ করুন</translation>
 <translation id="1061130374843955397">আপনার <ph name="DEVICE_TYPE" />-এ স্বাগতম</translation>
 <translation id="1061373870045429865">এই লিঙ্কের জন্য QR কোড তৈরি করুন</translation>
 <translation id="1061904396131502319">বিরতির সময় হতে চলেছে</translation>
@@ -1127,6 +1128,7 @@
 <translation id="1975841812214822307">সরান...</translation>
 <translation id="1976150099241323601">সিকিউরিটি ডিভাইসে সাইন-ইন করুন</translation>
 <translation id="1977965994116744507">আপনার <ph name="DEVICE_TYPE" /> আনলক করতে আপনার ফোন কাছাকাছি আনুন।</translation>
+<translation id="1978666928180318515">Bruschetta সরান</translation>
 <translation id="1979095679518582070">এই ফিচারটি বন্ধ করে দিলেও এই ডিভাইসটি সিস্টেম আপডেট এবং নিরাপত্তার জন্য প্রয়োজনীয় পরিষেবা সম্পর্কিত তথ্য পাঠাতে পারে।</translation>
 <translation id="1979280758666859181"><ph name="PRODUCT_NAME" />-এর পুরনো ভার্সন দিয়ে একটি চ্যানেলে পরিবর্তন করছেন৷ যখন আপনার ডিভাইসে বর্তমানে ইনস্টল করা ভার্সনের সঙ্গে চ্যানেলের ভার্সনটি মিলে যাবে তখনই চ্যানেল পরিবর্তন প্রযুক্ত হবে৷</translation>
 <translation id="197989455406964291">উল্লিখিত এনক্রিপশনের ধরন KDC-তে কাজ করে না</translation>
@@ -1933,6 +1935,7 @@
 <translation id="2672142220933875349">খারাপ crx ফাইল, প্যাকমুক্ত করতে ব্যর্থ হয়েছে৷</translation>
 <translation id="2673135533890720193">আপনার ব্রাউজিং ইতিহাস পড়ুন</translation>
 <translation id="2674764818721168631">বন্ধ করা আছে</translation>
+<translation id="2675570801872027281">Bruschetta সরানোর সময় সমস্যা হয়েছে। আবার চেষ্টা করুন।</translation>
 <translation id="2676492189600898281">আপনা-আপনি পূরণ হওয়ার বিষয়ে মতামত প্রদান করুন</translation>
 <translation id="2678063897982469759">পুনঃ সক্ষম</translation>
 <translation id="2678100101831051676">কাস্ট করা যায়নি।</translation>
@@ -2931,6 +2934,7 @@
 <translation id="3593965109698325041">সার্টিফিকেট নাম সীমাবদ্ধতাসমূহ</translation>
 <translation id="3596012367874587041">অ্যাপ সেটিংস</translation>
 <translation id="3596414637720633074">ছদ্মবেশী মোডে থার্ড-পার্টি কুকি ব্লক করুন</translation>
+<translation id="3598010454707842106">“Chrome কাস্টমাইজ করুন” বিকল্পে ক্লিক করুন</translation>
 <translation id="3599221874935822507">উঁচু করা</translation>
 <translation id="3600051066689725006">ওয়েব অনুরোধ সংক্রান্ত তথ্য</translation>
 <translation id="360180734785106144">নতুন ফিচার উপলভ্য হলেই তা অফার করে</translation>
@@ -3929,6 +3933,7 @@
 <translation id="4497145443434063861">PC ও Chromecast আলাদা ওয়াই-ফাই নেটওয়ার্কে আছে (যেমন ২.৪ GHz
     বনাম ৫ GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ক্র্যাশ করে গেছে</translation>
+<translation id="4500647907053779331">&amp;বেছে নেওয়া টেক্সটটি <ph name="LANGUAGE" />-এ অনুবাদ করুন</translation>
 <translation id="450099669180426158">বিস্ময়বোধক চিহ্ন আইকন</translation>
 <translation id="4501530680793980440">সরানো নিশ্চিত করুন</translation>
 <translation id="4502423230170890588">এই ডিভাইস থেকে সরান</translation>
@@ -4459,7 +4464,6 @@
 <translation id="4977942889532008999">অ্যাক্সেস নিশ্চিত করুন</translation>
 <translation id="4980805016576257426">এই এক্সটেনশনটিতে ম্যালওয়্যার আছে।</translation>
 <translation id="4981449534399733132">আপনার সিঙ্ক করা সমস্ত ডিভাইস এবং Google অ্যাকাউন্ট থেকে ব্রাউজিং ডেটা খালি করার জন্য <ph name="BEGIN_LINK" />সাইন-ইন করুন<ph name="END_LINK" />।</translation>
-<translation id="4982111327868342436">আপনি যেখানে শেষ করেছেন, যেকোনও ডিভাইসে সেখান থেকে শুরু করুন</translation>
 <translation id="4986706507552097681">সেটিংসে কী সিঙ্ক করা হবে তা আপনি সবসময় বেছে নিতে পারেন। আপনার ইতিহাসের উপরে ভিত্তি করে, সার্চ ও অন্যান্য পরিষেবা পছন্দমতো করে তুলতে Google এই ডেটা ব্যবহার করতে পারে।</translation>
 <translation id="4986728572522335985">এটি পিন সহ নিরাপত্তা কীয়ে সেভ করা সব ডেটা মুছে দেবে</translation>
 <translation id="4988526792673242964">পৃষ্ঠাসমূহ</translation>
@@ -4576,7 +4580,6 @@
 <translation id="5097349930204431044">আপনি কী পছন্দ করেন তা আপনার দেখা সাইটগুলি নির্ধারণ করতে পারে এবং তারপরে ব্রাউজ করার সাথে সাথে বিজ্ঞাপন সাজেস্ট করে</translation>
 <translation id="5097649414558628673">টুল: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">কার্সর থেমে যাওয়া মাত্রই অটোমেটিক ক্লিক করুন</translation>
-<translation id="5101683448725092498">আপনার জিনিসের ব্যাক-আপ নিন</translation>
 <translation id="5101839224773798795">মাউস কার্সার বন্ধ হয়ে গেলে অটোমেটিক ক্লিক হবে</translation>
 <translation id="5106350808162641062">সরান</translation>
 <translation id="510695978163689362">Family Link <ph name="USER_EMAIL" /> তত্ত্বাবধান করে। অভিভাবকীয় তত্ত্বাবধান সহ স্কুল রিসোর্স অ্যাক্সেস করার জন্য আপনি স্কুলের অ্যাকাউন্ট যোগ করতে পারবেন।</translation>
@@ -5143,7 +5146,6 @@
 <translation id="5623842676595125836">লগ</translation>
 <translation id="5624120631404540903">পাসওয়ার্ডগুলি পরিচালনা করুন</translation>
 <translation id="5625225435499354052">Google Pay-তে এডিট করুন</translation>
-<translation id="5625631605902707678">সমস্ত ডিভাইসে</translation>
 <translation id="5626134646977739690">নাম:</translation>
 <translation id="5627086634964711283">আপনি হোম বোতামটি ক্লিক করলে কোন পৃষ্ঠাটি দেখানো হবে তাও এটি নিয়ন্ত্রণ করে।</translation>
 <translation id="5627676517703583263">Chrome দিয়ে স্মার্টভাবে ব্রাউজ করুন</translation>
@@ -5255,7 +5257,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{এই ডেটা বা আপনার ডিভাইস, সংস্থার কিছু নিরাপত্তা সংক্রান্ত নীতি পূরণ করেনি। সমাধানের জন্য কী করতে হবে তা জানতে আপনার অ্যাডমিনের সাথে যোগাযোগ করুন।}=1{এই ফাইল বা আপনার ডিভাইস, সংস্থার কিছু নিরাপত্তা সংক্রান্ত নীতি পূরণ করেনি। সমাধানের জন্য কী করতে হবে তা জানতে আপনার অ্যাডমিনের সাথে যোগাযোগ করুন।}one{এইসব ফাইল সংস্থার কিছু নিরাপত্তা সংক্রান্ত নীতি পূরণ করেনি। সমাধানের জন্য কী করতে হবে তা জানতে আপনার অ্যাডমিনের সাথে যোগাযোগ করুন।}other{এইসব ফাইল সংস্থার কিছু নিরাপত্তা সংক্রান্ত নীতি পূরণ করেনি। সমাধানের জন্য কী করতে হবে তা জানতে আপনার অ্যাডমিনের সাথে যোগাযোগ করুন।}}</translation>
 <translation id="5736796278325406685">অনুগ্রহ করে একটি সঠিক ইউজারনেম লিখুন</translation>
 <translation id="5738093759615225354">আপনার কম্পিউটারে সাইন-ইন করতে, এই 'পাসকী' প্রয়োজন হবে</translation>
-<translation id="5738329404678738022">সিঙ্ক সহ আপনার বুকমার্ক এবং আরও অনেক কিছু স্টোর করুন</translation>
 <translation id="5739017626473506901">একটি স্কুল অ্যাকাউন্ট যোগ করার জন্য <ph name="USER_NAME" />-কে সাহায্য করতে সাইন-ইন করুন</translation>
 <translation id="5739235828260127894">যাচাইকরণের জন্য অপেক্ষা করা হচ্ছে। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">খুব বড়</translation>
@@ -5277,7 +5278,6 @@
 <translation id="5757375109985023827">প্রিভিউ করতে কোনও ট্যাব বেছে নিন</translation>
 <translation id="5758631781033351321">আপনি নিজের পড়ার তালিকা এখানে খুঁজে পাবেন</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" />-এর মাধ্যমে প্রিন্ট করার জন্য আপনার পাঠানো দস্তাবেজগুলি <ph name="APP_NAME" />-এর মাধ্যমে পড়া যাবে৷</translation>
-<translation id="5760508342220592715">আরও সুবিধা পাওয়ার জন্য সাইন-ইন করুন</translation>
 <translation id="5762787084360227629">Google অ্যাকাউন্টের তথ্য লিখুন</translation>
 <translation id="5763751966069581670">কোনও USB ডিভাইস খুঁজে পাওয়া যায়নি</translation>
 <translation id="5764483294734785780">এইরূপে অডিও সংর&amp;ক্ষণ করুন...</translation>
@@ -5749,6 +5749,7 @@
 <translation id="617213288191670920">কোনও ভাষা যোগ করা হয়নি</translation>
 <translation id="6173623053897475761">আপনার পিনটি আবার লিখুন</translation>
 <translation id="6175314957787328458">Microsoft Domain GUID</translation>
+<translation id="6177412385419165772">সরানো হচ্ছে...</translation>
 <translation id="6178664161104547336">একটি সার্টিফিকেট বেছে নিন</translation>
 <translation id="6178682841350631965">আপনার সাইন-ইন ডেটা আপডেট করা হয়েছে</translation>
 <translation id="6180510783007738939">লাইন টুল</translation>
@@ -6227,6 +6228,7 @@
 <translation id="6619801788773578757">কিয়স্ক অ্যাপ্লিকেশান যোগ করুন</translation>
 <translation id="6619990499523117484">আপনার পিন নিশ্চিত করুন</translation>
 <translation id="6620254580880484313">কন্টেনারের নাম</translation>
+<translation id="6620927550847360014">আপনার <ph name="DEVICE_TYPE" /> থেকে Bruschetta সরাবেন?</translation>
 <translation id="6621391692573306628">এই ট্যাবটিকে অন্য ডিভাইসে পাঠাতে, উভয় ডিভাইসেই Chrome-এ সাইন-ইন করুন</translation>
 <translation id="6622980291894852883">চিত্রগুলিকে ব্লক করা চালিয়ে যান</translation>
 <translation id="6624036901798307345">ট্যাবলেট মোডে প্রতিটি ট্যাবে থাম্বনেল দেখানো হয় এমন ট্যাব বার খোলার জন্য ট্যাব কাউন্টার টুলবার বোতামে ট্যাপ করুন।</translation>
@@ -6444,6 +6446,7 @@
 <translation id="6818547713623251698">আপনার ফোনের ফটো, মিডিয়া, বিজ্ঞপ্তি ও অ্যাপ দেখুন</translation>
 <translation id="6818802132960437751">অ্যান্টিভাইরাস অন্তর্ভুক্ত</translation>
 <translation id="6818920801736417483">পাসওয়ার্ড সেভ করবেন?</translation>
+<translation id="6820079682647046800">Kerberos যাচাইকরণ করা যায়নি</translation>
 <translation id="6823174134746916417">টাচপ্যাডে ট্যাপ করে ক্লিক করা</translation>
 <translation id="6824564591481349393">ও ইমেল আইডি কপি করুন</translation>
 <translation id="6824584962142919697">&amp;এলিমেন্ট ইন্সপেক্ট করুন</translation>
@@ -6598,6 +6601,7 @@
 <translation id="6955698182324067397">আপনি ChromeOS ডিবাগিং ফিচার চালু করছেন যা sshd daemon সেট-আপ করবে এবং ইউএসবি ড্রাইভ থেকে বুট করা চালু করবে।</translation>
 <translation id="6955893174999506273">আরও ১টি সুইচ অ্যাসাইন করুন</translation>
 <translation id="6957044667612803194">এই নিরাপত্তা কী-তে পিন কাজ করে না</translation>
+<translation id="6960133692707095572">টিকিট ছাড়া দেখুন</translation>
 <translation id="6960507406838246615">Linux আপডেট করা দরকার</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> স্পিচ ফাইল ডাউনলোড করা যায়নি। পরে ডাউনলোড করার চেষ্টা করা হবে। ডাউনলোড সম্পূর্ণ না হওয়া পর্যন্ত স্পিচ Google-কে পাঠানো হয়।</translation>
 <translation id="696103774840402661">এই <ph name="DEVICE_TYPE" /> থেকে সব ব্যবহারকারীর সমস্ত ফাইল ও স্থানীয় ডেটা স্থায়ীভাবে মুছে ফেলা হয়েছে।</translation>
@@ -7818,7 +7822,6 @@
 <translation id="8059417245945632445">এবং ডিভাইসগুলি পরিদর্শন</translation>
 <translation id="8059456211585183827">সেভ করার জন্য কোনও প্রিন্টার উপলভ্য নেই।</translation>
 <translation id="8061091456562007989">এটিকে আগের অবস্থায় ফিরিয়ে নিয়ে যান</translation>
-<translation id="8061965471006133016">আপনার পাসওয়ার্ড এবং আরও অনেক কিছুর জন্য অতিরিক্ত সুরক্ষা</translation>
 <translation id="8061970399284390013">বানান ও ব্যাকরণ চেক করা</translation>
 <translation id="8061991877177392872">মনে হচ্ছে আপনি অন্য কোনও ডিভাইসে Assistant-এর সাথে আগেই Voice Match সেট আপ করে ফেলেছেন। আগের এই সব রেকর্ডিং এই ডিভাইসে ভয়েস মডেল তৈরি করার জন্য ব্যবহার করা হয়েছে।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{১ শিট কাগজ}one{{COUNT} শিট কাগজ}other{{COUNT} শিট কাগজ}}</translation>
@@ -8059,6 +8062,7 @@
 <translation id="8272443605911821513">"আরও টুলগুলির মেনুতে" এক্সটেনশনগুলি ক্লিক করে আপনার এক্সটেনশনগুলি পরিচালনা করুন৷</translation>
 <translation id="8272786333453048167">আবার অনুমতি দিন</translation>
 <translation id="8273905181216423293">এখন ডাউনলোড করুন</translation>
+<translation id="827488840488530039">আপনি যে পৃষ্ঠাটি দেখার চেষ্টা করছেন সেটি আপনার Kerberos টিকিট যাচাই করতে পারেনি</translation>
 <translation id="8274921654076766238">'ফুল স্ক্রিন' মোডে টেক্সটকে বড় করে দেখার সুবিধা কীবোর্ড ফোকাস অনুযায়ী পাল্টানো হয়</translation>
 <translation id="8274924778568117936">আপডেটটি সম্পূর্ণ না হওয়া পর্যন্ত <ph name="DEVICE_TYPE" />টি বন্ধ করবেন না। ইনস্টলেশন হয়ে গেলে <ph name="DEVICE_TYPE" />টি নিজে থেকেই রিস্টার্ট হবে।</translation>
 <translation id="8275038454117074363">আমদানি</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 2912295b..695e8c3 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -1638,6 +1638,7 @@
 <translation id="2408018932941436077">Pohranjivanje kartice</translation>
 <translation id="2408955596600435184">Unesite svoj PIN</translation>
 <translation id="2409268599591722235">Započnimo</translation>
+<translation id="2409709393952490731">Upotrijebite telefon ili tablet</translation>
 <translation id="2410079346590497630">Detalji verzije</translation>
 <translation id="2410298923485357543">Koristi prirodni glas kada je uređaj online</translation>
 <translation id="2410754283952462441">Odaberite račun</translation>
@@ -3786,6 +3787,7 @@
 <translation id="4369215744064167350">Zahtjev za web lokaciju je odobren</translation>
 <translation id="4369735607080757018">Ograničene vrste podataka se dijele među web lokacijama da izmjere performanse svojih oglasa, npr. doba dana kada vam je oglas prikazan</translation>
 <translation id="4370975561335139969">Adresa e-pošte i lozinka koje ste unijeli se ne podudaraju</translation>
+<translation id="4374805630006466253">Upotrijebite drugi telefon ili tablet</translation>
 <translation id="4374831787438678295">Paket za instalaciju Linuxa</translation>
 <translation id="4375035964737468845">Otvori preuzete fajlove</translation>
 <translation id="4376226992615520204">Lokacija je isključena</translation>
@@ -3962,6 +3964,7 @@
 <translation id="4522890784888918985">Računi djece nisu podržani</translation>
 <translation id="4523876148417776526">XML liste web lokacija još nisu dohvaćene.</translation>
 <translation id="4524832533047962394">Ova verzija operativnog sistema ne podržava ponuđeni način prijave. Provjerite koristite li najnoviju verziju.</translation>
+<translation id="4526051299161934899">Skrivene spremljene grupe kartica</translation>
 <translation id="4526853756266614740">Odaberite sliku da trenutno primijenite temu</translation>
 <translation id="452750746583162491">Pregledajte sinhronizirane podatke</translation>
 <translation id="4527929807707405172">Omogući klizanje unazad. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
@@ -4461,7 +4464,6 @@
 <translation id="4977942889532008999">Potvrdite pristup</translation>
 <translation id="4980805016576257426">Ova ekstenzija sadrži zlonamjeran softver.</translation>
 <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Prijavite se<ph name="END_LINK" /> da obrišete podatke o pregledanju sa svih svojih sinhroniziranih uređaja i Google računa.</translation>
-<translation id="4982111327868342436">Nastavite gdje ste stali na bilo kojem uređaju</translation>
 <translation id="4986706507552097681">Uvijek možete odabrati šta želite sinhronizirati u postavkama. Google može personalizirati Pretraživanje i druge usluge na osnovu vaše historije.</translation>
 <translation id="4986728572522335985">Ovim će se izbrisati svi podaci na sigurnosnom ključu, uključujući njegov PIN</translation>
 <translation id="4988526792673242964">Stranice</translation>
@@ -4578,7 +4580,6 @@
 <translation id="5097349930204431044">Web lokacije koje posjetite mogu utvrditi šta vam se sviđa, a zatim predložiti oglase dok nastavljate pregledati</translation>
 <translation id="5097649414558628673">Alat: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automatski klik kada se kursor zaustavi</translation>
-<translation id="5101683448725092498">Napravite sigurnosne kopije svojih stvari</translation>
 <translation id="5101839224773798795">Automatski klikni kada se kursor zaustavi</translation>
 <translation id="5106350808162641062">Ukloni</translation>
 <translation id="510695978163689362">Family Link upravlja računom <ph name="USER_EMAIL" />. Možeš dodati školske račune da pristupiš školskim izvorima uz roditeljski nadzor.</translation>
@@ -5144,7 +5145,6 @@
 <translation id="5623842676595125836">Zapis</translation>
 <translation id="5624120631404540903">Upravljajte lozinkama</translation>
 <translation id="5625225435499354052">Uredi u Google Payu</translation>
-<translation id="5625631605902707678">Na uređajima</translation>
 <translation id="5626134646977739690">Naziv:</translation>
 <translation id="5627086634964711283">Također kontrolira koja stranica će se prikazati kada kliknete na dugme Početna stranica.</translation>
 <translation id="5627676517703583263">Pregledajte pametno pomoću Chromea</translation>
@@ -5256,7 +5256,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Ovaj podatak ili vaš uređaj nije u skladu s nekim sigurnosnim pravilima vaše organizacije. Provjerite s administratorom šta treba ispraviti.}=1{Ovaj fajl ili vaš uređaj nije u skladu s nekim sigurnosnim pravilima vaše organizacije. Provjerite s administratorom šta treba ispraviti.}one{Ovi fajlovi nisu u skladu s nekim sigurnosnim pravilima vaše organizacije. Provjerite s administratorom šta treba ispraviti.}few{Ovi fajlovi nisu u skladu s nekim sigurnosnim pravilima vaše organizacije. Provjerite s administratorom šta treba ispraviti.}other{Ovi fajlovi nisu u skladu s nekim sigurnosnim pravilima vaše organizacije. Provjerite s administratorom šta treba ispraviti.}}</translation>
 <translation id="5736796278325406685">Unesite važeće korisničko ime</translation>
 <translation id="5738093759615225354">Ovaj pristupni ključ je potreban za prijavu na računar</translation>
-<translation id="5738329404678738022">Pohranite oznake i još mnogo toga uz sinhronizaciju</translation>
 <translation id="5739017626473506901">Prijavite se da <ph name="USER_NAME" /> primi pomoć pri dodavanju školskog računa</translation>
 <translation id="5739235828260127894">Čekanje na potvrdu. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Vrlo velik</translation>
@@ -5278,7 +5277,6 @@
 <translation id="5757375109985023827">Odaberite karticu da je pregledate</translation>
 <translation id="5758631781033351321">Listu za čitanje ćete pronaći ovdje</translation>
 <translation id="5759728514498647443">Aplikacija <ph name="APP_NAME" /> može čitati dokumente koje pošaljete za štampanje putem aplikacije <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Prijavite se radi više pogodnosti</translation>
 <translation id="5762787084360227629">Unesite informacije o Google računu</translation>
 <translation id="5763751966069581670">USB uređaj nije pronađen</translation>
 <translation id="5764483294734785780">Sač&amp;uvaj zvuk kao…</translation>
@@ -7825,7 +7823,6 @@
 <translation id="8059417245945632445">&amp;Pregledaj uređaje</translation>
 <translation id="8059456211585183827">Nema dostupnih štampača koje možete sačuvati.</translation>
 <translation id="8061091456562007989">Promijeni na prethodno</translation>
-<translation id="8061965471006133016">Dodatna zaštita lozinki i još mnogo toga</translation>
 <translation id="8061970399284390013">Provjera pravopisa i gramatike</translation>
 <translation id="8061991877177392872">Izgleda da ste već postavili Voice Match s Asistentom na drugom uređaju. Ti prethodni snimci su korišteni za izradu modela glasa na ovom uređaju.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 list papira}one{{COUNT} list papira}few{{COUNT} lista papira}other{{COUNT} listova papira}}</translation>
@@ -8513,6 +8510,7 @@
 <translation id="869884720829132584">Meni aplikacija</translation>
 <translation id="869891660844655955">Datum isteka</translation>
 <translation id="8699188901396699995">PPD za uređaj <ph name="PRINTER_NAME" /></translation>
+<translation id="8702278591052316269">Izbornik koji sadrži skrivene spremljene grupe kartica</translation>
 <translation id="8702825062053163569">Uređaj <ph name="DEVICE_TYPE" /> je zaključan.</translation>
 <translation id="8703346390800944767">Preskoči oglas</translation>
 <translation id="8705331520020532516">Serijski broj</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 31393368c..bf73431 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Protocol segur de transferència d'hipertext (HTTPS)</translation>
 <translation id="1059944192885972544">S'han trobat <ph name="NUM" /> pestanyes per a "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="1060292118287751956">Determina la freqüència d'actualització de la pantalla</translation>
+<translation id="1060570945511946595">Gestiona les entrades</translation>
 <translation id="1061130374843955397">Et donem la benvinguda al teu dispositiu <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Crea un codi QR per a aquest enllaç</translation>
 <translation id="1061904396131502319">Ja gairebé és l'hora de fer una pausa</translation>
@@ -1114,6 +1115,7 @@
 <translation id="1975841812214822307">Suprimeix...</translation>
 <translation id="1976150099241323601">Inici de sessió al dispositiu de seguretat</translation>
 <translation id="1977965994116744507">Acosta el telèfon per desbloquejar <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Suprimeix Bruschetta</translation>
 <translation id="1979095679518582070">Si aquesta funció es desactiva, no afectarà la capacitat d'aquest dispositiu d'enviar la informació necessària per rebre serveis bàsics, com ara seguretat i actualitzacions del sistema.</translation>
 <translation id="1979280758666859181">Esteu a punt de canviar a un canal amb una versió més antiga de <ph name="PRODUCT_NAME" />. El canvi de canal s'aplicarà quan la versió del canal coincideixi amb la versió qui hi ha instal·lada actualment en el vostre dispositiu.</translation>
 <translation id="197989455406964291">El Centre de distribució de claus de Kerberos no admet aquest tipus d'encriptació</translation>
@@ -1917,6 +1919,7 @@
 <translation id="2672142220933875349">El fitxer crx és incorrecte i no s'ha pogut descomprimir.</translation>
 <translation id="2673135533890720193">Llegir l'historial de navegació</translation>
 <translation id="2674764818721168631">Desactivat</translation>
+<translation id="2675570801872027281">S'ha produït un error en suprimir Bruschetta. Torna-ho a provar.</translation>
 <translation id="2676492189600898281">Proporciona comentaris sobre Emplenament automàtic</translation>
 <translation id="2678063897982469759">Torna a activar</translation>
 <translation id="2678100101831051676">No es pot emetre.</translation>
@@ -2915,6 +2918,7 @@
 <translation id="3593965109698325041">Restriccions del nom de certificat</translation>
 <translation id="3596012367874587041">Configuració de l'aplicació</translation>
 <translation id="3596414637720633074">Bloqueja les galetes de tercers en mode d'incògnit</translation>
+<translation id="3598010454707842106">Fes clic a Personalitza Chrome</translation>
 <translation id="3599221874935822507">Elevat</translation>
 <translation id="3600051066689725006">Informació sobre la sol·licitud web</translation>
 <translation id="360180734785106144">Oferir funcions noves a mesura que estiguin disponibles.</translation>
@@ -3911,6 +3915,7 @@
 <translation id="4495419450179050807">No la mostris en aquesta pàgina</translation>
 <translation id="4497145443434063861">PC i Chromecast en xarxes Wi-Fi diferents (per exemple, 2,4 GHz i 5 GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ha fallat</translation>
+<translation id="4500647907053779331">Tradueix la selecció a <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Icona de signe d'exclamació</translation>
 <translation id="4501530680793980440">Confirmació de la supressió</translation>
 <translation id="4502423230170890588">Suprimeix d'aquest dispositiu</translation>
@@ -4440,7 +4445,6 @@
 <translation id="4977942889532008999">Confirmació de l'accés</translation>
 <translation id="4980805016576257426">Aquesta extensió conté programari maliciós.</translation>
 <translation id="4981449534399733132">Per esborrar les dades de navegació de tots els dispositius sincronitzats i del Compte de Google, <ph name="BEGIN_LINK" />inicia la sessió<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Continua des d'on ho hagis deixat en qualsevol dispositiu</translation>
 <translation id="4986706507552097681">Sempre pots anar a la configuració per decidir què vols sincronitzar. És possible que Google personalitzi la Cerca i altres serveis en funció del teu historial.</translation>
 <translation id="4986728572522335985">Amb aquesta acció se suprimiran totes les dades de la clau de seguretat, inclòs el PIN</translation>
 <translation id="4988526792673242964">Pàgines</translation>
@@ -4557,7 +4561,6 @@
 <translation id="5097349930204431044">Els llocs web que visites poden determinar què t'agrada i, després, suggerir-te anuncis mentre continues navegant</translation>
 <translation id="5097649414558628673">Eina: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Fes clic automàticament quan el cursor s'aturi</translation>
-<translation id="5101683448725092498">Crea una còpia de seguretat de les teves coses</translation>
 <translation id="5101839224773798795">Fes clic automàticament quan el cursor s'aturi</translation>
 <translation id="5106350808162641062">Suprimeix</translation>
 <translation id="510695978163689362">El compte <ph name="USER_EMAIL" /> està supervisat per Family Link. Pots afegir comptes de centres educatius per accedir als recursos escolars amb supervisió parental.</translation>
@@ -5123,7 +5126,6 @@
 <translation id="5623842676595125836">Registre</translation>
 <translation id="5624120631404540903">Gestiona les contrasenyes</translation>
 <translation id="5625225435499354052">Edita a Google Pay</translation>
-<translation id="5625631605902707678">En tots els dispositius</translation>
 <translation id="5626134646977739690">Nom:</translation>
 <translation id="5627086634964711283">També controla la pàgina que es mostra quan feu clic al botó d'inici.</translation>
 <translation id="5627676517703583263">Navega de manera intel·ligent amb Chrome</translation>
@@ -5235,7 +5237,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Aquestes dades o el dispositiu no compleixen algunes de les polítiques de seguretat de la teva organització. Consulta al teu administrador què cal corregir.}=1{Aquest fitxer o el dispositiu no compleixen algunes de les polítiques de seguretat de la teva organització. Consulta al teu administrador què cal corregir.}other{Aquests fitxers no compleixen algunes de les polítiques de seguretat de la teva organització. Consulta al teu administrador què cal corregir.}}</translation>
 <translation id="5736796278325406685">Introdueix un nom d'usuari vàlid</translation>
 <translation id="5738093759615225354">Necessites aquesta clau d'accés per iniciar la sessió a l'ordinador</translation>
-<translation id="5738329404678738022">Emmagatzema les adreces d'interès i més coses amb la sincronització</translation>
 <translation id="5739017626473506901">Inicia la sessió per ajudar <ph name="USER_NAME" /> a afegir un compte de centre educatiu</translation>
 <translation id="5739235828260127894">S'està esperant la verificació. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Molt gran</translation>
@@ -5257,7 +5258,6 @@
 <translation id="5757375109985023827">Selecciona una pestanya per previsualitzar-la</translation>
 <translation id="5758631781033351321">Trobaràs la llista de lectura aquí</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> pot llegir els documents que envieu a la impressora mitjançant <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Inicia la sessió per gaudir de més avantatges</translation>
 <translation id="5762787084360227629">Introdueix la informació del Compte de Google</translation>
 <translation id="5763751966069581670">No s'ha trobat cap dispositiu USB</translation>
 <translation id="5764483294734785780">De&amp;sa l'àudio com a...</translation>
@@ -5727,6 +5727,7 @@
 <translation id="617213288191670920">No s'ha afegit cap idioma</translation>
 <translation id="6173623053897475761">Torna a escriure el PIN</translation>
 <translation id="6175314957787328458">GUID de domini de Microsoft</translation>
+<translation id="6177412385419165772">S'està suprimint...</translation>
 <translation id="6178664161104547336">Seleccioneu un certificat</translation>
 <translation id="6178682841350631965">Les teves dades d'inici de sessió s'han actualitzat</translation>
 <translation id="6180510783007738939">Eina de línia</translation>
@@ -6203,6 +6204,7 @@
 <translation id="6619801788773578757">Afegeix l'aplicació de quiosc</translation>
 <translation id="6619990499523117484">Confirma el teu PIN</translation>
 <translation id="6620254580880484313">Nom del contenidor</translation>
+<translation id="6620927550847360014">Vols suprimir Bruschetta del dispositiu <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Per enviar aquesta pestanya a un altre dispositiu, inicia la sessió a Chrome als dos dispositius</translation>
 <translation id="6622980291894852883">Continua bloquejant les imatges</translation>
 <translation id="6624036901798307345">En mode de tauleta, toca el botó de la barra d'eines corresponent al comptador de pestanyes per obrir la nova barra de pestanyes en què es mostra una miniatura de cada pestanya.</translation>
@@ -6420,6 +6422,7 @@
 <translation id="6818547713623251698">Mostra les fotos, els fitxers multimèdia, les notificacions i les aplicacions del telèfon</translation>
 <translation id="6818802132960437751">Protecció antivirus integrada</translation>
 <translation id="6818920801736417483">Vols desar les contrasenyes?</translation>
+<translation id="6820079682647046800">Kerberos no s'ha pogut autenticar</translation>
 <translation id="6823174134746916417">Toca per fer clic amb el ratolí tàctil</translation>
 <translation id="6824564591481349393">Copi&amp;a l'adreça electrònica</translation>
 <translation id="6824584962142919697">&amp;Inspecciona els elements</translation>
@@ -6574,6 +6577,7 @@
 <translation id="6955698182324067397">Estàs activant les funcions de depuració de Chrome OS, de manera que es configurarà el dimoni SSHD i es permetrà iniciar el sistema des d'unitats USB.</translation>
 <translation id="6955893174999506273">Assigna 1 interruptor més</translation>
 <translation id="6957044667612803194">Aquesta clau de seguretat no admet codis PIN</translation>
+<translation id="6960133692707095572">Visita sense entrada</translation>
 <translation id="6960507406838246615">Cal actualitzar Linux</translation>
 <translation id="6960648667961844909">No s'han pogut baixar els fitxers de parla en <ph name="LANGUAGE" />. La baixada s'intentarà més tard. Fins que es completi, s'envia la parla a Google perquè la processi.</translation>
 <translation id="696103774840402661">Tots els fitxers i totes les dades locals de tots els usuaris d'aquest dispositiu <ph name="DEVICE_TYPE" /> s'han suprimit permanentment.</translation>
@@ -7795,7 +7799,6 @@
 <translation id="8059417245945632445">&amp;Inspecciona els dispositius</translation>
 <translation id="8059456211585183827">No hi ha cap impressora disponible per desar.</translation>
 <translation id="8061091456562007989">Torna-ho a canviar</translation>
-<translation id="8061965471006133016">Protecció addicional per a les teves contrasenyes i més</translation>
 <translation id="8061970399284390013">Correcció ortogràfica i gramatical</translation>
 <translation id="8061991877177392872">Sembla que ja has configurat Voice Match amb l'Assistent en un altre dispositiu. Aquestes gravacions anteriors s'han utilitzat per crear un model de veu en aquest dispositiu.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 full de paper}other{{COUNT} fulls de paper}}</translation>
@@ -8036,6 +8039,7 @@
 <translation id="8272443605911821513">Per gestionar les extensions, feu clic a Extensions al menú Més eines.</translation>
 <translation id="8272786333453048167">Torna a permetre</translation>
 <translation id="8273905181216423293">Baixa ara</translation>
+<translation id="827488840488530039">La pàgina que proves de visitar no ha pogut verificar les entrades de Kerberos</translation>
 <translation id="8274921654076766238">La lupa segueix el focus del teclat</translation>
 <translation id="8274924778568117936">No apaguis ni tanquis el dispositiu <ph name="DEVICE_TYPE" /> fins que l'actualització no hagi finalitzat. <ph name="DEVICE_TYPE" /> es reiniciarà un cop finalitzi la instal·lació.</translation>
 <translation id="8275038454117074363">Importa</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 753b114..0ccaef30 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -4444,7 +4444,6 @@
 <translation id="4977942889532008999">Potvrzení přístupu</translation>
 <translation id="4980805016576257426">Toto rozšíření obsahuje malware.</translation>
 <translation id="4981449534399733132">Chcete-li vymazat údaje o prohlížení ze všech synchronizovaných zařízení i z účtu Google, <ph name="BEGIN_LINK" />přihlaste se<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Pokračujte v kterémkoli zařízení tam, kde jste přestali</translation>
 <translation id="4986706507552097681">Synchronizované položky můžete kdykoliv vybrat v nastavení. Google může personalizovat Vyhledávání a další služby na základě vaší historie.</translation>
 <translation id="4986728572522335985">Touto akcí vymažete veškerá data na bezpečnostním klíči, včetně jeho kódu PIN</translation>
 <translation id="4988526792673242964">Stránky</translation>
@@ -4561,7 +4560,6 @@
 <translation id="5097349930204431044">Navštívené weby mohou zjistit, co se vám líbí, a potom vám při dalším prohlížení internetu navrhovat reklamy</translation>
 <translation id="5097649414558628673">Nástroj: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automaticky kliknout při zastavení kurzoru</translation>
-<translation id="5101683448725092498">Zálohujte si své věci</translation>
 <translation id="5101839224773798795">Při zastavení kurzoru automaticky kliknout</translation>
 <translation id="5106350808162641062">Odstranit</translation>
 <translation id="510695978163689362">Účet <ph name="USER_EMAIL" /> je pod dohledem aplikace Family Link. Můžete si přidat školní účty, abyste pod dohledem rodičů měli přístup ke studijním materiálům.</translation>
@@ -5125,7 +5123,6 @@
 <translation id="5623842676595125836">Protokol</translation>
 <translation id="5624120631404540903">Spravovat hesla</translation>
 <translation id="5625225435499354052">Upravit ve službě Google Pay</translation>
-<translation id="5625631605902707678">Na různých zařízeních</translation>
 <translation id="5626134646977739690">Jméno:</translation>
 <translation id="5627086634964711283">Také řídí, která stránka se zobrazí po kliknutí na tlačítko Domovská stránka.</translation>
 <translation id="5627676517703583263">Pohybujte se na internetu chytře pomocí prohlížeče Google Chrome</translation>
@@ -5237,7 +5234,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Tato data nebo vaše zařízení nesplňují některé zásady zabezpečení vaší organizace. Zeptejte se administrátora, co je potřeba opravit.}=1{Tento soubor nebo vaše zařízení nesplňují některé zásady zabezpečení vaší organizace. Zeptejte se administrátora, co je potřeba opravit.}few{Tyto soubory nesplňují některé zásady zabezpečení vaší organizace. Zeptejte se administrátora, co je potřeba opravit.}many{Tyto soubory nesplňují některé zásady zabezpečení vaší organizace. Zeptejte se administrátora, co je potřeba opravit.}other{Tyto soubory nesplňují některé zásady zabezpečení vaší organizace. Zeptejte se administrátora, co je potřeba opravit.}}</translation>
 <translation id="5736796278325406685">Zadejte prosím platné uživatelské jméno</translation>
 <translation id="5738093759615225354">K přihlášení do počítače potřebujete tento přístupový klíč</translation>
-<translation id="5738329404678738022">Ukládejte si záložky a provádějte další akce pomocí synchronizace</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> potřebuje pomoc s přidáním školního účtu, přihlaste se prosím</translation>
 <translation id="5739235828260127894">Čeká na ověření. <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Velmi velké</translation>
@@ -5259,7 +5255,6 @@
 <translation id="5757375109985023827">Vyberte kartu, jejíž náhled chcete zobrazit</translation>
 <translation id="5758631781033351321">Zde najdete svůj seznam četby</translation>
 <translation id="5759728514498647443">Dokumenty odeslané k tisku prostřednictvím aplikace <ph name="APP_NAME" /> lze číst v aplikaci <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Přihlaste se a získejte více výhod</translation>
 <translation id="5762787084360227629">Zadejte informace o účtu Google</translation>
 <translation id="5763751966069581670">Nebyla nalezena žádná zařízení USB</translation>
 <translation id="5764483294734785780">Uložit &amp;zvuk jako...</translation>
@@ -7803,7 +7798,6 @@
 <translation id="8059417245945632445">&amp;Zkontrolovat zařízení</translation>
 <translation id="8059456211585183827">Nejsou k dispozici žádné tiskárny k uložení.</translation>
 <translation id="8061091456562007989">Vrátit změnu</translation>
-<translation id="8061965471006133016">Další ochrana hesel a další výhody</translation>
 <translation id="8061970399284390013">Kontrola pravopisu a gramatiky</translation>
 <translation id="8061991877177392872">Funkci rozpoznání hlasu Voice Match jste u Asistenta už zřejmě nastavili v jiném zařízení. Dřívější nahrávky byly použity k vytvoření hlasového modelu v tomto zařízení.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 list papíru}few{{COUNT} listy papíru}many{{COUNT} listu papíru}other{{COUNT} listů papíru}}</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index 8b38542..833e4d3e 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Protocol Trafnidiaeth Hyperdestun (HTTPS)</translation>
 <translation id="1059944192885972544">Wedi canfod <ph name="NUM" /> o Dabiau ar gyfer '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="1060292118287751956">Mae'n pennu pa mor aml y mae'r sgrîn yn diweddaru</translation>
+<translation id="1060570945511946595">Rheoli tocynnau</translation>
 <translation id="1061130374843955397">Croeso i'ch <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Creu Cod QR ar gyfer y Ddolen hon</translation>
 <translation id="1061904396131502319">Bron amser i gael seibiant</translation>
@@ -383,6 +384,7 @@
 <translation id="1339009753652684748">Cael mynediad at Assistant pan fyddwch yn dweud "Hei Google." I arbed pŵer yn eich batri, dewiswch “Ymlaen (Argymhellir.)” Dim ond pan fydd eich dyfais wedi'i phlygio i mewn neu'n gwefru y bydd Assistant yn ymateb.</translation>
 <translation id="13392265090583506">A11y</translation>
 <translation id="1340527397989195812">Gwneud copïau wrth gefn o gyfryngau o'r ddyfais gan ddefnyddio'r ap Files.</translation>
+<translation id="1341701348342335220">Da iawn!</translation>
 <translation id="1341871421050612057">Methu â chysoni â <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Rhowch ganiatâd i apiau Linux gael mynediad at ddyfeisiau USB. Ni fydd Linux yn cofio dyfais USB ar ôl ei dynnu.</translation>
 <translation id="1343920184519992513">Parhau lle y gwnaethoch adael ac agor set penodol o dudalennau</translation>
@@ -1128,6 +1130,7 @@
 <translation id="1975841812214822307">Tynnu...</translation>
 <translation id="1976150099241323601">Mewngofnodi i Ddyfais Diogelwch</translation>
 <translation id="1977965994116744507">Dewch â'ch ffôn yn agosach i ddatgloi eich <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Tynnu Bruschetta</translation>
 <translation id="1979095679518582070">Nid yw diffodd y nodwedd hon yn effeithio ar allu'r ddyfais hon i anfon y wybodaeth sydd ei hangen ar gyfer gwasanaethau hanfodol megis diweddariadau system a diogelwch.</translation>
 <translation id="1979280758666859181">Rydych yn newid i sianel â fersiwn hŷn o <ph name="PRODUCT_NAME" />. Bydd y sianel yn newid pan fydd fersiwn y sianel yn cyd-fynd â'r fersiwn sydd wedi'i osod ar hyn o bryd ar eich dyfais.</translation>
 <translation id="197989455406964291">Nid yw KDC yn cefnogi'r math amgryptio</translation>
@@ -1934,6 +1937,7 @@
 <translation id="2672142220933875349">Ffeil crx gwael, dadbacio wedi methu.</translation>
 <translation id="2673135533890720193">Darllen eich hanes pori</translation>
 <translation id="2674764818721168631">Diffodd</translation>
+<translation id="2675570801872027281">Bu gwall wrth dynnu Bruschetta. Rhowch gynnig arall arni.</translation>
 <translation id="2676492189600898281">Darparu adborth Awtolenwi</translation>
 <translation id="2678063897982469759">Ail-alluogi</translation>
 <translation id="2678100101831051676">Methu â chastio.</translation>
@@ -2932,6 +2936,7 @@
 <translation id="3593965109698325041">Cyfyngiadau Enw Tystysgrif</translation>
 <translation id="3596012367874587041">Gosodiadau ap</translation>
 <translation id="3596414637720633074">Rhwystro cwcis gan drydydd parti yn y Modd Anhysbys</translation>
+<translation id="3598010454707842106">Cliciwch "Personoleiddio Chrome"</translation>
 <translation id="3599221874935822507">Dyrchafedig</translation>
 <translation id="3600051066689725006">Gwybodaeth am geisiadau ar y we</translation>
 <translation id="360180734785106144">Cynnig nodweddion newydd wrth iddynt ddod ar gael</translation>
@@ -3642,6 +3647,7 @@
 <translation id="4232375817808480934">Ffurfweddu Kerberos</translation>
 <translation id="4235965441080806197">Canslo mewngofnodi</translation>
 <translation id="4236163961381003811">Darganfod rhagor o estyniadau</translation>
+<translation id="4237282663517880406">Dangos awgrymiadau Google Drive</translation>
 <translation id="4241182343707213132">Ailgychwynnwch i ddiweddaru apiau'r sefydliad</translation>
 <translation id="4242145785130247982">Ni chefnogir mwy nag un dystysgrif cleient</translation>
 <translation id="4242533952199664413">Agor y gosodiadau</translation>
@@ -3929,6 +3935,7 @@
 <translation id="4497145443434063861">Mae'r PC a'r Chromecast ar rwydweithiau Wi-Fi gwahanol (e.e. 2.4GHz
     yn erbyn 5GHz)</translation>
 <translation id="4500114933761911433">Mae <ph name="PLUGIN_NAME" /> wedi torri</translation>
+<translation id="4500647907053779331">&amp;Cyfieithu dewisiad i <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Eicon ebychnod</translation>
 <translation id="4501530680793980440">Cadarnhau eich bod am ei ddadosod</translation>
 <translation id="4502423230170890588">Tynnu o'r ddyfais hon</translation>
@@ -4458,7 +4465,6 @@
 <translation id="4977942889532008999">Cadarnhau Mynediad</translation>
 <translation id="4980805016576257426">Mae'r estyniad hwn yn cynnwys meddalwedd faleisus.</translation>
 <translation id="4981449534399733132">Er mwyn clirio data pori o'ch holl ddyfeisiau sydd wedi'u cysoni a'ch Cyfrif Google, <ph name="BEGIN_LINK" />mewngofnodwch<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Parhau lle y gwnaethoch adael ar unrhyw ddyfais</translation>
 <translation id="4986706507552097681">Gallwch bob amser ddewis beth i'w gysoni yn y gosodiadau. Gall Google bersonoleiddio Search a gwasanaethau eraill yn seiliedig ar eich hanes.</translation>
 <translation id="4986728572522335985">Bydd hyn yn dileu'r holl ddata ar yr allwedd ddiogelwch, gan gynnwys ei PIN</translation>
 <translation id="4988526792673242964">Tudalennau</translation>
@@ -4575,7 +4581,6 @@
 <translation id="5097349930204431044">Gall gwefannau rydych yn ymweld â nhw benderfynu beth rydych yn ei hoffi ac yna awgrymu hysbysebion wrth i chi barhau i bori</translation>
 <translation id="5097649414558628673">Offeryn: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Clicio'n awtomatig pan fydd y cyrchwr yn stopio</translation>
-<translation id="5101683448725092498">Creu copïau wrth gefn o'ch pethau</translation>
 <translation id="5101839224773798795">Clicio'n awtomatig pan fydd y cyrchwr yn stopio</translation>
 <translation id="5106350808162641062">Tynnu</translation>
 <translation id="510695978163689362">Mae <ph name="USER_EMAIL" /> yn cael ei oruchwylio gan Family Link. Gallwch ychwanegu cyfrifon ysgol i gael mynediad at adnoddau ysgol gyda goruchwyliaeth rhiant.</translation>
@@ -5141,7 +5146,6 @@
 <translation id="5623842676595125836">Log</translation>
 <translation id="5624120631404540903">Rheoli cyfrineiriau</translation>
 <translation id="5625225435499354052">Golygu yn Google Pay</translation>
-<translation id="5625631605902707678">Ar draws dyfeisiau</translation>
 <translation id="5626134646977739690">Enw:</translation>
 <translation id="5627086634964711283">Mae hefyd yn rheoli pa dudalen sy'n cael ei dangos pan fyddwch yn clicio ar y botwm Hafan.</translation>
 <translation id="5627676517703583263">Pori'n glyfar gyda Chrome</translation>
@@ -5253,7 +5257,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Nid yw'r data hyn neu eich dyfais yn bodloni rhai o bolisïau diogelwch eich sefydliad. Gwiriwch gyda'ch gweinyddwr beth sydd angen ei drwsio.}=1{Nid yw'r ffeil hon neu eich dyfais yn bodloni rhai o bolisïau diogelwch eich sefydliad. Gwiriwch gyda'ch gweinyddwr beth sydd angen ei drwsio.}two{Nid yw'r ffeiliau hyn yn bodloni rhai o bolisïau diogelwch eich sefydliad. Gwiriwch gyda'ch gweinyddwr beth sydd angen ei drwsio.}few{Nid yw'r ffeiliau hyn yn bodloni rhai o bolisïau diogelwch eich sefydliad. Gwiriwch gyda'ch gweinyddwr beth sydd angen ei drwsio.}many{Nid yw'r ffeiliau hyn yn bodloni rhai o bolisïau diogelwch eich sefydliad. Gwiriwch gyda'ch gweinyddwr beth sydd angen ei drwsio.}other{Nid yw'r ffeiliau hyn yn bodloni rhai o bolisïau diogelwch eich sefydliad. Gwiriwch gyda'ch gweinyddwr beth sydd angen ei drwsio.}}</translation>
 <translation id="5736796278325406685">Rhowch enw defnyddiwr dilys</translation>
 <translation id="5738093759615225354">Mae angen y cod pas hwn arnoch i fewngofnodi i'ch cyfrifiadur</translation>
-<translation id="5738329404678738022">Storio eich nodau tudalen a rhagor gyda chysoni</translation>
 <translation id="5739017626473506901">Mewngofnodwch i helpu <ph name="USER_NAME" /> i ychwanegu cyfrif ysgol</translation>
 <translation id="5739235828260127894">Yn aros am gadarnhad. <ph name="LINK_BEGIN" />Dysgu rhagor<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Mawr iawn</translation>
@@ -5275,7 +5278,6 @@
 <translation id="5757375109985023827">Dewiswch dab i gael rhagolwg ohono</translation>
 <translation id="5758631781033351321">Byddwch yn gweld eich rhestr ddarllen yma</translation>
 <translation id="5759728514498647443">Gall <ph name="APP_NAME" /> ddarllen dogfennau rydych yn eu hanfon i'w hargraffu drwy <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Mewngofnodwch am ragor o fuddion</translation>
 <translation id="5762787084360227629">Rhowch wybodaeth Cyfrif Google</translation>
 <translation id="5763751966069581670">Ni chanfuwyd unrhyw ddyfeisiau USB</translation>
 <translation id="5764483294734785780">Ca&amp;dw sain fel...</translation>
@@ -5746,6 +5748,7 @@
 <translation id="617213288191670920">Heb ychwanegu unrhyw ieithoedd</translation>
 <translation id="6173623053897475761">Teipiwch eich PIN eto</translation>
 <translation id="6175314957787328458">GUID Parth Microsoft</translation>
+<translation id="6177412385419165772">Wrthi'n tynnu...</translation>
 <translation id="6178664161104547336">Dewiswch dystysgrif</translation>
 <translation id="6178682841350631965">Cafodd eich data mewngofnodi eu diweddaru</translation>
 <translation id="6180510783007738939">Offeryn Llinell</translation>
@@ -6230,6 +6233,7 @@
 <translation id="6619801788773578757">Ychwanegu ap Kiosk</translation>
 <translation id="6619990499523117484">Cadarnhewch eich PIN</translation>
 <translation id="6620254580880484313">Enw'r cynhwysydd</translation>
+<translation id="6620927550847360014">Tynnu Bruschetta o'ch <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">I anfon y tab hwn i ddyfais arall, mewngofnodwch i Chrome ar y ddwy ddyfais</translation>
 <translation id="6622980291894852883">Parhau i rwystro lluniau</translation>
 <translation id="6624036901798307345">Yn y modd tabled, tapiwch y botwm bar offer rhifydd tabiau i agor y stribed tabiau newydd sy'n dangos mân-luniau pob tab.</translation>
@@ -6447,6 +6451,7 @@
 <translation id="6818547713623251698">Gweld lluniau, cyfryngau, hysbysiadau ac apiau eich ffôn</translation>
 <translation id="6818802132960437751">Amddiffyniad rhag feirysau integredig</translation>
 <translation id="6818920801736417483">Cadw cyfrineiriau?</translation>
+<translation id="6820079682647046800">Methodd dilysiad Kerberos</translation>
 <translation id="6823174134746916417">Tapio i glicio pad cyffwrdd</translation>
 <translation id="6824564591481349393">Copi'r &amp;Cyfeiriad E-bost</translation>
 <translation id="6824584962142919697">&amp;Archwilio elfennau</translation>
@@ -6601,6 +6606,7 @@
 <translation id="6955698182324067397">Rydych yn galluogi nodweddion dadfygio ChromeOS a fydd yn gosod sshd daemon ac yn galluogi cychwyn o yriannau USB.</translation>
 <translation id="6955893174999506273">Aseinio 1 switsh arall</translation>
 <translation id="6957044667612803194">Nid yw'r allwedd ddiogelwch hon yn cefnogi PIN</translation>
+<translation id="6960133692707095572">Ymweld heb docyn</translation>
 <translation id="6960507406838246615">Angen diweddariad Linux</translation>
 <translation id="6960648667961844909">Methu â lawrlwytho ffeiliau lleferydd <ph name="LANGUAGE" />. Ceisir lawrlwytho yn nes ymlaen. Anfonir lleferydd at Google i'w brosesu nes bod y lawrlwythiad wedi'i gwblhau.</translation>
 <translation id="696103774840402661">Mae'r holl ffeiliau a data lleol ar gyfer yr holl ddefnyddwyr ar y <ph name="DEVICE_TYPE" /> hwn wedi'u dileu yn barhaol.</translation>
@@ -7821,7 +7827,6 @@
 <translation id="8059417245945632445">&amp;Archwilio dyfeisiau</translation>
 <translation id="8059456211585183827">Nid oes unrhyw argraffyddion ar gael i'w cadw.</translation>
 <translation id="8061091456562007989">Ei newid yn ôl</translation>
-<translation id="8061965471006133016">Diogelwch ychwanegol i'ch cyfrineiriau a rhagor</translation>
 <translation id="8061970399284390013">Gwirio sillafu a gramadeg</translation>
 <translation id="8061991877177392872">Mae'n ymddangos eich bod eisoes wedi gosod Voice Match gyda'ch Assistant ar ddyfais arall. Defnyddiwyd y recordiadau blaenorol hyn i wneud model llais ar y ddyfais hon.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 ddalen o bapur}zero{{COUNT} dalen o bapur}two{{COUNT} ddalen o bapur}few{{COUNT} dalen o bapur}many{{COUNT} dalen o bapur}other{{COUNT} dalen o bapur}}</translation>
@@ -8062,6 +8067,7 @@
 <translation id="8272443605911821513">Rheoli eich estyniadau drwy glicio Estyniadau yn y ddewislen "Rhagor o offer".</translation>
 <translation id="8272786333453048167">Caniatáu eto</translation>
 <translation id="8273905181216423293">Lawrlwytho nawr</translation>
+<translation id="827488840488530039">Ni allai'r dudalen rydych yn ceisio ymweld â hi ddilysu eich tocynnau Kerberos</translation>
 <translation id="8274921654076766238">Mae'r chwyddwr yn dilyn ffocws y bysellfwrdd</translation>
 <translation id="8274924778568117936">Peidiwch â diffodd na chau eich <ph name="DEVICE_TYPE" /> nes bod y diweddariad wedi gorffen. Bydd eich <ph name="DEVICE_TYPE" /> yn ailgychwyn ar ôl i'r gosodiad orffen.</translation>
 <translation id="8275038454117074363">Mewnforio</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 2c636d4b..a1b4f5a1 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transfer Protocol Secure (HTTPS)</translation>
 <translation id="1059944192885972544">Der blev fundet <ph name="NUM" /> faner for "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="1060292118287751956">Fastlægger frekvensen for skærmopdateringer</translation>
+<translation id="1060570945511946595">Administrer billetter</translation>
 <translation id="1061130374843955397">Velkommen til din <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Opret QR-kode for dette link</translation>
 <translation id="1061904396131502319">Det er snart tid til en pause</translation>
@@ -1127,6 +1128,7 @@
 <translation id="1975841812214822307">Fjern...</translation>
 <translation id="1976150099241323601">Log ind på sikkerhedsenhed</translation>
 <translation id="1977965994116744507">Flyt din telefon tættere på din <ph name="DEVICE_TYPE" /> for at låse den op.</translation>
+<translation id="1978666928180318515">Fjern Bruschetta</translation>
 <translation id="1979095679518582070">Deaktivering af denne funktion påvirker ikke denne enheds evne til at sende oplysninger, der skal bruges til vigtige tjenester som f.eks. systemopdateringer og sikkerhed.</translation>
 <translation id="1979280758666859181">Du er ved at skifte til en kanal med en ældre version af <ph name="PRODUCT_NAME" />. Kanalskiftet træder i kraft, når kanalversionen matcher den version, der i øjeblikket er installeret på din enhed.</translation>
 <translation id="197989455406964291">KDC understøtter ikke krypteringstypen</translation>
@@ -1933,6 +1935,7 @@
 <translation id="2672142220933875349">Ugyldig CRX-fil. Udpakning mislykkedes.</translation>
 <translation id="2673135533890720193">Læse din browserhistorik</translation>
 <translation id="2674764818721168631">Fra</translation>
+<translation id="2675570801872027281">Der opstod en fejl under fjernelse af Bruschetta. Prøv igen.</translation>
 <translation id="2676492189600898281">Giv feedback om Autofyld</translation>
 <translation id="2678063897982469759">Genaktiver</translation>
 <translation id="2678100101831051676">Det var ikke muligt at caste.</translation>
@@ -2931,6 +2934,7 @@
 <translation id="3593965109698325041">Begrænsninger for certifikatnavn</translation>
 <translation id="3596012367874587041">Appindstillinger</translation>
 <translation id="3596414637720633074">Bloker tredjepartscookies i inkognito</translation>
+<translation id="3598010454707842106">Klik på "Tilpas Chrome"</translation>
 <translation id="3599221874935822507">Hævet</translation>
 <translation id="3600051066689725006">Oplysninger om webanmodning</translation>
 <translation id="360180734785106144">Tilbyde nye funktioner, efterhånden som de bliver tilgængelige</translation>
@@ -3929,6 +3933,7 @@
 <translation id="4497145443434063861">Computer og Chromecast er på forskellige Wi-Fi-netværk (f.eks. 2,4 GHz
     i forhold til 5 GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> er gået ned</translation>
+<translation id="4500647907053779331">&amp;Oversæt markeret tekst til <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Ikon for udråbstegn</translation>
 <translation id="4501530680793980440">Bekræft fjernelse</translation>
 <translation id="4502423230170890588">Fjern fra denne enhed</translation>
@@ -4458,7 +4463,6 @@
 <translation id="4977942889532008999">Bekræft adgang</translation>
 <translation id="4980805016576257426">Denne udvidelse indeholder malware.</translation>
 <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Log ind<ph name="END_LINK" /> for at rydde browserdata fra alle dine synkroniserede enheder og din Google-konto.</translation>
-<translation id="4982111327868342436">Fortsæt, hvor du slap, på en hvilken som helst enhed</translation>
 <translation id="4986706507552097681">Du kan altid vælge, hvad der skal synkroniseres, i indstillingerne. Google kan tilpasse Søgning og andre tjenester baseret på din historik.</translation>
 <translation id="4986728572522335985">Denne handling sletter alle data på sikkerhedsnøglen, bl.a. pinkoden</translation>
 <translation id="4988526792673242964">Sider</translation>
@@ -4575,7 +4579,6 @@
 <translation id="5097349930204431044">De websites, du besøger, kan foretage en vurdering af, hvad du kan lide, og derefter foreslå annoncer, når du fortsætter med at browse</translation>
 <translation id="5097649414558628673">Værktøj: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Klik automatisk, når markøren stopper</translation>
-<translation id="5101683448725092498">Sikkerhedskopiér dit indhold</translation>
 <translation id="5101839224773798795">Klik automatisk, når markøren stopper</translation>
 <translation id="5106350808162641062">Fjern</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> forældrestyres af Family Link. Du kan tilføje skolekonti for at få adgang til skoleressourcer med en forældrestyret konto.</translation>
@@ -5141,7 +5144,6 @@
 <translation id="5623842676595125836">Log</translation>
 <translation id="5624120631404540903">Administrer adgangskoder</translation>
 <translation id="5625225435499354052">Rediger i Google Pay</translation>
-<translation id="5625631605902707678">På alle enheder</translation>
 <translation id="5626134646977739690">Navn:</translation>
 <translation id="5627086634964711283">Den styrer også, hvilken side der vises, når du klikker på knappen Startside.</translation>
 <translation id="5627676517703583263">Smart browsing med Chrome</translation>
@@ -5253,7 +5255,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Disse data eller din enhed overholder ikke alle din organisations sikkerhedspolitikker. Spørg din administrator, hvad der skal rettes.}=1{Denne fil eller din enhed overholder ikke alle din organisations sikkerhedspolitikker. Spørg din administrator, hvad der skal rettes.}one{Denne fil overholder ikke alle din organisations sikkerhedspolitikker. Spørg din administrator, hvad der skal rettes.}other{Disse filer overholder ikke alle din organisations sikkerhedspolitikker. Spørg din administrator, hvad der skal rettes.}}</translation>
 <translation id="5736796278325406685">Angiv et gyldigt brugernavn</translation>
 <translation id="5738093759615225354">Du skal bruge denne adgangsnøgle for at logge ind på din computer</translation>
-<translation id="5738329404678738022">Gem dine bogmærker og meget mere ved hjælp af synkronisering</translation>
 <translation id="5739017626473506901">Log ind for at hjælpe <ph name="USER_NAME" /> med at tilføje en skolekonto</translation>
 <translation id="5739235828260127894">Venter på bekræftelse. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Meget stor</translation>
@@ -5275,7 +5276,6 @@
 <translation id="5757375109985023827">Vælg en fane for at se en forhåndsvisning</translation>
 <translation id="5758631781033351321">Her finder du din læseliste</translation>
 <translation id="5759728514498647443">De dokumenter, du sender til udskrift via <ph name="APP_NAME" />, kan læses af <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Log ind for at få flere fordele</translation>
 <translation id="5762787084360227629">Angiv Google-kontooplysninger</translation>
 <translation id="5763751966069581670">Der blev ikke fundet nogen USB-enheder</translation>
 <translation id="5764483294734785780">&amp;Gem lyd som...</translation>
@@ -5746,6 +5746,7 @@
 <translation id="617213288191670920">Der er ikke tilføjet nogle sprog</translation>
 <translation id="6173623053897475761">Angiv din pinkode igen</translation>
 <translation id="6175314957787328458">Microsoft-domæne-GUID</translation>
+<translation id="6177412385419165772">Fjerner...</translation>
 <translation id="6178664161104547336">Vælg et certifikat</translation>
 <translation id="6178682841350631965">Dine logindata er opdateret</translation>
 <translation id="6180510783007738939">Linjeværktøj</translation>
@@ -6224,6 +6225,7 @@
 <translation id="6619801788773578757">Tilføj terminalapp</translation>
 <translation id="6619990499523117484">Bekræft din pinkode</translation>
 <translation id="6620254580880484313">Containernavn</translation>
+<translation id="6620927550847360014">Vil du fjerne Bruschetta fra din <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Hvis du vil sende denne fane til en anden enhed, skal du logge ind på Chrome på begge enheder</translation>
 <translation id="6622980291894852883">Fortsæt blokering af billeder</translation>
 <translation id="6624036901798307345">I tablettilstand skal du trykke på knappen til faneoptælling på værktøjslinjen for at åbne den nye fanelinje, der viser miniaturebilleder af hver fane.</translation>
@@ -6441,6 +6443,7 @@
 <translation id="6818547713623251698">Se din telefons billeder, mediefiler, notifikationer og apps</translation>
 <translation id="6818802132960437751">Indbygget virusbeskyttelse</translation>
 <translation id="6818920801736417483">Vil du gemme adgangskoderne?</translation>
+<translation id="6820079682647046800">Kerberos-godkendelse mislykkedes</translation>
 <translation id="6823174134746916417">Tryk-hurtigt-for-at-klikke på touchplade</translation>
 <translation id="6824564591481349393">Kopier mailadress&amp;e</translation>
 <translation id="6824584962142919697">&amp;Inspect elements (Undersøg elementer)</translation>
@@ -6595,6 +6598,7 @@
 <translation id="6955698182324067397">Du aktiverer ChromeOS-fejlretningsfunktioner, som konfigurerer sshd daemon og aktiverer systemgenstart via USB-drev.</translation>
 <translation id="6955893174999506273">Tildel 1 kontakt mere</translation>
 <translation id="6957044667612803194">Denne sikkerhedsnøgle understøtter ikke pinkoder</translation>
+<translation id="6960133692707095572">Besøg uden billet</translation>
 <translation id="6960507406838246615">Kræver Linux-opdatering</translation>
 <translation id="6960648667961844909">Talefilerne på <ph name="LANGUAGE" /> kunne ikke downloades. Downloaden forsøges senere. Tale sendes til behandling hos Google, indtil downloaden er fuldført.</translation>
 <translation id="696103774840402661">Alle filer og lokale data for alle brugere på denne <ph name="DEVICE_TYPE" /> er blevet slettet permanent.</translation>
@@ -7815,7 +7819,6 @@
 <translation id="8059417245945632445">&amp;Inspicer enheder</translation>
 <translation id="8059456211585183827">Der er ingen printere, som kan gemmes.</translation>
 <translation id="8061091456562007989">Skift tilbage</translation>
-<translation id="8061965471006133016">Ekstra beskyttelse af dine adgangskoder og meget mere</translation>
 <translation id="8061970399284390013">Grammatik- og stavekontrol</translation>
 <translation id="8061991877177392872">Det ser ud til, at du allerede har konfigureret Voice Match med Google-assistenten på en anden enhed. Disse tidligere optagelser blev brugt til at oprette en stemmemodel på denne enhed.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 ark papir}one{{COUNT} ark papir}other{{COUNT} ark papir}}</translation>
@@ -8056,6 +8059,7 @@
 <translation id="8272443605911821513">Administrer dine udvidelser ved at klikke på Udvidelser i menuen "Flere værktøjer".</translation>
 <translation id="8272786333453048167">Tillad igen</translation>
 <translation id="8273905181216423293">Download nu</translation>
+<translation id="827488840488530039">Den side, du forsøger at besøge, kunne ikke verificere dine Kerberos-billetter</translation>
 <translation id="8274921654076766238">Forstørrelse følger indtastningen på tastaturet</translation>
 <translation id="8274924778568117936">Undgå at slukke eller lukke din <ph name="DEVICE_TYPE" />, før opdateringen er færdig. Din <ph name="DEVICE_TYPE" /> genstarter, når installationen er fuldført.</translation>
 <translation id="8275038454117074363">Importer</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index fd14f5d..500ba854 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transfer Protocol Secure (HTTPS)</translation>
 <translation id="1059944192885972544"><ph name="NUM" /> Tabs für "<ph name="SEARCH_TEXT" />" gefunden</translation>
 <translation id="1060292118287751956">Bestimmt, wie oft das sichtbare Bild auf dem Bildschirm neu aufgebaut wird</translation>
+<translation id="1060570945511946595">Tickets verwalten</translation>
 <translation id="1061130374843955397">Willkommen bei deinem <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">QR-Code für diesen Link erstellen</translation>
 <translation id="1061904396131502319">Bald ist es Zeit für eine Pause</translation>
@@ -377,6 +378,7 @@
 <translation id="1339009753652684748">Mit „Hey Google“ kannst du auf Assistant zugreifen. Damit der Akku geschont wird, solltest du die Option „An (empfohlen)“ auswählen. So reagiert Assistant nur, wenn dein Gerät an eine Stromquelle angeschlossen ist oder auflädt.</translation>
 <translation id="13392265090583506">Barrierefreiheit</translation>
 <translation id="1340527397989195812">Sichere Medien von diesem Gerät mit der App "Dateien".</translation>
+<translation id="1341701348342335220">Gut gemacht!</translation>
 <translation id="1341871421050612057">Synchronisierung mit <ph name="USERNAME" /> nicht möglich</translation>
 <translation id="1343865611738742294">Linux-Apps erlauben, auf USB-Geräte zuzugreifen. Linux merkt sich keine USB-Geräte, nachdem diese entfernt wurden.</translation>
 <translation id="1343920184519992513">Da weitermachen, wo du aufgehört hast, und bestimmte Seiten öffnen</translation>
@@ -1110,6 +1112,7 @@
 <translation id="1975841812214822307">Entfernen...</translation>
 <translation id="1976150099241323601">In Sicherheitsgerät anmelden</translation>
 <translation id="1977965994116744507">Verringere den Abstand zwischen Smartphone und <ph name="DEVICE_TYPE" />, um das Gerät zu entsperren.</translation>
+<translation id="1978666928180318515">Bruschetta entfernen</translation>
 <translation id="1979095679518582070">Wenn du diese Funktion deaktivierst, kann dieses Gerät weiterhin Informationen senden, die für grundlegende Dienste wie Systemupdates und -sicherheit erforderlich sind.</translation>
 <translation id="1979280758666859181">Du möchtest zu einem Kanal mit einer älteren Version von <ph name="PRODUCT_NAME" /> wechseln. Die Änderung erfolgt, sobald die Kanalversion der aktuell auf deinem Gerät installierten Version entspricht.</translation>
 <translation id="197989455406964291">KDC unterstützt den Verschlüsselungstyp nicht</translation>
@@ -1913,6 +1916,7 @@
 <translation id="2672142220933875349">Fehler beim Entpacken wegen fehlerhafter CRX-Datei.</translation>
 <translation id="2673135533890720193">Browserverlauf lesen</translation>
 <translation id="2674764818721168631">Aus</translation>
+<translation id="2675570801872027281">Fehler beim Entfernen von Bruschetta. Bitte versuch es noch einmal.</translation>
 <translation id="2676492189600898281">Feedback zu Autofill geben</translation>
 <translation id="2678063897982469759">Wieder aktivieren</translation>
 <translation id="2678100101831051676">Streamen nicht möglich.</translation>
@@ -2911,6 +2915,7 @@
 <translation id="3593965109698325041">Beschränkungen für Zertifikatsnamen</translation>
 <translation id="3596012367874587041">App-Einstellungen</translation>
 <translation id="3596414637720633074">Cookies von Drittanbietern im Inkognitomodus blockieren</translation>
+<translation id="3598010454707842106">Klicke auf „Chrome anpassen“</translation>
 <translation id="3599221874935822507">Erhöht</translation>
 <translation id="3600051066689725006">Webanfrageinformationen</translation>
 <translation id="360180734785106144">Neue Funktionen anbieten, sobald sie verfügbar sind</translation>
@@ -3621,6 +3626,7 @@
 <translation id="4232375817808480934">Kerberos konfigurieren</translation>
 <translation id="4235965441080806197">Anmeldung abbrechen</translation>
 <translation id="4236163961381003811">Mehr Erweiterungen entdecken</translation>
+<translation id="4237282663517880406">Google Drive-Vorschläge anzeigen</translation>
 <translation id="4241182343707213132">Neu starten, um die Apps der Organisation zu aktualisieren</translation>
 <translation id="4242145785130247982">Mehrere Clientzertifikate werden nicht unterstützt</translation>
 <translation id="4242533952199664413">Einstellungen öffnen</translation>
@@ -3907,6 +3913,7 @@
 <translation id="4495419450179050807">Nicht auf dieser Seite anzeigen</translation>
 <translation id="4497145443434063861">Der PC und Chromecast befinden sich in verschiedenen WLANs, z. B. 2,4 GHz und 5 GHz</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ist abgestürzt</translation>
+<translation id="4500647907053779331">Auswahl auf <ph name="LANGUAGE" /> überse&amp;tzen</translation>
 <translation id="450099669180426158">Ausrufezeichensymbol</translation>
 <translation id="4501530680793980440">Entfernen bestätigen</translation>
 <translation id="4502423230170890588">Von diesem Gerät entfernen</translation>
@@ -4436,7 +4443,6 @@
 <translation id="4977942889532008999">Zugriff bestätigen</translation>
 <translation id="4980805016576257426">Diese Erweiterung enthält Malware.</translation>
 <translation id="4981449534399733132">Wenn du Browserdaten von allen deinen synchronisierten Geräten und aus deinem Google-Konto löschen möchtest, <ph name="BEGIN_LINK" />melde dich an<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Weitermachen, wo du aufgehört hast – auf jedem Gerät</translation>
 <translation id="4986706507552097681">In den Einstellungen kannst du auswählen, was synchronisiert werden soll. Google kann die Google Suche und andere Dienste auf der Grundlage deines Verlaufs personalisieren.</translation>
 <translation id="4986728572522335985">Damit werden alle Daten auf dem Sicherheitsschlüssel und die dazugehörige PIN gelöscht</translation>
 <translation id="4988526792673242964">Seiten</translation>
@@ -4553,7 +4559,6 @@
 <translation id="5097349930204431044">Websites, die du besuchst, können feststellen, was dir gefällt, und dir dann Werbung vorschlagen, wenn du hinterher im Internet surfst</translation>
 <translation id="5097649414558628673">Tool: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automatisch klicken, wenn der Cursor stoppt</translation>
-<translation id="5101683448725092498">Daten sichern</translation>
 <translation id="5101839224773798795">Automatisch klicken, wenn der Cursor anhält</translation>
 <translation id="5106350808162641062">Entfernen</translation>
 <translation id="510695978163689362">Für <ph name="USER_EMAIL" /> ist die Elternaufsicht über Family Link eingerichtet. Du kannst Konten einer Bildungseinrichtung hinzufügen, um unter Elternaufsicht auf Ressourcen dieser Einrichtung zuzugreifen.</translation>
@@ -5117,7 +5122,6 @@
 <translation id="5623842676595125836">Protokoll</translation>
 <translation id="5624120631404540903">Passwörter verwalten</translation>
 <translation id="5625225435499354052">In Google Pay bearbeiten</translation>
-<translation id="5625631605902707678">Auf verschiedenen Geräten</translation>
 <translation id="5626134646977739690">Name:</translation>
 <translation id="5627086634964711283">Die Erweiterung legt auch fest, welche Seite beim Klicken auf die Schaltfläche "Startseite" erscheint.</translation>
 <translation id="5627676517703583263">Intelligent surfen mit Chrome</translation>
@@ -5229,7 +5233,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Diese Daten oder dein Gerät entsprechen nicht allen Sicherheitsrichtlinien deiner Organisation. Frage deinen Administrator, was korrigiert werden muss.}=1{Diese Datei oder dein Gerät entspricht nicht allen Sicherheitsrichtlinien deiner Organisation. Frage deinen Administrator, was korrigiert werden muss.}other{Diese Dateien entsprechen nicht allen Sicherheitsrichtlinien deiner Organisation. Frage deinen Administrator, was korrigiert werden muss.}}</translation>
 <translation id="5736796278325406685">Bitte gib einen gültigen Nutzernamen ein</translation>
 <translation id="5738093759615225354">Du benötigst diesen Passkey, um dich auf deinem Computer anzumelden</translation>
-<translation id="5738329404678738022">Über eine Synchronisierung deine Lesezeichen und weitere Elemente speichern</translation>
 <translation id="5739017626473506901">Melde dich an, damit <ph name="USER_NAME" /> ein Konto einer Bildungseinrichtung hinzufügen kann</translation>
 <translation id="5739235828260127894">Bestätigung steht aus. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Sehr groß</translation>
@@ -5251,7 +5254,6 @@
 <translation id="5757375109985023827">Tab für die Vorschau auswählen</translation>
 <translation id="5758631781033351321">Hier wird deine Leseliste angezeigt</translation>
 <translation id="5759728514498647443">Dokumente, die du über <ph name="APP_NAME" /> zum Druck sendest, können von <ph name="APP_NAME" /> gelesen werden.</translation>
-<translation id="5760508342220592715">Anmelden, um weitere Vorteile zu erhalten</translation>
 <translation id="5762787084360227629">Google-Kontoinformationen eingeben</translation>
 <translation id="5763751966069581670">Keine USB-Geräte gefunden</translation>
 <translation id="5764483294734785780">Audio &amp;speichern unter...</translation>
@@ -5721,6 +5723,7 @@
 <translation id="617213288191670920">Keine Sprachen hinzugefügt</translation>
 <translation id="6173623053897475761">PIN noch einmal eingeben</translation>
 <translation id="6175314957787328458">Microsoft-Domain-GUID</translation>
+<translation id="6177412385419165772">Wird entfernt…</translation>
 <translation id="6178664161104547336">Zertifikat auswählen</translation>
 <translation id="6178682841350631965">Deine Anmeldedaten wurden aktualisiert</translation>
 <translation id="6180510783007738939">Linientool</translation>
@@ -6197,6 +6200,7 @@
 <translation id="6619801788773578757">Kioskanwendung hinzufügen</translation>
 <translation id="6619990499523117484">PIN bestätigen</translation>
 <translation id="6620254580880484313">Containername</translation>
+<translation id="6620927550847360014">Bruschetta von deinem Gerät (<ph name="DEVICE_TYPE" />) entfernen?</translation>
 <translation id="6621391692573306628">Wenn du diesen Tab an ein anderes Gerät senden möchtest, melde dich auf beiden Geräten in Chrome an</translation>
 <translation id="6622980291894852883">Bilder weiterhin blockieren</translation>
 <translation id="6624036901798307345">Tippe im Tablet-Modus auf die Tab-Zähler-Schaltfläche in der Symbolleiste, um die neue Tableiste zu öffnen, die Miniaturansichten der einzelnen Tabs anzeigt.</translation>
@@ -6414,6 +6418,7 @@
 <translation id="6818547713623251698">Fotos, Medien, Benachrichtigungen und Apps von deinem Smartphone abrufen</translation>
 <translation id="6818802132960437751">Integrierter Virenschutz</translation>
 <translation id="6818920801736417483">Passwörter speichern?</translation>
+<translation id="6820079682647046800">Fehler bei Kerberos-Authentifizierung</translation>
 <translation id="6823174134746916417">Touchpad-Klick</translation>
 <translation id="6824564591481349393">E-Mail-Adr&amp;esse kopieren</translation>
 <translation id="6824584962142919697">&amp;Elemente untersuchen</translation>
@@ -6568,6 +6573,7 @@
 <translation id="6955698182324067397">Du aktivierst Debugging-Funktionen für Chrome OS. Dadurch wird der SSHD-Daemon eingerichtet und das Starten über USB aktiviert.</translation>
 <translation id="6955893174999506273">1 weiteren Schalter zuweisen</translation>
 <translation id="6957044667612803194">Der Sicherheitsschlüssel unterstützt keine PINs</translation>
+<translation id="6960133692707095572">Ohne Ticket besuchen</translation>
 <translation id="6960507406838246615">Linux-Update erforderlich</translation>
 <translation id="6960648667961844909">Sprachdateien auf <ph name="LANGUAGE" /> konnten nicht heruntergeladen werden. Der Download wird später versucht. Sprachaufnahmen werden zur Verarbeitung an Google gesendet, bis der Download abgeschlossen ist.</translation>
 <translation id="696103774840402661">Alle Dateien und lokalen Daten für alle Nutzer auf diesem <ph name="DEVICE_TYPE" /> wurden dauerhaft gelöscht.</translation>
@@ -7789,7 +7795,6 @@
 <translation id="8059417245945632445">&amp;Geräte untersuchen</translation>
 <translation id="8059456211585183827">Es sind keine Drucker verfügbar, die gespeichert werden können.</translation>
 <translation id="8061091456562007989">Änderung rückgängig machen</translation>
-<translation id="8061965471006133016">Zusätzlicher Schutz, z. B. für deine Passwörter</translation>
 <translation id="8061970399284390013">Rechtschreib- und Grammatikprüfung</translation>
 <translation id="8061991877177392872">Du hast Voice Match schon auf einem anderen Gerät mit Assistant eingerichtet. Diese vorherigen Aufnahmen wurden verwendet, um ein Sprachmodell auf diesem Gerät zu erstellen.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 Blatt Papier}other{{COUNT} Blätter Papier}}</translation>
@@ -8030,6 +8035,7 @@
 <translation id="8272443605911821513">Klicke zum Verwalten deiner Erweiterungen im Menü „Mehr Tools“ auf „Erweiterungen“.</translation>
 <translation id="8272786333453048167">Wieder zulassen</translation>
 <translation id="8273905181216423293">Jetzt herunterladen</translation>
+<translation id="827488840488530039">Die Seite, die du besuchen möchtest, konnte deine Kerberos-Tickets nicht bestätigen</translation>
 <translation id="8274921654076766238">Lupe folgt Tastaturfokus</translation>
 <translation id="8274924778568117936">Schalte dein <ph name="DEVICE_TYPE" /> nicht aus bzw. schließe es nicht, bis das Update abgeschlossen ist. Nach Abschluss der Installation wird dein <ph name="DEVICE_TYPE" /> neu gestartet.</translation>
 <translation id="8275038454117074363">Importieren</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index c27bc06..b327900ee 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -4287,6 +4287,7 @@
 <translation id="4824037980212326045">Δημιουργία αντιγράφου ασφαλείας και επαναφορά Linux</translation>
 <translation id="4824958205181053313">Ακύρωση συγχρονισμού;</translation>
 <translation id="4825532258163983651">Δεν είναι δυνατή η διαγραφή του κλειδιού πρόσβασης</translation>
+<translation id="4827283332383516812">Διαγραφή κάρτας</translation>
 <translation id="4827675678516992122">Αδυναμία σύνδεσης</translation>
 <translation id="4827784381479890589">Βελτιωμένος ορθογραφικός έλεγχος στο πρόγραμμα περιήγησης Chrome (Αποστολή κειμένου στη Google για τη λήψη προτάσεων ορθογραφίας)</translation>
 <translation id="4827904420700932487">Δημιουργία κωδικού QR για αυτήν την εικόνα</translation>
@@ -4462,7 +4463,6 @@
 <translation id="4977942889532008999">Επιβεβαίωση πρόσβασης</translation>
 <translation id="4980805016576257426">Αυτή η επέκταση περιέχει κακόβουλο πρόγραμμα.</translation>
 <translation id="4981449534399733132">Για να διαγράψετε τα δεδομένα περιήγησης από όλες τις συγχρονισμένες συσκευές σας και τον Λογαριασμό σας Google, <ph name="BEGIN_LINK" />συνδεθείτε<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Συνεχίστε από εκεί που σταματήσατε σε οποιαδήποτε συσκευή</translation>
 <translation id="4986706507552097681">Μπορείτε πάντα να επιλέξετε τα στοιχεία που θέλετε να συγχρονίσετε στις ρυθμίσεις. Η Google μπορεί να εξατομικεύει την Αναζήτηση και άλλες υπηρεσίες με βάση το ιστορικό σας.</translation>
 <translation id="4986728572522335985">Με αυτήν την ενέργεια θα διαγραφούν όλα τα δεδομένα στο κλειδί ασφαλείας, συμπεριλαμβανομένου του PIN του</translation>
 <translation id="4988526792673242964">Σελίδες</translation>
@@ -4579,7 +4579,6 @@
 <translation id="5097349930204431044">Οι ιστότοποι που επισκέπτεστε μπορούν να προσδιορίσουν τι σας αρέσει και έπειτα να προτείνουν διαφημίσεις καθώς συνεχίζετε την περιήγηση</translation>
 <translation id="5097649414558628673">Εργαλείο: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Αυτόματο κλικ όταν σταματά ο δείκτης του ποντικιού</translation>
-<translation id="5101683448725092498">Δημιουργήστε αντίγραφα ασφαλείας του περιεχομένου σας</translation>
 <translation id="5101839224773798795">Να γίνεται αυτόματα κλικ όταν σταματά ο δείκτης του ποντικιού</translation>
 <translation id="5106350808162641062">Κατάργηση</translation>
 <translation id="510695978163689362">Ο χρήστης <ph name="USER_EMAIL" /> επιβλέπεται από το Family Link. Μπορείτε να προσθέσετε σχολικούς λογαριασμούς για πρόσβαση στους πόρους του σχολείου με γονική επίβλεψη.</translation>
@@ -5146,7 +5145,6 @@
 <translation id="5623842676595125836">Αρχείο καταγραφής</translation>
 <translation id="5624120631404540903">Διαχείριση κωδικών πρόσβασης</translation>
 <translation id="5625225435499354052">Επεξεργασία στο Google Pay</translation>
-<translation id="5625631605902707678">Σε όλες τις συσκευές</translation>
 <translation id="5626134646977739690">Όνομα:</translation>
 <translation id="5627086634964711283">Επίσης, ελέγχει τη σελίδα που εμφανίζεται όταν κάνετε κλικ στο κουμπί αρχικής σελίδας.</translation>
 <translation id="5627676517703583263">Περιηγηθείτε έξυπνα στο Chrome</translation>
@@ -5258,7 +5256,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Αυτά τα δεδομένα ή η συσκευή σας δεν συμμορφώνονται με ορισμένες από τις πολιτικές ασφαλείας του οργανισμού σας. Επικοινωνήστε με τον διαχειριστή σας σχετικά με το τι πρέπει να διορθωθεί.}=1{Αυτό το αρχείο ή η συσκευή σας δεν συμμορφώνεται με ορισμένες από τις πολιτικές ασφαλείας του οργανισμού σας. Επικοινωνήστε με τον διαχειριστή σας σχετικά με το τι πρέπει να διορθωθεί.}other{Αυτά τα αρχεία δεν συμμορφώνονται με ορισμένες από τις πολιτικές ασφαλείας του οργανισμού σας. Επικοινωνήστε με τον διαχειριστή σας σχετικά με το τι πρέπει να διορθωθεί.}}</translation>
 <translation id="5736796278325406685">Καταχωρίστε ένα έγκυρο όνομα χρήστη</translation>
 <translation id="5738093759615225354">Χρειάζεστε αυτό το κλειδί πρόσβασης για να συνδεθείτε στον υπολογιστή σας.</translation>
-<translation id="5738329404678738022">Αποθηκεύστε τους σελιδοδείκτες σας και πολλά άλλα χρησιμοποιώντας τον συγχρονισμό</translation>
 <translation id="5739017626473506901">Συνδεθείτε για να βοηθήσετε τον χρήστη <ph name="USER_NAME" /> να προσθέσει έναν σχολικό λογαριασμό</translation>
 <translation id="5739235828260127894">Αναμονή για επαλήθευση. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Πολύ μεγάλο</translation>
@@ -5280,7 +5277,6 @@
 <translation id="5757375109985023827">Επιλέξτε καρτέλα για προεπισκόπηση.</translation>
 <translation id="5758631781033351321">Εδώ θα βρείτε τη λίστα ανάγνωσής σας</translation>
 <translation id="5759728514498647443">Είναι δυνατή η ανάγνωση των εγγράφων που στέλνετε για εκτύπωση μέσω <ph name="APP_NAME" /> με την εφαρμογή <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Συνδεθείτε για περισσότερα οφέλη</translation>
 <translation id="5762787084360227629">Εισαγωγή στοιχείων Λογαριασμού Google</translation>
 <translation id="5763751966069581670">Δεν βρέθηκαν συσκευές USB</translation>
 <translation id="5764483294734785780">Αποθή&amp;κευση ήχου ως...</translation>
@@ -5316,6 +5312,7 @@
 <translation id="5792295754950501287">Περισσότερες ενέργειες για <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Πατήστε το κουμπί λειτουργίας</translation>
 <translation id="5792874008054171483">Περισσότερες ενέργειες για <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Αυτός ο τρόπος πληρωμής θα διαγραφεί από αυτήν τη συσκευή</translation>
 <translation id="5793339252089865437">Εάν κατεβάσετε την ενημέρωση μέσω του δικτύου κινητής τηλεφωνίας σας, αυτό μπορεί να έχει ως αποτέλεσμα χρεώσεις κάλυψης.</translation>
 <translation id="5793420564274426163">Επιβεβαίωση σύζευξης</translation>
 <translation id="5793430094159150686">Ο κωδικός πρόσβασής σας άλλαξε. Για να επαναφέρετε τα τοπικά δεδομένα σας, πρέπει να εισαγάγετε τον παλιό κωδικό πρόσβασής σας.</translation>
@@ -7294,6 +7291,7 @@
 <translation id="7609148976235050828">Συνδεθείτε στο διαδίκτυο και δοκιμάστε ξανά.</translation>
 <translation id="7612401678989660900">Να επιτρέπεται η πρόσβαση για εφαρμογές και ιστοτόπους με άδεια μικροφώνου</translation>
 <translation id="7612655942094160088">Ενεργοποίηση λειτουργιών συνδεδεμένου τηλεφώνου.</translation>
+<translation id="7612989789287281429">Γίνεται σύνδεση…</translation>
 <translation id="7614260613810441905">Να γίνεται ερώτηση όταν ένας ιστότοπος θέλει να επεξεργαστεί αρχεία ή φακέλους στη συσκευή σας (συνιστάται)</translation>
 <translation id="761530003705945209">Δημιουργία αντιγράφων ασφαλείας στο Google Drive. Επαναφέρετε τα δεδομένα σας ή αλλάξτε συσκευή ανά πάσα στιγμή με ευκολία. Το αντίγραφο ασφαλείας συμπεριλαμβάνει τα δεδομένα εφαρμογών. Τα αντίγραφα ασφαλείας σας ανεβαίνουν στο Google και κρυπτογραφούνται χρησιμοποιώντας τον κωδικό πρόσβασης του Λογαριασμού σας Google.</translation>
 <translation id="7615365294369022248">Παρουσιάστηκε σφάλμα κατά την προσθήκη ενός λογαριασμού</translation>
@@ -7823,7 +7821,6 @@
 <translation id="8059417245945632445">&amp;Επιθεώρηση συσκευών</translation>
 <translation id="8059456211585183827">Δεν υπάρχουν διαθέσιμοι εκτυπωτές για αποθήκευση.</translation>
 <translation id="8061091456562007989">Αναίρεση αλλαγής</translation>
-<translation id="8061965471006133016">Επιπλέον προστασία για τους κωδικούς πρόσβασης και άλλα</translation>
 <translation id="8061970399284390013">Ορθογραφικός και γραμματικός έλεγχος</translation>
 <translation id="8061991877177392872">Φαίνεται πως έχετε ήδη ρυθμίσει το Voice Match με τον Βοηθό σας σε κάποια άλλη συσκευή. Αυτές οι προηγούμενες εγγραφές χρησιμοποιήθηκαν για τη δημιουργία ενός φωνητικού μοντέλου σε αυτήν τη συσκευή.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 φύλλο χαρτιού}other{{COUNT} φύλλα χαρτιού}}</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 52407d9..53a1a33 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -1639,6 +1639,7 @@
 <translation id="2408018932941436077">Saving card</translation>
 <translation id="2408955596600435184">Enter your PIN</translation>
 <translation id="2409268599591722235">Let's go</translation>
+<translation id="2409709393952490731">Use a phone or tablet</translation>
 <translation id="2410079346590497630">Build details</translation>
 <translation id="2410298923485357543">Use natural voice when device is online</translation>
 <translation id="2410754283952462441">Choose an account</translation>
@@ -3787,6 +3788,7 @@
 <translation id="4369215744064167350">Website request approved</translation>
 <translation id="4369735607080757018">Limited types of data are shared between sites to measure the performance of their ads, such as the time of day that an ad was shown to you</translation>
 <translation id="4370975561335139969">The email and password that you entered don't match.</translation>
+<translation id="4374805630006466253">Use a different phone or tablet</translation>
 <translation id="4374831787438678295">Linux installer</translation>
 <translation id="4375035964737468845">Open downloaded files</translation>
 <translation id="4376226992615520204">Location turned off</translation>
@@ -4464,7 +4466,6 @@
 <translation id="4977942889532008999">Confirm Access</translation>
 <translation id="4980805016576257426">This extension contains malware.</translation>
 <translation id="4981449534399733132">To clear browsing data from all of your synced devices and your Google Account, <ph name="BEGIN_LINK" />sign in<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Pick up where you left off on any device</translation>
 <translation id="4986706507552097681">You can always choose what to sync in settings. Google may personalise Search and other services based on your history.</translation>
 <translation id="4986728572522335985">This will delete all data on the security key, including its PIN</translation>
 <translation id="4988526792673242964">Pages</translation>
@@ -4581,7 +4582,6 @@
 <translation id="5097349930204431044">Sites that you visit can determine what you like and then suggest ads as you continue browsing</translation>
 <translation id="5097649414558628673">Tool: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automatically click when the cursor stops</translation>
-<translation id="5101683448725092498">Back up your stuff</translation>
 <translation id="5101839224773798795">Automatically click when the cursor stops</translation>
 <translation id="5106350808162641062">Remove</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> is supervised by Family Link. You can add school accounts to access school resources with parental supervision.</translation>
@@ -5147,7 +5147,6 @@
 <translation id="5623842676595125836">Log</translation>
 <translation id="5624120631404540903">Manage passwords</translation>
 <translation id="5625225435499354052">Edit in Google Pay</translation>
-<translation id="5625631605902707678">Across devices</translation>
 <translation id="5626134646977739690">Name:</translation>
 <translation id="5627086634964711283">It also controls what page is shown when you click the Home button.</translation>
 <translation id="5627676517703583263">Browse smart with Chrome</translation>
@@ -5259,7 +5258,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{This data or your device doesn’t meet some of your organisation’s security policies. Check with your admin on what needs to be fixed.}=1{This file or your device doesn’t meet some of your organisation’s security policies. Check with your admin on what needs to be fixed.}other{These files don't meet some of your organisation’s security policies. Check with your admin on what needs to be fixed.}}</translation>
 <translation id="5736796278325406685">Please enter a valid username</translation>
 <translation id="5738093759615225354">You need this passkey to sign in to your computer</translation>
-<translation id="5738329404678738022">Store your bookmarks and more with Sync</translation>
 <translation id="5739017626473506901">Sign in to help <ph name="USER_NAME" /> add a school account</translation>
 <translation id="5739235828260127894">Waiting for verification. <ph name="LINK_BEGIN" />Find out more<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Very large</translation>
@@ -5281,7 +5279,6 @@
 <translation id="5757375109985023827">Select a tab to preview</translation>
 <translation id="5758631781033351321">You'll find your reading list here</translation>
 <translation id="5759728514498647443">Documents that you send to print via <ph name="APP_NAME" /> can be read by <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Sign in for more benefits</translation>
 <translation id="5762787084360227629">Enter Google Account info</translation>
 <translation id="5763751966069581670">No USB devices found</translation>
 <translation id="5764483294734785780">Sa&amp;ve audio as...</translation>
@@ -7826,7 +7823,6 @@
 <translation id="8059417245945632445">&amp;Inspect devices</translation>
 <translation id="8059456211585183827">There are no printers available to save.</translation>
 <translation id="8061091456562007989">Change it back</translation>
-<translation id="8061965471006133016">Extra protection to your passwords and more</translation>
 <translation id="8061970399284390013">Spelling and grammar check</translation>
 <translation id="8061991877177392872">It looks as though you've already set up Voice Match with your Assistant on another device. These previous recordings were used to make a voice model on this device.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 sheet of paper}other{{COUNT} sheets of paper}}</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 1b1f935..cae40bff 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -377,6 +377,7 @@
 <translation id="1339009753652684748">Di "Hey Google" para acceder a tu Asistente. Para ahorrar batería, elige "Activado (recomendado)". Tu Asistente responderá únicamente cuando el dispositivo esté conectado a una fuente de energía o se esté cargando.</translation>
 <translation id="13392265090583506">Accesibilidad</translation>
 <translation id="1340527397989195812">Realizar una copia de seguridad del contenido multimedia desde el dispositivo mediante la aplicación Archivos</translation>
+<translation id="1341701348342335220">¡Bien hecho!</translation>
 <translation id="1341871421050612057">No se puede sincronizar con <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Concédeles a las apps de Linux acceso a dispositivos USB. Linux no recuerda los dispositivos USB después de quitarlos.</translation>
 <translation id="1343920184519992513">Continuar la sesión desde donde la dejaste y abrir un conjunto específico de páginas</translation>
@@ -3621,6 +3622,7 @@
 <translation id="4232375817808480934">Configurar Kerberos</translation>
 <translation id="4235965441080806197">Cancelar acceso</translation>
 <translation id="4236163961381003811">Descubrir más extensiones</translation>
+<translation id="4237282663517880406">Mostrar sugerencias de Google Drive</translation>
 <translation id="4241182343707213132">Reinicia para actualizar las apps de tu organización</translation>
 <translation id="4242145785130247982">No se admiten Certificados de cliente múltiples.</translation>
 <translation id="4242533952199664413">Abrir la configuración</translation>
@@ -4436,7 +4438,6 @@
 <translation id="4977942889532008999">Confirmar acceso</translation>
 <translation id="4980805016576257426">Esta extensión contiene software malicioso.</translation>
 <translation id="4981449534399733132">Para borrar los datos de navegación de todos los dispositivos sincronizados y de tu Cuenta de Google, <ph name="BEGIN_LINK" />accede a ella<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Continúa desde donde te detuviste en cualquier dispositivo</translation>
 <translation id="4986706507552097681">En la configuración, puedes elegir los datos para sincronizar en cualquier momento. Es posible que Google personalice la Búsqueda y otros servicios en función de tu Historial.</translation>
 <translation id="4986728572522335985">Esta acción borrará todos los datos de la llave de seguridad, incluido su PIN</translation>
 <translation id="4988526792673242964">Páginas</translation>
@@ -4553,7 +4554,6 @@
 <translation id="5097349930204431044">Los sitios que visitas pueden determinar lo que te gusta y, luego, sugerir anuncios a medida que navegues</translation>
 <translation id="5097649414558628673">Herramienta: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Hacer clic automáticamente cuando se detiene el cursor</translation>
-<translation id="5101683448725092498">Crea una copia de seguridad de tu contenido</translation>
 <translation id="5101839224773798795">Hacer clic automáticamente cuando se detenga el cursor</translation>
 <translation id="5106350808162641062">Quitar</translation>
 <translation id="510695978163689362">Family Link supervisa la cuenta <ph name="USER_EMAIL" />. Puedes agregar cuentas de instituciones educativas para acceder a los recursos escolares con supervisión parental.</translation>
@@ -5119,7 +5119,6 @@
 <translation id="5623842676595125836">Registro</translation>
 <translation id="5624120631404540903">Administrar contraseñas</translation>
 <translation id="5625225435499354052">Editar en Google Pay</translation>
-<translation id="5625631605902707678">En distintos dispositivos</translation>
 <translation id="5626134646977739690">Nombre:</translation>
 <translation id="5627086634964711283">También controla qué página se muestra al hacer clic en el botón de página principal.</translation>
 <translation id="5627676517703583263">Navega de forma inteligente con Chrome</translation>
@@ -5231,7 +5230,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Estos datos o tu dispositivo no cumplen con algunas de las políticas de seguridad de tu organización. Consulta con el administrador qué tienes que corregir.}=1{Este archivo o tu dispositivo no cumplen con algunas de las políticas de seguridad de tu organización. Consulta con el administrador qué tienes que corregir.}other{Estos archivos no cumplen con algunas de las políticas de seguridad de tu organización. Consulta con el administrador qué tienes que corregir.}}</translation>
 <translation id="5736796278325406685">Ingresa un nombre de usuario válido</translation>
 <translation id="5738093759615225354">Necesitas esta clave de acceso para acceder a tu computadora</translation>
-<translation id="5738329404678738022">Almacena tus favoritos y mucho más con la sincronización</translation>
 <translation id="5739017626473506901">Accede para ayudar a <ph name="USER_NAME" /> a agregar una cuenta de una institución educativa</translation>
 <translation id="5739235828260127894">La verificación está pendiente. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Muy grande</translation>
@@ -5253,7 +5251,6 @@
 <translation id="5757375109985023827">Selecciona una pestaña para obtener una vista previa.</translation>
 <translation id="5758631781033351321">Aquí encontrarás tu lista de lectura</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> podrá leer los documentos que envíes a imprimir a través de <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Accede para obtener más beneficios</translation>
 <translation id="5762787084360227629">Ingresar la información de la Cuenta de Google</translation>
 <translation id="5763751966069581670">No se encuentraron dispositivos USB</translation>
 <translation id="5764483294734785780">Guardar audio como...</translation>
@@ -7792,7 +7789,6 @@
 <translation id="8059417245945632445">&amp;Inspeccionar dispositivos</translation>
 <translation id="8059456211585183827">No hay impresoras disponibles para guardar.</translation>
 <translation id="8061091456562007989">Deshacer el cambio</translation>
-<translation id="8061965471006133016">Protección adicional para tus contraseñas y mucho más</translation>
 <translation id="8061970399284390013">Verificación de ortografía y gramática</translation>
 <translation id="8061991877177392872">Parece que ya configuraste Voice Match con tu Asistente en otro dispositivo. Se usaron las grabaciones anteriores para crear un modelo de voz en este dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 hoja de papel}other{{COUNT} hojas de papel}}</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index d645e53..5a8c7e3 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -4441,7 +4441,6 @@
 <translation id="4977942889532008999">Confirmar acceso</translation>
 <translation id="4980805016576257426">Esta extensión contiene malware.</translation>
 <translation id="4981449534399733132">Para borrar los datos de navegación de todos los dispositivos sincronizados y de tu cuenta de Google, <ph name="BEGIN_LINK" />inicia sesión<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Sigue por donde lo dejaste en cualquier dispositivo</translation>
 <translation id="4986706507552097681">Siempre puedes seleccionar qué contenido quieres sincronizar en los ajustes. Google puede personalizar la Búsqueda y otros servicios en función de tu historial.</translation>
 <translation id="4986728572522335985">Esta acción borrará todos los datos de la llave de seguridad, incluido el PIN</translation>
 <translation id="4988526792673242964">Páginas</translation>
@@ -4558,7 +4557,6 @@
 <translation id="5097349930204431044">Los sitios que visitas pueden determinar qué te gusta y sugerirte anuncios mientras sigues navegando</translation>
 <translation id="5097649414558628673">Herramienta: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Hacer clic automáticamente cuando se detenga el cursor</translation>
-<translation id="5101683448725092498">Crea una copia de seguridad de tus cosas</translation>
 <translation id="5101839224773798795">Hacer clic automáticamente cuando se detenga el cursor</translation>
 <translation id="5106350808162641062">Quitar</translation>
 <translation id="510695978163689362">Family Link supervisa <ph name="USER_EMAIL" />. Puedes añadir cuentas de centro educativo para acceder a los recursos del centro con supervisión parental.</translation>
@@ -5124,7 +5122,6 @@
 <translation id="5623842676595125836">Registro</translation>
 <translation id="5624120631404540903">Gestionar contraseñas</translation>
 <translation id="5625225435499354052">Editar en Google Pay</translation>
-<translation id="5625631605902707678">En varios dispositivos</translation>
 <translation id="5626134646977739690">Nombre:</translation>
 <translation id="5627086634964711283">También controla qué página se muestra al hacer clic en el botón de página principal.</translation>
 <translation id="5627676517703583263">Navega de forma inteligente con Chrome</translation>
@@ -5236,7 +5233,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Estos datos o tu dispositivo no cumplen algunas de las políticas de seguridad de tu organización. Consulta con tu administrador qué debes corregir.}=1{Este archivo o tu dispositivo no cumplen algunas de las políticas de seguridad de tu organización. Consulta con tu administrador qué debes corregir.}other{Estos archivos no cumplen algunas de las políticas de seguridad de tu organización. Consulta con tu administrador qué debes corregir.}}</translation>
 <translation id="5736796278325406685">Introduce un nombre de usuario válido</translation>
 <translation id="5738093759615225354">Necesitas esta llave de acceso para iniciar sesión en tu ordenador</translation>
-<translation id="5738329404678738022">Almacena tus marcadores y más con la sincronización</translation>
 <translation id="5739017626473506901">Inicia sesión para ayudar a <ph name="USER_NAME" /> a añadir una cuenta de centro educativo</translation>
 <translation id="5739235828260127894">Esperando verificación. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" />.</translation>
 <translation id="5739458112391494395">Muy grande</translation>
@@ -5258,7 +5254,6 @@
 <translation id="5757375109985023827">Selecciona una pestaña para previsualizarla</translation>
 <translation id="5758631781033351321">Aquí verás tu lista de lectura</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> puede leer los documentos que envías para imprimirse a través de <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Inicia sesión para obtener más ventajas</translation>
 <translation id="5762787084360227629">Introducir información de la cuenta de Google</translation>
 <translation id="5763751966069581670">No se ha encontrado ningún dispositivo USB</translation>
 <translation id="5764483294734785780">G&amp;uardar audio como...</translation>
@@ -7797,7 +7792,6 @@
 <translation id="8059417245945632445">&amp;Inspeccionar dispositivos</translation>
 <translation id="8059456211585183827">No hay ninguna impresora disponible que guardar.</translation>
 <translation id="8061091456562007989">Deshacer cambio</translation>
-<translation id="8061965471006133016">Protección adicional para tus contraseñas y más</translation>
 <translation id="8061970399284390013">Revisar ortografía y gramática</translation>
 <translation id="8061991877177392872">Parece que ya has configurado Voice Match con el Asistente en otro dispositivo. Las grabaciones anteriores se han utilizado para crear un modelo de voz en este dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 hoja de papel}other{{COUNT} hojas de papel}}</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 7e5e91e5..0bd4f30 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hüperteksti edastusprotokoll (HTTPS)</translation>
 <translation id="1059944192885972544">Päringule „<ph name="SEARCH_TEXT" />” leiti <ph name="NUM" /> vahelehte</translation>
 <translation id="1060292118287751956">Määrab ekraanikuva värskendamissageduse</translation>
+<translation id="1060570945511946595">Halda pileteid</translation>
 <translation id="1061130374843955397">Tere tulemast seadmesse <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Selle lingi jaoks QR-koodi loomine</translation>
 <translation id="1061904396131502319">Pausiaeg on peagi käes</translation>
@@ -379,6 +380,7 @@
 <translation id="1339009753652684748">Pääsete oma assistendile juurde, öeldes lihtsalt „Ok Google”. Aku säästmiseks tehke valik „Sees (soovitatav)”. Teie assistent vastab ainult siis, kui seade on ühendatud vooluvõrku või seda laetakse.</translation>
 <translation id="13392265090583506">A11y</translation>
 <translation id="1340527397989195812">Seadme meediumi varundamine rakendusega Failid.</translation>
+<translation id="1341701348342335220">Hästi tehtud!</translation>
 <translation id="1341871421050612057">Ei saa kasutajaga <ph name="USERNAME" /> sünkroonida</translation>
 <translation id="1343865611738742294">Andke Linuxi rakendustele luba USB-seadmetele juurde pääseda. Linux ei mäleta USB-seadet pärast selle eemaldamist.</translation>
 <translation id="1343920184519992513">Jätka sealt, kus pooleli jäin, ja ava konkreetne lehtede kogum</translation>
@@ -1116,6 +1118,7 @@
 <translation id="1975841812214822307">Eemalda ...</translation>
 <translation id="1976150099241323601">Turvaseadmesse sisselogimine</translation>
 <translation id="1977965994116744507">Seadme <ph name="DEVICE_TYPE" /> avamiseks tooge oma telefon lähemale.</translation>
+<translation id="1978666928180318515">Bruschetta eemaldamine</translation>
 <translation id="1979095679518582070">Kui lülitate selle funktsiooni välja, saab seade endiselt saata oluliste teenuste (nagu süsteemivärskendused ja turvalisus) kasutamiseks vajalikku teavet.</translation>
 <translation id="1979280758666859181">Lülitute teenuse <ph name="PRODUCT_NAME" /> vanema versiooniga kanalile. Kanalivahetus rakendub, kui kanali versioon kattub teie seadmesse parajasti installitud versiooniga.</translation>
 <translation id="197989455406964291">KDC ei toeta krüpteerimistüüpi</translation>
@@ -1922,6 +1925,7 @@
 <translation id="2672142220933875349">Vigane crx-fail, lahtipakkimine nurjus.</translation>
 <translation id="2673135533890720193">Sirvimisajaloo lugemine</translation>
 <translation id="2674764818721168631">Väljas</translation>
+<translation id="2675570801872027281">Bruschetta eemaldamisel ilmnes viga. Proovige uuesti.</translation>
 <translation id="2676492189600898281">Automaattäite kohta tagasiside saatmine</translation>
 <translation id="2678063897982469759">Luba uuesti</translation>
 <translation id="2678100101831051676">Ei saa üle kanda.</translation>
@@ -2920,6 +2924,7 @@
 <translation id="3593965109698325041">Sertifikaadi nimepiirangud</translation>
 <translation id="3596012367874587041">Rakenduse seaded</translation>
 <translation id="3596414637720633074">Blokeeri kolmanda osapoole küpsisefailid inkognito režiimis</translation>
+<translation id="3598010454707842106">Klõpsake nupul „Chrome'i kohandamine”</translation>
 <translation id="3599221874935822507">Tõstetud</translation>
 <translation id="3600051066689725006">Veebitaotluse teave</translation>
 <translation id="360180734785106144">Pakkuda uusi funktsioone, kui need kättesaadavaks muutuvad</translation>
@@ -3630,6 +3635,7 @@
 <translation id="4232375817808480934">Kerberose seadistamine</translation>
 <translation id="4235965441080806197">Tühista sisselogimine</translation>
 <translation id="4236163961381003811">Avastage rohkem laiendusi</translation>
+<translation id="4237282663517880406">Kuva Google Drive’i soovitused</translation>
 <translation id="4241182343707213132">Organisatsiooni rakenduste värskendamiseks taaskäivitage</translation>
 <translation id="4242145785130247982">Mitme kliendisertifikaadi kasutamist ei toetata</translation>
 <translation id="4242533952199664413">Ava seaded</translation>
@@ -3916,6 +3922,7 @@
 <translation id="4495419450179050807">Ära sellel lehel kuva</translation>
 <translation id="4497145443434063861">Arvuti ja Chromecast on erinevates WiFi-võrkudes (nt 2,4 GHz vs. 5 GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> jooksis kokku</translation>
+<translation id="4500647907053779331">Tõlgi valik <ph name="LANGUAGE" /> keelde</translation>
 <translation id="450099669180426158">Hüüumärgi ikoon</translation>
 <translation id="4501530680793980440">Eemaldamise kinnitamine</translation>
 <translation id="4502423230170890588">Eemalda sellest seadmest</translation>
@@ -4445,7 +4452,6 @@
 <translation id="4977942889532008999">Juurdepääsu kinnitamine</translation>
 <translation id="4980805016576257426">Laiendus sisaldab pahavara.</translation>
 <translation id="4981449534399733132">Sirvimisandmete kustutamiseks kõigist sünkroonitud seadmetest ja oma Google'i kontolt <ph name="BEGIN_LINK" />logige sisse<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Jätkake pooleliolevat tegevust mis tahes seadmes</translation>
 <translation id="4986706507552097681">Jaotises Seaded saate igal ajal valida, mida sünkroonida. Google võib Otsingut ja muid teenuseid teie ajaloo alusel isikupärastada.</translation>
 <translation id="4986728572522335985">See kustutab kõik turvavõtmel olevad andmed, sh selle PIN-koodi</translation>
 <translation id="4988526792673242964">Leheküljed</translation>
@@ -4562,7 +4568,6 @@
 <translation id="5097349930204431044">Teie külastatavad saidid saavad tuvastada, mis teile meeldib, ja siis sirvimise jätkamisel reklaame soovitada</translation>
 <translation id="5097649414558628673">Tööriist: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automaatne klikk kursori peatumisel</translation>
-<translation id="5101683448725092498">Varundage oma sisu</translation>
 <translation id="5101839224773798795">Automaatne klõpsamine kursori peatumisel</translation>
 <translation id="5106350808162641062">Eemalda</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> on Family Linki järelevalve all. Vanemliku järelevalve all saad lisada kooli kontosid, et pääseda juurde kooli ressurssidele.</translation>
@@ -5128,7 +5133,6 @@
 <translation id="5623842676595125836">Logi</translation>
 <translation id="5624120631404540903">Paroolide haldamine</translation>
 <translation id="5625225435499354052">Muuda teenuses Google Pay</translation>
-<translation id="5625631605902707678">Kõigis seadmetes</translation>
 <translation id="5626134646977739690">Nimi:</translation>
 <translation id="5627086634964711283">Lisaks juhib see seda, mis lehte kuvatakse avalehe nupul klõpsamisel.</translation>
 <translation id="5627676517703583263">Chrome'iga sirvite nutikalt</translation>
@@ -5240,7 +5244,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Need andmed või teie seade ei vasta teie organisatsiooni teatud turvareeglitele. Pöörduge administraatori poole, et teada saada, mida on vaja parandada.}=1{See fail või teie seade ei vasta teie organisatsiooni teatud turvareeglitele. Pöörduge administraatori poole, et teada saada, mida on vaja parandada.}other{Need failid ei vasta teie organisatsiooni teatud turvareeglitele. Pöörduge administraatori poole, et teada saada, mida on vaja parandada.}}</translation>
 <translation id="5736796278325406685">Sisestage kehtiv kasutajanimi</translation>
 <translation id="5738093759615225354">Vajate seda pääsuvõtit oma arvutisse sisselogimiseks</translation>
-<translation id="5738329404678738022">Salvestage sünkroonimise abil oma järjehoidjad ja muu</translation>
 <translation id="5739017626473506901">Logige sisse, et aidata kasutajal <ph name="USER_NAME" /> lisada koolikonto</translation>
 <translation id="5739235828260127894">Kinnitamise ootel. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Väga suur</translation>
@@ -5262,7 +5265,6 @@
 <translation id="5757375109985023827">Valige eelvaateks vaheleht</translation>
 <translation id="5758631781033351321">Oma lugemisloendi leiate siit</translation>
 <translation id="5759728514498647443">Rakenduse <ph name="APP_NAME" /> kaudu printimiseks saadetud dokumente saab lugeda rakenduse <ph name="APP_NAME" /> järgi.</translation>
-<translation id="5760508342220592715">Logige sisse, et saada rohkem hüvesid</translation>
 <translation id="5762787084360227629">Sisestage Google'i kontoteave</translation>
 <translation id="5763751966069581670">USB-seadmeid ei leitud</translation>
 <translation id="5764483294734785780">Sa&amp;lvesta heli nimega ...</translation>
@@ -5733,6 +5735,7 @@
 <translation id="617213288191670920">Ühtegi keelt pole lisatud</translation>
 <translation id="6173623053897475761">Sisestage PIN-kood uuesti</translation>
 <translation id="6175314957787328458">Microsofti domeeni GUID</translation>
+<translation id="6177412385419165772">Eemaldamine ...</translation>
 <translation id="6178664161104547336">Sertifikaadi valimine</translation>
 <translation id="6178682841350631965">Teie sisselogimisandmeid värskendati</translation>
 <translation id="6180510783007738939">Joonetööriist</translation>
@@ -6209,6 +6212,7 @@
 <translation id="6619801788773578757">Kioskirakenduse lisamine</translation>
 <translation id="6619990499523117484">Kinnitage PIN-kood</translation>
 <translation id="6620254580880484313">Konteineri nimi</translation>
+<translation id="6620927550847360014">Kas soovite Bruschetta seadmest <ph name="DEVICE_TYPE" /> eemaldada?</translation>
 <translation id="6621391692573306628">Selle vahelehe saatmiseks teise seadmesse logige mõlemas seadmes Chrome'i sisse</translation>
 <translation id="6622980291894852883">Jätka piltide blokeerimist</translation>
 <translation id="6624036901798307345">Puudutage tahvelarvuti režiimis vahelehtede loenduri tööriistariba nuppu, et avada uus vahelehtede riba, mis näitab iga vahelehe pisipilte.</translation>
@@ -6426,6 +6430,7 @@
 <translation id="6818547713623251698">Teie telefoni fotode, meedia, märguannete ja rakenduste vaatamine</translation>
 <translation id="6818802132960437751">Sisseehitatud viirusetõrje</translation>
 <translation id="6818920801736417483">Kas salvestada paroolid?</translation>
+<translation id="6820079682647046800">Kerberose autentimine ebaõnnestus</translation>
 <translation id="6823174134746916417">Puuteplaadil klõpsamiseks puudutamine</translation>
 <translation id="6824564591481349393">Kopeeri &amp;e-posti aadress</translation>
 <translation id="6824584962142919697">&amp;Elementide uurimine</translation>
@@ -6580,6 +6585,7 @@
 <translation id="6955698182324067397">Soovite lubada Chrome OS-i silumisfunktsioonid, mis seadistavad üksuse sshd daemon ja lubavad käivitamise USB-kettalt.</translation>
 <translation id="6955893174999506273">Määrake veel üks lüliti</translation>
 <translation id="6957044667612803194">See turvavõti ei toeta PIN-koode</translation>
+<translation id="6960133692707095572">Külasta ilma piletita</translation>
 <translation id="6960507406838246615">Linuxit on vaja värskendada</translation>
 <translation id="6960648667961844909">Kõnefaile <ph name="LANGUAGE" /> keeles ei õnnestunud alla laadida. Hiljem üritatakse uuesti alla laadida. Kõne saadetakse Google'ile töötlemiseks, kui allalaadimine on lõpetatud.</translation>
 <translation id="696103774840402661">Kõigi seadmes <ph name="DEVICE_TYPE" /> olevate kasutajate kõik failid ja kohalikud andmed on jäädavalt kustutatud.</translation>
@@ -7801,7 +7807,6 @@
 <translation id="8059417245945632445">&amp;Seadmete kontrollimine</translation>
 <translation id="8059456211585183827">Salvestamiseks pole saadaval ühtegi printerit.</translation>
 <translation id="8061091456562007989">Taasta</translation>
-<translation id="8061965471006133016">Lisakaitse teie paroolidele ja muule</translation>
 <translation id="8061970399284390013">Õigekirja- ja grammatikakontroll</translation>
 <translation id="8061991877177392872">Näib, et olete Voice Matchi oma assistendiga muus seadmes juba seadistanud. Neid varasemaid salvestisi kasutati häälemudeli loomiseks selles seadmes.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 paberileht}other{{COUNT} paberilehte}}</translation>
@@ -8042,6 +8047,7 @@
 <translation id="8272443605911821513">Hallake oma laiendusi, klõpsates menüüs „Rohkem tööriistu” valikul Laiendused.</translation>
 <translation id="8272786333453048167">Luba uuesti</translation>
 <translation id="8273905181216423293">Laadi kohe alla</translation>
+<translation id="827488840488530039">Lehel, mida proovite külastada, ei õnnestunud teie Kerberose pileteid kinnitada</translation>
 <translation id="8274921654076766238">Luup järgib klaviatuuri fookust</translation>
 <translation id="8274924778568117936">Ärge lülitage välja ega sulgege oma seadet <ph name="DEVICE_TYPE" />, kuni värskendus lõpule viiakse. Seade <ph name="DEVICE_TYPE" /> taaskäivitatakse pärast installimise lõpetamist.</translation>
 <translation id="8275038454117074363">Impordi</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index fc4898b7..2ebc8d4c 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -4441,7 +4441,6 @@
 <translation id="4977942889532008999">Berretsi sarbidea</translation>
 <translation id="4980805016576257426">Luzapenak malwarea dauka.</translation>
 <translation id="4981449534399733132">Sinkronizatutako gailu guztietako eta zure Google-ko kontuko arakatze-datuak garbitzeko, <ph name="BEGIN_LINK" />hasi saioa<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Berrekin partidari utzitako tokitik edozein gailu erabilita</translation>
 <translation id="4986706507552097681">Zer sinkronizatu nahi duzun aukeratzeko, joan Ezarpenak atalera. Baliteke Google-k Bilaketa eta beste zerbitzu batzuk pertsonalizatzea zure historiaren arabera.</translation>
 <translation id="4986728572522335985">Segurtasun-giltzako datu guztiak ezabatuko dira, baita PINa ere</translation>
 <translation id="4988526792673242964">Orriak</translation>
@@ -4558,7 +4557,6 @@
 <translation id="5097349930204431044">Bisitatzen dituzun webguneek zer gustatzen zaizun zehatz dezakete, eta, arakatzen jarraitzen duzunean, iragarkiak iradoki</translation>
 <translation id="5097649414558628673">Tresna: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Sakatu automatikoki kurtsorea gelditzen denean</translation>
-<translation id="5101683448725092498">Egin zure gauzen babeskopiak</translation>
 <translation id="5101839224773798795">Egin klik automatikoki kurtsorea gelditzen denean</translation>
 <translation id="5106350808162641062">Kendu</translation>
 <translation id="510695978163689362">Family Link-ek kudeatzen du <ph name="USER_EMAIL" />. Ikastetxeko kontuak gehi ditzakezu gurasoen gainbegiratzea duten ikastetxeko baliabideak atzitzeko.</translation>
@@ -5122,7 +5120,6 @@
 <translation id="5623842676595125836">Erregistroa</translation>
 <translation id="5624120631404540903">Kudeatu pasahitzak</translation>
 <translation id="5625225435499354052">Editatu Google Pay-n</translation>
-<translation id="5625631605902707678">Gailu guztietan</translation>
 <translation id="5626134646977739690">Izena:</translation>
 <translation id="5627086634964711283">Omnibox-eko Hasiera botoia sakatzean erakusten den orria ere kontrolatzen du.</translation>
 <translation id="5627676517703583263">Arakatu sarea modu adimendunean Chrome-rekin</translation>
@@ -5234,7 +5231,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Datuek edo gailuak ez dituzte gordetzen erakundearen segurtasun-gidalerro batzuk. Galdetu administratzaileari ea zer konpondu behar den.}=1{Fitxategiak edo gailuak ez ditu gordetzen erakundearen segurtasun-gidalerro batzuk. Galdetu administratzaileari ea zer konpondu behar den.}other{Fitxategiek ez dituzte gordetzen erakundearen segurtasun-gidalerro batzuk. Galdetu administratzaileari ea zer konpondu behar den.}}</translation>
 <translation id="5736796278325406685">Idatzi balio duen erabiltzaile-izen bat</translation>
 <translation id="5738093759615225354">Sarbide-gako hau behar duzu ordenagailuan saioa hasteko</translation>
-<translation id="5738329404678738022">Gorde laster-markak eta beste gauza asko sinkronizazioa erabilita</translation>
 <translation id="5739017626473506901">Hasi saioa <ph name="USER_NAME" /> erabiltzaileak ikastetxeko kontua gehi dezan</translation>
 <translation id="5739235828260127894">Egiaztapenaren zain. <ph name="LINK_BEGIN" />Lortu informazio gehiago<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Oso handia</translation>
@@ -5256,7 +5252,6 @@
 <translation id="5757375109985023827">Hautatu fitxa bat haren aurrebista ikusteko</translation>
 <translation id="5758631781033351321">Irakurketa-zerrenda aurkituko duzu hemen</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> aplikazioaren bidez inprimatzera bidaltzen dituzun dokumentuak <ph name="APP_NAME" /> aplikazioak irakur ditzake.</translation>
-<translation id="5760508342220592715">Hasi saioa abantaila gehiago lortzeko</translation>
 <translation id="5762787084360227629">Idatzi Google-ko kontuari buruzko informazioa</translation>
 <translation id="5763751966069581670">Ez da aurkitu USB bidezko gailurik</translation>
 <translation id="5764483294734785780">Go&amp;rde audioa honela…</translation>
@@ -7793,7 +7788,6 @@
 <translation id="8059417245945632445">&amp;Aztertu gailuak</translation>
 <translation id="8059456211585183827">Ez dago inprimagailurik gordetzeko.</translation>
 <translation id="8061091456562007989">Leheneratu</translation>
-<translation id="8061965471006133016">Pasahitzetarako eta beste gauza batzuetarako babes gehigarria</translation>
 <translation id="8061970399284390013">Ortografia- eta gramatika-zuzentzailea</translation>
 <translation id="8061991877177392872">Voice Match konfiguratuta daukazu beste gailu batean Laguntzailea zerbitzuaren bidez. Lehendik zeneuzkan grabaketa horiekin ahots-eredu bat sortu da gailu honetan.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 orri}other{{COUNT} orri}}</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 49aa1c5..645963d 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">‏پروتکل انتقال ابرمتن (HTTPS)</translation>
 <translation id="1059944192885972544"><ph name="NUM" /> برگه برای «<ph name="SEARCH_TEXT" />» پیدا شد</translation>
 <translation id="1060292118287751956">بسامد به‌روزرسانی‌های صفحه‌نمایش را مشخص می‌کند</translation>
+<translation id="1060570945511946595">مدیریت بلیت‌ها</translation>
 <translation id="1061130374843955397">به <ph name="DEVICE_TYPE" /> خودتان خوش آمدید</translation>
 <translation id="1061373870045429865">ایجاد رمزینه پاسخ‌سریع برای این پیوند</translation>
 <translation id="1061904396131502319">تقریباً زمان استراحت است</translation>
@@ -1123,6 +1124,7 @@
 <translation id="1975841812214822307">حذف...</translation>
 <translation id="1976150099241323601">ورود به سیستم دستگاه امنیتی</translation>
 <translation id="1977965994116744507">برای باز کردن قفل <ph name="DEVICE_TYPE" />، تلفنتان را نزدیک‌تر کنید.</translation>
+<translation id="1978666928180318515">‏برداشتن Bruschetta</translation>
 <translation id="1979095679518582070">خاموش کردن این ویژگی توانایی این دستگاه را برای ارسال اطلاعات موردنیاز برای سرویس‌های ضروری، مانند امنیت و به‌روزرسانی‌های سیستم تحت‌تأثیر قرار نمی‌دهد.</translation>
 <translation id="1979280758666859181">شما در حال تغییر کانال به نسخه قدیمی‌تر <ph name="PRODUCT_NAME" /> هستید. تغییر کانال زمانی اعمال می‌شود که نسخه کانال با نسخه فعلی نصب شده در دستگاه یکسان باشد.</translation>
 <translation id="197989455406964291">‏KDC از نوع رمزگذاری پشتیبانی نمی‌کند</translation>
@@ -1929,6 +1931,7 @@
 <translation id="2672142220933875349">‏فایل crx نادرست، باز کردن بسته انجام نشد.</translation>
 <translation id="2673135533890720193">خواندن سابقه مرور شما</translation>
 <translation id="2674764818721168631">خاموش</translation>
+<translation id="2675570801872027281">‏خطایی هنگام برداشتن Bruschetta روی داد. لطفاً دوباره امتحان کنید.</translation>
 <translation id="2676492189600898281">ارائه بازخورد درباره «تکمیل خودکار»</translation>
 <translation id="2678063897982469759">فعال کردن مجدد</translation>
 <translation id="2678100101831051676">پخش محتوا امکان‌پذیر نیست.</translation>
@@ -2927,6 +2930,7 @@
 <translation id="3593965109698325041">محدودیتهای نام گواهی</translation>
 <translation id="3596012367874587041">تنظیمات برنامه</translation>
 <translation id="3596414637720633074">مسدود کردن کوکی‌های شخص ثالث در «حالت ناشناس»</translation>
+<translation id="3598010454707842106">‏روی «سفارشی کردن Chrome» کلیک کنید</translation>
 <translation id="3599221874935822507">برجسته</translation>
 <translation id="3600051066689725006">اطلاعات درخواست وب</translation>
 <translation id="360180734785106144">پیشنهاد ویژگی‌های جدید به‌محض دردسترس قرار گرفتن</translation>
@@ -3925,6 +3929,7 @@
 <translation id="4497145443434063861">‏رایانه شخصی و Chromecast در شبکه‌های مختلف Wi-Fi (مثلاً ۲٫۴ گیگاهرتز
     در مقابل ۵ گیگاهرتز)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> خراب شده است</translation>
+<translation id="4500647907053779331">ترجمه ناحیه انتخاب‌شده به <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">نماد علامت تعجب</translation>
 <translation id="4501530680793980440">تأیید حذف</translation>
 <translation id="4502423230170890588">حذف از این دستگاه</translation>
@@ -4454,7 +4459,6 @@
 <translation id="4977942889532008999">تأیید دسترسی</translation>
 <translation id="4980805016576257426">این افزونه بدافزار دارد.</translation>
 <translation id="4981449534399733132">‏برای اینکه داده‌های محصول مرور را از همه دستگاه‌های همگام‌سازی‌شده و حساب Google خود پاک کنید، <ph name="BEGIN_LINK" />به سیستم وارد شوید<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">در هر دستگاهی کار را از جایی که متوقف کرده‌اید ادامه دهید</translation>
 <translation id="4986706507552097681">‏هرزمان بخواهید می‌توانید موارد مدنظرتان را برای همگام‌سازی در تنظیمات انتخاب کنید. Google ممکن است «جستجو» و سرویس‌های دیگر را براساس سابقه‌تان شخصی‌سازی کند.</translation>
 <translation id="4986728572522335985">با این کار، همه داده‌های موجود در کلید امنیتی، ازجمله پین آن، پاک می‌شود</translation>
 <translation id="4988526792673242964">صفحات</translation>
@@ -4571,7 +4575,6 @@
 <translation id="5097349930204431044">سایت‌هایی که بازدید می‌کنید می‌توانند تعیین کنند که چه چیزی را دوست دارید و سپس در ادامه مرور شما، آگهی‌هایی را به شما پیشنهاد دهند</translation>
 <translation id="5097649414558628673">ابزار: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">کلیک کردن خودکار هنگام متوقف شدن نشانگر</translation>
-<translation id="5101683448725092498">از محتوایتان پشتیبان بگیرید</translation>
 <translation id="5101839224773798795">کلیک خودکار با توقف مرورگر</translation>
 <translation id="5106350808162641062">برداشتن</translation>
 <translation id="510695978163689362">‏<ph name="USER_EMAIL" /> تحت نظارت Family Link است. برای دسترسی به منابع مدرسه با نظارت والدین، می‌توانید حساب‌های محل تحصیل اضافه کنید.</translation>
@@ -5137,7 +5140,6 @@
 <translation id="5623842676595125836">گزارش</translation>
 <translation id="5624120631404540903">مدیریت گذرواژه‌ها</translation>
 <translation id="5625225435499354052">‏ویرایش در Google Pay</translation>
-<translation id="5625631605902707678">در بین دستگاه‌ها</translation>
 <translation id="5626134646977739690">نام:</translation>
 <translation id="5627086634964711283">این برنامه افزودنی همچنین صفحه‌ای را که هنگام کلیک کردن روی دکمه اصلی نشان داده می‌شود، کنترل می‌کند.</translation>
 <translation id="5627676517703583263">‏با Chrome هوشمندانه مرور کنید</translation>
@@ -5249,7 +5251,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{این داده یا دستگاه شما برخی‌از خط‌مشی‌های امنیتی سازمانتان را رعایت نمی‌کند. مواردی را که باید برطرف شود از سرپرست خود بپرسید.}=1{این فایل یا دستگاه شما برخی‌از خط‌مشی‌های امنیتی سازمانتان را رعایت نمی‌کند. مواردی را که باید برطرف شود از سرپرست خود بپرسید.}one{این فایل‌ها برخی‌از خط‌مشی‌های امنیتی سازمانتان را رعایت نمی‌کنند. مواردی را که باید برطرف شود از سرپرست خود بپرسید.}other{این فایل‌ها برخی‌از خط‌مشی‌های امنیتی سازمانتان را رعایت نمی‌کنند. مواردی را که باید برطرف شود از سرپرست خود بپرسید.}}</translation>
 <translation id="5736796278325406685">لطفاً نام کاربری معتبری وارد کنید.</translation>
 <translation id="5738093759615225354">برای ورود به سیستم رایانه‌تان به این گذرکلید نیاز دارید</translation>
-<translation id="5738329404678738022">با همگام‌سازی، نشانک‌ها و موارد دیگر را ذخیره کنید</translation>
 <translation id="5739017626473506901">به سیستم وارد شوید تا بتوانید به <ph name="USER_NAME" /> در افزودن حساب محل تحصیل کمک کنید</translation>
 <translation id="5739235828260127894">در انتظار تأیید. <ph name="LINK_BEGIN" />بیشتر بدانید.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">خیلی بزرگ</translation>
@@ -5271,7 +5272,6 @@
 <translation id="5757375109985023827">برگه‌ای برای پیش‌نمایش انتخاب کنید</translation>
 <translation id="5758631781033351321">فهرست مطالعه را اینجا خواهید دید</translation>
 <translation id="5759728514498647443">اسنادی که از طریق <ph name="APP_NAME" /> برای چاپ ارسال می‌کنید، می‌توانند توسط <ph name="APP_NAME" /> خوانده شوند.</translation>
-<translation id="5760508342220592715">برای مزایای بیشتر، به سیستم وارد شوید</translation>
 <translation id="5762787084360227629">‏وارد کردن اطلاعات «حساب Google»</translation>
 <translation id="5763751966069581670">‏هیچ دستگاه USB پیدا نشد</translation>
 <translation id="5764483294734785780">ذ&amp;خیره فایل صوتی به‌عنوان...</translation>
@@ -5742,6 +5742,7 @@
 <translation id="617213288191670920">زبانی اضافه نشده است</translation>
 <translation id="6173623053897475761">پین خود را دوباره تایپ کنید</translation>
 <translation id="6175314957787328458">‏GUID دامنه Microsoft</translation>
+<translation id="6177412385419165772">درحال برداشتن…</translation>
 <translation id="6178664161104547336">انتخاب گواهی</translation>
 <translation id="6178682841350631965">داده‌های ورود به سیستم به‌روزرسانی شد</translation>
 <translation id="6180510783007738939">ابزار خط</translation>
@@ -6220,6 +6221,7 @@
 <translation id="6619801788773578757">افزودن برنامه کیوسک</translation>
 <translation id="6619990499523117484">پین را تأیید کنید</translation>
 <translation id="6620254580880484313">نام محتوی</translation>
+<translation id="6620927550847360014">‏Bruschetta از <ph name="DEVICE_TYPE" /> برداشته شود؟</translation>
 <translation id="6621391692573306628">‏برای ارسال این برگه به دستگاهی دیگر، در هردو دستگاه به سیستم Chrome وارد شوید</translation>
 <translation id="6622980291894852883">ادامه مسدودکردن تصاویر</translation>
 <translation id="6624036901798307345">در حالت رایانه لوحی، روی دکمه شمارنده برگه در نوارابزار ضربه بزنید تا نوار برگه جدید که تصویر کوچک هر برگه را نشان می‌دهد باز شود.</translation>
@@ -6437,6 +6439,7 @@
 <translation id="6818547713623251698">مشاهده کردن عکس‌ها، رسانه، اعلان‌ها، و برنامه‌های تلفن شما</translation>
 <translation id="6818802132960437751">مجهز به محافظ دربرابر ویروس</translation>
 <translation id="6818920801736417483">گذرواژه‌ها ذخیره شود؟</translation>
+<translation id="6820079682647046800">‏اصالت‌سنجی Kerberos انجام نشد</translation>
 <translation id="6823174134746916417">کلیک با یک ضربه روی صفحه لمسی</translation>
 <translation id="6824564591481349393">کپی آدرس &amp;ایمیل</translation>
 <translation id="6824584962142919697">&amp;بازرسی عناصر</translation>
@@ -6591,6 +6594,7 @@
 <translation id="6955698182324067397">‏درحال فعال کردن ویژگی‌های اشکال‌زدایی ChromeOS هستید؛ با این کار، sshd daemon راه‌اندازی خواهد شد و راه‌اندازی ازطریق درایوهای USB فعال خواهد شد.</translation>
 <translation id="6955893174999506273">اختصاص دادن ۱ کلید دیگر</translation>
 <translation id="6957044667612803194">این کلید امنیتی از پین‌ها پشتیبانی نمی‌کند</translation>
+<translation id="6960133692707095572">بازدید بدون تیکت</translation>
 <translation id="6960507406838246615">‏Linux باید به‌روزرسانی شود</translation>
 <translation id="6960648667961844909">‏فایل‌های گفتار <ph name="LANGUAGE" /> بارگیری نشد. بارگیری بعداً انجام خواهد شد. تا وقتی بارگیری تمام شود، گفتار برای پردازش به Google ارسال می‌شود.</translation>
 <translation id="696103774840402661">همه فایل‌ها و داده‌های محلی برای همه کاربران این <ph name="DEVICE_TYPE" /> به‌طور دائم حذف شده‌اند.</translation>
@@ -7811,7 +7815,6 @@
 <translation id="8059417245945632445">&amp;بازرسی دستگاه‌ها</translation>
 <translation id="8059456211585183827">هیچ چاپگری برای ذخیره در دسترس نیست.</translation>
 <translation id="8061091456562007989">تغییر را لغو کنید</translation>
-<translation id="8061965471006133016">محافظت بیشتر برای گذرواژه‌ها و موارد بیشتر</translation>
 <translation id="8061970399284390013">بررسی املا و دستور زبان</translation>
 <translation id="8061991877177392872">‏به‌نظر می‌رسد ازقبل Voice Match را با «دستیار» در دستگاه دیگری راه‌اندازی کرده‌اید. از این قطعه‌های قبلاً ضبط‌شده می‌توان برای ایجاد مدل صوتی در این دستگاه استفاده کرد.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{۱ برگ کاغذ}one{{COUNT} برگ کاغذ}other{{COUNT} برگ کاغذ}}</translation>
@@ -8052,6 +8055,7 @@
 <translation id="8272443605911821513">با کلیک کردن روی افزونه‌ها در منوی «ابزارهای بیشتر»، برنامه‌های افزودنی خود را مدیریت کنید.</translation>
 <translation id="8272786333453048167">دوباره اجازه دادن</translation>
 <translation id="8273905181216423293">اکنون بارگیری شود</translation>
+<translation id="827488840488530039">‏صفحه‌ای که می‌خواهید بازدید کنید تیکت‌های Kerberos را تأیید نکرد</translation>
 <translation id="8274921654076766238">کانونی کردن صفحه‌کلید پس‌از ذره‌بین</translation>
 <translation id="8274924778568117936">تا وقتی به‌روزرسانی به پایان نرسیده است، <ph name="DEVICE_TYPE" /> را خاموش نکنید یا نبندید. بعد از کامل شدن نصب، <ph name="DEVICE_TYPE" /> راه‌اندازی مجدد می‌شود.</translation>
 <translation id="8275038454117074363">وارد کردن</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 2c46072..d3a12f4 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -379,6 +379,7 @@
 <translation id="1339009753652684748">Käytä Assistantia sanomalla "Hey Google". Jos haluat säästää virtaa, valitse Käytössä (suositus). Assistant vastaa vain, jos laite on kytketty virtalähteeseen tai laturiin.</translation>
 <translation id="13392265090583506">A11y</translation>
 <translation id="1340527397989195812">Varmuuskopioi mediatiedostot laitteelta Tiedostot-sovelluksen avulla.</translation>
+<translation id="1341701348342335220">Hyvin tehty!</translation>
 <translation id="1341871421050612057">Synkronointi ei onnistu: <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Anna Linux-sovelluksille USB-laitteiden käyttöoikeus. Linux ei muista USB-laitetta, kun se on poistettu.</translation>
 <translation id="1343920184519992513">Jatka siitä, mihin jäit, ja avaa tietyt sivut</translation>
@@ -3635,6 +3636,7 @@
 <translation id="4232375817808480934">Määritä Kerberos</translation>
 <translation id="4235965441080806197">Peru sisäänkirjautuminen</translation>
 <translation id="4236163961381003811">Tutustu muihin laajennuksiin</translation>
+<translation id="4237282663517880406">Näytä Google Drive ‐ehdotukset</translation>
 <translation id="4241182343707213132">Käynnistä uudelleen organisaation sovellusten päivitystä varten</translation>
 <translation id="4242145785130247982">Useita käyttöoikeusvarmenteita ei tueta</translation>
 <translation id="4242533952199664413">Avaa asetukset</translation>
@@ -4451,7 +4453,6 @@
 <translation id="4977942889532008999">Vahvista osoite</translation>
 <translation id="4980805016576257426">Tämä laajennus sisältää haittaohjelmia.</translation>
 <translation id="4981449534399733132">Jos haluat poistaa selailutiedot kaikilta synkronoiduilta laitteiltasi ja Google-tililtäsi, <ph name="BEGIN_LINK" />kirjaudu sisään<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Jatka millä tahansa laitteella siitä, mihin jäit</translation>
 <translation id="4986706507552097681">Voit valita synkronoitavan sisällön asetuksissa. Google voi personoida Hakua ja muita palveluita historiasi perusteella.</translation>
 <translation id="4986728572522335985">Tämä poistaa kaiken suojausavaimen datan, mukaan lukien sen PIN-koodin</translation>
 <translation id="4988526792673242964">Sivut</translation>
@@ -4568,7 +4569,6 @@
 <translation id="5097349930204431044">Avaamasi sivustot voivat päätellä, mistä pidät, ja ehdottaa mainoksia selatessasi</translation>
 <translation id="5097649414558628673">Työkalu: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Klikkaa automaattisesti, kun kohdistin pysähtyy</translation>
-<translation id="5101683448725092498">Varmuuskopioi sisältösi</translation>
 <translation id="5101839224773798795">Klikkaa automaattisesti, kun osoitin pysähtyy</translation>
 <translation id="5106350808162641062">Poista</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> on valvottu Family Linkillä. Voit lisätä koulutilejä, jotka pääsevät oppimateriaaleihin vanhemman valvonnassa.</translation>
@@ -5134,7 +5134,6 @@
 <translation id="5623842676595125836">Loki</translation>
 <translation id="5624120631404540903">Hallitse salasanoja</translation>
 <translation id="5625225435499354052">Muokkaa Google Payssa</translation>
-<translation id="5625631605902707678">Kaikissa laitteissa</translation>
 <translation id="5626134646977739690">Nimi:</translation>
 <translation id="5627086634964711283">Määrittää myös Etusivu-painikkeella avattavan sivun.</translation>
 <translation id="5627676517703583263">Selaa älykkäästi Chromella.</translation>
@@ -5246,7 +5245,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Data tai laite ei noudata kaikkia organisaatiosi tietoturvakäytäntöjä. Tarkista järjestelmänvalvojalta, mitä on korjattava.}=1{Tiedosto tai laite ei noudata kaikkia organisaatiosi tietoturvakäytäntöjä. Tarkista järjestelmänvalvojalta, mitä on korjattava.}other{Tiedostot eivät noudata kaikkia organisaatiosi tietoturvakäytäntöjä. Tarkista järjestelmänvalvojalta, mitä on korjattava.}}</translation>
 <translation id="5736796278325406685">Anna kelvollinen käyttäjänimi</translation>
 <translation id="5738093759615225354">Tarvitset tämän koodin tietokoneelle kirjautumiseen</translation>
-<translation id="5738329404678738022">Tallenna kirjanmerkkejä ja muuta synkronoimalla</translation>
 <translation id="5739017626473506901">Kirjaudu sisään, niin <ph name="USER_NAME" /> voi lisätä koulutilin avullasi</translation>
 <translation id="5739235828260127894">Odotetaan vahvistusta. <ph name="LINK_BEGIN" />Lisätietoja<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Hyvin suuri</translation>
@@ -5268,7 +5266,6 @@
 <translation id="5757375109985023827">Valitse esikatseltava välilehti</translation>
 <translation id="5758631781033351321">Näet lukulistasi täällä</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> voi lukea dokumentteja, jotka lähetät tulostettavaksi sovelluksen <ph name="APP_NAME" /> kautta.</translation>
-<translation id="5760508342220592715">Kirjaudu sisään, niin saat lisää etuja</translation>
 <translation id="5762787084360227629">Lisää Google-tilin tiedot</translation>
 <translation id="5763751966069581670">USB-laitteita ei löytynyt.</translation>
 <translation id="5764483294734785780">T&amp;allenna audiotiedosto nimellä...</translation>
@@ -7806,7 +7803,6 @@
 <translation id="8059417245945632445">Tark&amp;ista laitteet</translation>
 <translation id="8059456211585183827">Tallennettavia tulostimia ei ole.</translation>
 <translation id="8061091456562007989">Vaihda takaisin</translation>
-<translation id="8061965471006133016">Lisäsuojaa salasanoille ja muille tärkeille asioille</translation>
 <translation id="8061970399284390013">Oikeinkirjoitus ja kieliopin tarkistus</translation>
 <translation id="8061991877177392872">Näyttää siltä, että olet jo ottanut Assistantin Voice Matchin käyttöön toisella laitteella. Tämän laitteen äänimalli on luotu aiemmista tallenteista.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 paperiarkki}other{{COUNT} paperiarkkia}}</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index c76be82e4..c4ec311 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation>
 <translation id="1059944192885972544">Nakakita ng <ph name="NUM" /> (na) Tab Para sa '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="1060292118287751956">Tinutukoy ang frequency na ina-update ng screen</translation>
+<translation id="1060570945511946595">Pamahalaan ang mga ticket</translation>
 <translation id="1061130374843955397">Welcome sa iyong <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Gumawa ng QR Code para sa Link na ito</translation>
 <translation id="1061904396131502319">Halos oras na para magpahinga</translation>
@@ -1127,6 +1128,7 @@
 <translation id="1975841812214822307">Alisin...</translation>
 <translation id="1976150099241323601">Mag-sign in sa Pangseguridad na Device</translation>
 <translation id="1977965994116744507">Ilapit pa ang iyong telepono upang ma-unlock ang <ph name="DEVICE_TYPE" /> mo.</translation>
+<translation id="1978666928180318515">Alisin ang Bruschetta</translation>
 <translation id="1979095679518582070">Ang pag-off sa feature na ito ay hindi nakakaapekto sa kakayahan ng device na ito na ipadala ang impormasyong kinakailangan para sa mahahalagang serbisyo tulad ng mga pag-update ng system at seguridad.</translation>
 <translation id="1979280758666859181">Lumilipat ka sa isang channel na may lumang bersyon ng <ph name="PRODUCT_NAME" />. Ilalapat ang paglilipat ng channel kapag tumugma ang bersyon ng channel sa bersyong kasalukuyang naka-install sa iyong device.</translation>
 <translation id="197989455406964291">Hindi sinusuportahan ng KDC ang uri ng pag-encrypt</translation>
@@ -1933,6 +1935,7 @@
 <translation id="2672142220933875349">Sirang crx file, hindi na-unpack.</translation>
 <translation id="2673135533890720193">Basahin ang iyong history ng pag-browse</translation>
 <translation id="2674764818721168631">Naka-off</translation>
+<translation id="2675570801872027281">Nagka-error sa pag-aalis ng Bruschetta. Subukan ulit.</translation>
 <translation id="2676492189600898281">Magbigay ng feedback sa Autofill</translation>
 <translation id="2678063897982469759">Muling paganahin</translation>
 <translation id="2678100101831051676">Hindi ma-cast.</translation>
@@ -2931,6 +2934,7 @@
 <translation id="3593965109698325041">Mga Limitasyon sa Pangalan ng Certificate</translation>
 <translation id="3596012367874587041">Mga setting ng app</translation>
 <translation id="3596414637720633074">I-block ang third-party na cookies sa Incognito</translation>
+<translation id="3598010454707842106">I-click ang “I-customize ang Chrome”</translation>
 <translation id="3599221874935822507">Raised</translation>
 <translation id="3600051066689725006">Impormasyon ng kahilingan sa web</translation>
 <translation id="360180734785106144">Mag-alok ng mga bagong feature kapag naging available ang mga ito</translation>
@@ -3929,6 +3933,7 @@
 <translation id="4497145443434063861">PC at Chromecast sa magkakaibang Wi-Fi network (hal. 2.4GHz
     vs. 5GHz)</translation>
 <translation id="4500114933761911433">Nag-crash ang <ph name="PLUGIN_NAME" /></translation>
+<translation id="4500647907053779331">&amp;Isalin ang seleksyon sa <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Icon na exclamation mark</translation>
 <translation id="4501530680793980440">Kumpirmahin ang Pag-alis</translation>
 <translation id="4502423230170890588">Alisin sa device na ito</translation>
@@ -4283,6 +4288,7 @@
 <translation id="4824037980212326045">Pag-back up at pag-restore ng Linux</translation>
 <translation id="4824958205181053313">Kanselahin ang pag-sync?</translation>
 <translation id="4825532258163983651">Hindi ma-delete ang passkey</translation>
+<translation id="4827283332383516812">I-delete ang card</translation>
 <translation id="4827675678516992122">Hindi makakonekta</translation>
 <translation id="4827784381479890589">Pinahusay na pang-check ng pagbabaybay sa Chrome browser (ipapadala sa Google ang text para sa mga suhestyon sa pagbabaybay)</translation>
 <translation id="4827904420700932487">Gumawa ng QR Code para sa Larawang ito</translation>
@@ -4458,7 +4464,6 @@
 <translation id="4977942889532008999">Kumpirmahin ang Pag-access</translation>
 <translation id="4980805016576257426">May malware ang extension na ito.</translation>
 <translation id="4981449534399733132">Para i-clear ang data sa pag-browse sa lahat ng iyong naka-sync na device at sa Google Account mo, <ph name="BEGIN_LINK" />mag-sign in<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Magpatuloy kung saan ka huminto sa anumang device</translation>
 <translation id="4986706507552097681">Mapipili mo kung ano ang isi-sync anumang oras sa mga setting. Puwedeng i-personalize ng Google ang Search at iba pang serbisyo batay sa iyong history.</translation>
 <translation id="4986728572522335985">Ide-delete nito ang lahat ng data sa security key, kabilang ang PIN nito</translation>
 <translation id="4988526792673242964">Mga Page</translation>
@@ -4575,7 +4580,6 @@
 <translation id="5097349930204431044">Puwedeng tukuyin ng mga site na binibisita mo kung ano ang gusto mo at pagkatapos ay magmumungkahi ito ng mga ad habang patuloy kang nagba-browse</translation>
 <translation id="5097649414558628673">Tool: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Awtomatikong mag-click kapag huminto ang cursor</translation>
-<translation id="5101683448725092498">I-back up ang iyong bagay</translation>
 <translation id="5101839224773798795">Awtomatikong mag-click kapag huminto ang cursor</translation>
 <translation id="5106350808162641062">Alisin</translation>
 <translation id="510695978163689362">Pinapamahalaan ng Family Link ang <ph name="USER_EMAIL" />. Puwede kang magdagdag ng mga pampaaralang account para ma-access ang mga resource ng paaralan nang may patnubay ng magulang.</translation>
@@ -5141,7 +5145,6 @@
 <translation id="5623842676595125836">Log</translation>
 <translation id="5624120631404540903">Pamahalaan ang mga password</translation>
 <translation id="5625225435499354052">I-edit sa Google Pay</translation>
-<translation id="5625631605902707678">Sa mga device</translation>
 <translation id="5626134646977739690">Pangalan:</translation>
 <translation id="5627086634964711283">Kinokontrol din nito kung anong pahina ang ipinapakita kapag na-click mo ang button ng Home.</translation>
 <translation id="5627676517703583263">Mag-browse nang mahusay gamit ang Chrome</translation>
@@ -5253,7 +5256,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Hindi natutugunan ng data na ito o ng iyong device ang ilan sa mga patakarang panseguridad ng organisasyon mo. Itanong sa iyong admin kung ano ang kailangang ayusin.}=1{Hindi natutugunan ng file na ito o ng iyong device ang ilan sa mga patakarang panseguridad ng organisasyon mo. Itanong sa iyong admin kung ano ang kailangang ayusin.}one{Hindi natutugunan ng mga file na ito ang ilan sa mga patakarang panseguridad ng organisasyon mo. Itanong sa iyong admin kung ano ang kailangang ayusin.}other{Hindi natutugunan ng mga file na ito ang ilan sa mga patakarang panseguridad ng organisasyon mo. Itanong sa iyong admin kung ano ang kailangang ayusin.}}</translation>
 <translation id="5736796278325406685">Mangyaring maglagay ng wastong username</translation>
 <translation id="5738093759615225354">Kailangan mo ang passkey na ito para mag-sign in sa iyong computer</translation>
-<translation id="5738329404678738022">I-store ang iyong nga bookmark at higit pa sa pamamagitan ng pag-sync</translation>
 <translation id="5739017626473506901">Mag-sign in para matulungan si <ph name="USER_NAME" /> na magdagdag ng pampaaralang account</translation>
 <translation id="5739235828260127894">Naghihintay ng pag-verify. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Napakalaki</translation>
@@ -5275,7 +5277,6 @@
 <translation id="5757375109985023827">Pumili ng tab na ipe-preview</translation>
 <translation id="5758631781033351321">Makikita mo rito ang iyong listahan ng babasahin</translation>
 <translation id="5759728514498647443">Ang mga dokumentong ipinadadala mo upang i-print sa pamamagitan ng <ph name="APP_NAME" /> ay maaaring buksan ng <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Mag-sign in para sa higit pang benepisyo</translation>
 <translation id="5762787084360227629">Ilagay ang impormasyon ng Google Account</translation>
 <translation id="5763751966069581670">Walang nahanap na USB device</translation>
 <translation id="5764483294734785780">I-sa&amp;ve ang audio bilang...</translation>
@@ -5311,6 +5312,7 @@
 <translation id="5792295754950501287">Higit pang aksyon para sa <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Paki-tap ang iyong power button</translation>
 <translation id="5792874008054171483">Higit pang pagkilos para sa <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Made-delete ang paraan ng pagbabayad na ito sa device na ito</translation>
 <translation id="5793339252089865437">Kung ida-download mo ang update sa pamamagitan ng iyong mobile network, maaaring magkaroon ng mga overage na singil.</translation>
 <translation id="5793420564274426163">Pagkumpirma ng Pagpapares</translation>
 <translation id="5793430094159150686">Nagbago ang iyong password. Para ma-restore ang iyong lokal na data, kailangan mong ilagay ang iyong lumang password.</translation>
@@ -5746,6 +5748,7 @@
 <translation id="617213288191670920">Walang idinagdag na wika</translation>
 <translation id="6173623053897475761">I-type muli ang iyong PIN</translation>
 <translation id="6175314957787328458">Microsoft Domain GUID</translation>
+<translation id="6177412385419165772">Inaalis...</translation>
 <translation id="6178664161104547336">Pumili ng certificate</translation>
 <translation id="6178682841350631965">Na-update ang iyong data sa pag-sign in</translation>
 <translation id="6180510783007738939">Line Tool</translation>
@@ -6224,6 +6227,7 @@
 <translation id="6619801788773578757">Magdagdag ng kiosk application</translation>
 <translation id="6619990499523117484">Kumpirmahin ang iyong PIN</translation>
 <translation id="6620254580880484313">Pangalan ng container</translation>
+<translation id="6620927550847360014">Alisin ang Bruschetta sa iyong <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Para ipadala ang tab na ito sa ibang device, mag-sign in sa Chrome sa dalawang device</translation>
 <translation id="6622980291894852883">Magpatuloy sa paghaharang ng mga larawan</translation>
 <translation id="6624036901798307345">Sa tablet mode, i-tap ang button ng toolbar para sa pagbibilang ng tab para mabuksan ang bagong tabstrip na nagpapakita ng mga thumbnail ng bawat tab.</translation>
@@ -6441,6 +6445,7 @@
 <translation id="6818547713623251698">Tingnan ang mga larawan, media, notification, at app ng iyong telepono</translation>
 <translation id="6818802132960437751">Built-in na proteksyon laban sa virus</translation>
 <translation id="6818920801736417483">I-save ang mga password?</translation>
+<translation id="6820079682647046800">Hindi na-authenticate ang Kerberos</translation>
 <translation id="6823174134746916417">Tap-to-click gamit ang touchpad</translation>
 <translation id="6824564591481349393">Kopyahin ang &amp;Email Address</translation>
 <translation id="6824584962142919697">&amp;Siyasatin ang mga element</translation>
@@ -6595,6 +6600,7 @@
 <translation id="6955698182324067397">Ie-enable mo ang mga feature ng pag-debug ng ChromeOS na magse-set up ng sshd daemon at mag-e-enable ng pag-boot mula sa mga USB drive.</translation>
 <translation id="6955893174999506273">Magtalaga ng 1 pang switch</translation>
 <translation id="6957044667612803194">Hindi sinusuportahan ng security key na ito ang mga PIN</translation>
+<translation id="6960133692707095572">Bumisita nang walang ticket</translation>
 <translation id="6960507406838246615">Kinakailangang i-update ang Linux</translation>
 <translation id="6960648667961844909">Hindi ma-download ang mga <ph name="LANGUAGE" /> na speech file. Susubukan mamaya ang pag-download. Ipinadala ang speech sa Google para sa pagpoproseso hanggang sa makumpleto ang pag-download.</translation>
 <translation id="696103774840402661">Permanenteng na-delete ang lahat ng file at lokal na data para sa lahat ng user sa <ph name="DEVICE_TYPE" /> na ito.</translation>
@@ -7287,6 +7293,7 @@
 <translation id="7609148976235050828">Kumonekta sa internet at subukan ulit.</translation>
 <translation id="7612401678989660900">Payagan ang access para sa mga app at website na may pahintulot sa mikropono</translation>
 <translation id="7612655942094160088">Nag-e-enable sa mga feature ng nakakonektang telepono.</translation>
+<translation id="7612989789287281429">Sina-sign in ka…</translation>
 <translation id="7614260613810441905">Itanong kapag gusto ng site na mag-edit ng mga file o folder sa iyong device (inirerekomenda)</translation>
 <translation id="761530003705945209">I-back up sa Google Drive. Walang hirap na i-restore ang iyong data o magpalit ng device anumang oras. Kasama sa iyong backup ang data ng app. Ina-upload ang mga backup mo sa Google at ine-encrypt ang mga ito gamit ang password ng iyong Google Account.</translation>
 <translation id="7615365294369022248">Nagka-error sa pagdaragdag ng account</translation>
@@ -7816,7 +7823,6 @@
 <translation id="8059417245945632445">&amp;Inspeksyunin ang mga device</translation>
 <translation id="8059456211585183827">Walang printer na available na i-save.</translation>
 <translation id="8061091456562007989">Ibalik ito sa dati</translation>
-<translation id="8061965471006133016">Karagdagang proteksyon sa iyong mga password at higit pa</translation>
 <translation id="8061970399284390013">Pagsusuri sa spelling at grammar</translation>
 <translation id="8061991877177392872">Mukhang na-set up mo na ang Voice Match sa iyong Assistant sa isa pang device. Ginamit ang mga nakaraang recording na ito para gumawa ng voice model sa device na ito.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 pirasong papel}one{{COUNT} pirasong papel}other{{COUNT} na pirasong papel}}</translation>
@@ -8057,6 +8063,7 @@
 <translation id="8272443605911821513">Pamahalaan ang iyong mga extension sa pamamagitan ng pag-click sa Mga Extension sa menu ng "Higit pang mga tool."</translation>
 <translation id="8272786333453048167">Payagan ulit</translation>
 <translation id="8273905181216423293">I-download ngayon</translation>
+<translation id="827488840488530039">Hindi ma-verify ng page na sinusubukan mong bisitahin ang iyong mga Kerberos ticket</translation>
 <translation id="8274921654076766238">Sumusunod ang magnifier sa pag-focus ng keyboard</translation>
 <translation id="8274924778568117936">Huwag i-off o isara ang iyong <ph name="DEVICE_TYPE" /> hanggang sa matapos ang pag-update. Magre-restart ang <ph name="DEVICE_TYPE" /> mo pagkatapos ng pag-install.</translation>
 <translation id="8275038454117074363">I-import</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index fb0f16b9..0aa3189 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Protocole HTTPS</translation>
 <translation id="1059944192885972544"><ph name="NUM" /> onglets trouvés pour « <ph name="SEARCH_TEXT" /> »</translation>
 <translation id="1060292118287751956">Détermine la fréquence à laquelle l'écran est actualisé</translation>
+<translation id="1060570945511946595">Gérer les tickets</translation>
 <translation id="1061130374843955397">Bienvenue sur votre <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Créer un code QR pour ce lien</translation>
 <translation id="1061904396131502319">C'est bientôt le moment de prendre une pause</translation>
@@ -1115,6 +1116,7 @@
 <translation id="1975841812214822307">Supprimer...</translation>
 <translation id="1976150099241323601">Connexion au dispositif de sécurité</translation>
 <translation id="1977965994116744507">Rapprochez votre téléphone de votre <ph name="DEVICE_TYPE" /> pour le déverrouiller.</translation>
+<translation id="1978666928180318515">Supprimer Bruschetta</translation>
 <translation id="1979095679518582070">La désactivation de cette fonctionnalité n'empêche pas cet appareil d'envoyer les données nécessaires aux services essentiels, comme les mises à jour du système et la sécurité.</translation>
 <translation id="1979280758666859181">Vous passez à un canal ayant une ancienne version de <ph name="PRODUCT_NAME" />. Le changement de canal sera appliqué lorsque la version du canal correspondra à la version actuellement installée sur votre appareil.</translation>
 <translation id="197989455406964291">KDC ne prend pas en charge ce type de chiffrement</translation>
@@ -1919,6 +1921,7 @@
 <translation id="2672142220933875349">Mauvais fichier crx, échec du déballage.</translation>
 <translation id="2673135533890720193">Consulter votre historique de navigation</translation>
 <translation id="2674764818721168631">Désactivé</translation>
+<translation id="2675570801872027281">Erreur lors de la suppression de Bruschetta. Veuillez réessayer.</translation>
 <translation id="2676492189600898281">Fournir des commentaires sur le remplissage automatique</translation>
 <translation id="2678063897982469759">Réactiver</translation>
 <translation id="2678100101831051676">Diffusion impossible.</translation>
@@ -2917,6 +2920,7 @@
 <translation id="3593965109698325041">Contraintes de nom de certificat</translation>
 <translation id="3596012367874587041">Paramètres de l'application</translation>
 <translation id="3596414637720633074">Bloquer les témoins tiers en navigation privée</translation>
+<translation id="3598010454707842106">Cliquez sur « Personnaliser Chrome »</translation>
 <translation id="3599221874935822507">Surélevé</translation>
 <translation id="3600051066689725006">Renseignements sur la demande Web</translation>
 <translation id="360180734785106144">Proposer de nouvelles fonctionnalités lorsqu'elles sont accessibles</translation>
@@ -3914,6 +3918,7 @@
 <translation id="4495419450179050807">Ne pas afficher sur cette page</translation>
 <translation id="4497145443434063861">L'ordinateur et le Chromecast sont sur des réseaux Wi-Fi différents (par exemple, 2,4 GHz et 5 GHz)</translation>
 <translation id="4500114933761911433">Le plugiciel <ph name="PLUGIN_NAME" /> a planté</translation>
+<translation id="4500647907053779331">&amp;Traduire la sélection en <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Icône représentant un point d'exclamation</translation>
 <translation id="4501530680793980440">Confirmation de la désinstallation</translation>
 <translation id="4502423230170890588">Supprimer de cet appareil</translation>
@@ -3944,6 +3949,7 @@
 <translation id="4522890784888918985">Les comptes d'enfants ne sont pas pris en charge</translation>
 <translation id="4523876148417776526">Les listes de sites XML n'ont pas encore été récupérées.</translation>
 <translation id="4524832533047962394">Le mode d'inscription fourni n'est pas compatible avec cette version du système d'exploitation. Veuillez vous assurer que vous utilisez la version la plus récente.</translation>
+<translation id="4526051299161934899">Groupes d'onglets enregistrés masqués</translation>
 <translation id="4526853756266614740">Choisir une image pour appliquer le thème instantanément</translation>
 <translation id="452750746583162491">Examiner vos données synchronisées</translation>
 <translation id="4527929807707405172">Activer le défilement inversé. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
@@ -4443,7 +4449,6 @@
 <translation id="4977942889532008999">Confirmation d'accès</translation>
 <translation id="4980805016576257426">Cette extension contient un logiciel malveillant.</translation>
 <translation id="4981449534399733132">Pour effacer les données de navigation de tous vos appareils synchronisés et de votre compte Google, <ph name="BEGIN_LINK" />connectez-vous<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Reprenez là où vous vous étiez arrêté sur n'importe quel appareil</translation>
 <translation id="4986706507552097681">Vous pouvez toujours choisir les éléments à synchroniser dans les paramètres. Google peut personnaliser la recherche et d'autres services en fonction de votre historique.</translation>
 <translation id="4986728572522335985">Cette action effacera toutes les données contenues sur la clé de sécurité, y compris son NIP</translation>
 <translation id="4988526792673242964">Pages</translation>
@@ -4560,7 +4565,6 @@
 <translation id="5097349930204431044">Les sites que vous visitez peuvent déterminer ce que vous aimez, puis suggérer des annonces pendant que vous continuez à naviguer</translation>
 <translation id="5097649414558628673">Outil : <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Cliquer automatiquement lorsque le curseur s'arrête</translation>
-<translation id="5101683448725092498">Sauvegardez vos données</translation>
 <translation id="5101839224773798795">Cliquer automatiquement lorsque le curseur s'arrête</translation>
 <translation id="5106350808162641062">Retirer</translation>
 <translation id="510695978163689362">Le compte <ph name="USER_EMAIL" /> est supervisé par Family Link. Vous pouvez ajouter des comptes scolaires pour lui permettre d'accéder à des ressources scolaires avec supervision parentale.</translation>
@@ -5126,7 +5130,6 @@
 <translation id="5623842676595125836">Journal</translation>
 <translation id="5624120631404540903">Gérer les mots de passe</translation>
 <translation id="5625225435499354052">Modifier dans Google Pay</translation>
-<translation id="5625631605902707678">Sur tous les appareils</translation>
 <translation id="5626134646977739690">Nom :</translation>
 <translation id="5627086634964711283">Elle définit également la page qui s'affiche lorsque vous cliquez sur le bouton Accueil.</translation>
 <translation id="5627676517703583263">Naviguez intelligemment avec Chrome</translation>
@@ -5238,7 +5241,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Cette donnée ou votre appareil ne respecte pas certaines des politiques de sécurité de votre organisation. Vérifiez auprès de votre administrateur ce qui doit être corrigé.}=1{Ce fichier ou votre appareil ne respecte pas certaines des politiques de sécurité de votre organisation. Vérifiez auprès de votre administrateur ce qui doit être corrigé.}one{Ce fichier ne respecte pas certaines des politiques de sécurité de votre organisation. Vérifiez auprès de votre administrateur ce qui doit être corrigé.}other{Ces fichiers ne respectent pas certaines des politiques de sécurité de votre organisation. Vérifiez auprès de votre administrateur ce qui doit être corrigé.}}</translation>
 <translation id="5736796278325406685">Veuillez entrer un nom d'utilisateur valide</translation>
 <translation id="5738093759615225354">Vous avez besoin de cette clé d'accès pour vous connecter à votre ordinateur</translation>
-<translation id="5738329404678738022">Stockez vos favoris et plus encore avec la synchronisation</translation>
 <translation id="5739017626473506901">Connectez-vous pour aider <ph name="USER_NAME" /> à ajouter un compte scolaire</translation>
 <translation id="5739235828260127894">En attente de vérification. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Très grand</translation>
@@ -5260,7 +5262,6 @@
 <translation id="5757375109985023827">Sélectionner un onglet pour consulter l'aperçu</translation>
 <translation id="5758631781033351321">Vous trouverez votre liste de lecture ici</translation>
 <translation id="5759728514498647443">Les documents que vous envoyez à l'impression au moyen de <ph name="APP_NAME" /> peuvent être lus par <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Connectez-vous pour découvrir d'autres avantages</translation>
 <translation id="5762787084360227629">Entrer les renseignements à propos de votre compte Google</translation>
 <translation id="5763751966069581670">Aucun appareil USB trouvé</translation>
 <translation id="5764483294734785780">En&amp;registrer le fichier audio sous...</translation>
@@ -5731,6 +5732,7 @@
 <translation id="617213288191670920">Aucune langue ajoutée</translation>
 <translation id="6173623053897475761">Entrer à nouveau votre NIP</translation>
 <translation id="6175314957787328458">GUID de domaine Microsoft</translation>
+<translation id="6177412385419165772">Suppression en cours...</translation>
 <translation id="6178664161104547336">Sélectionner un certificat</translation>
 <translation id="6178682841350631965">Vos données de connexion ont été mises à jour</translation>
 <translation id="6180510783007738939">Ligne</translation>
@@ -6209,6 +6211,7 @@
 <translation id="6619801788773578757">Ajouter une application de kiosque</translation>
 <translation id="6619990499523117484">Confirmez votre NIP</translation>
 <translation id="6620254580880484313">Nom du conteneur</translation>
+<translation id="6620927550847360014">Supprimer Bruschetta de votre <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Pour envoyer cet onglet vers un autre appareil, connectez-vous à Chrome sur les deux appareils</translation>
 <translation id="6622980291894852883">Continuer à bloquer les images</translation>
 <translation id="6624036901798307345">En mode tablette, touchez le bouton de la barre d'outils du compteur d'onglets pour ouvrir la nouvelle bande d'onglets qui affiche les miniatures de chaque onglet.</translation>
@@ -6426,6 +6429,7 @@
 <translation id="6818547713623251698">Affichez les photos, les fichiers multimédias, les notifications et les applications de votre téléphone</translation>
 <translation id="6818802132960437751">Protection antivirus intégrée</translation>
 <translation id="6818920801736417483">Enregistrer les mots de passe?</translation>
+<translation id="6820079682647046800">L'authentification Kerberos a échoué</translation>
 <translation id="6823174134746916417">Toucher pour cliquer sur le pavé tactile</translation>
 <translation id="6824564591481349393">Copier l'adresse de courri&amp;el</translation>
 <translation id="6824584962142919697">&amp;Inspecter des éléments</translation>
@@ -6580,6 +6584,7 @@
 <translation id="6955698182324067397">Vous activez les fonctionnalités de débogage de Chrome OS qui vont installer le programme d'arrière-plan SSHD et activer le démarrage à partir de clés USB.</translation>
 <translation id="6955893174999506273">Attribuer un autre commutateur</translation>
 <translation id="6957044667612803194">Cette clé de sécurité ne prend pas en charge les NIP</translation>
+<translation id="6960133692707095572">Accéder sans ticket</translation>
 <translation id="6960507406838246615">La mise à jour de Linux est requise</translation>
 <translation id="6960648667961844909">Impossible de télécharger les fichiers vocaux en <ph name="LANGUAGE" />. Une tentative de téléchargement aura lieu ultérieurement. Le fichier vocal est envoyé à Google aux fins de traitement jusqu'à la fin du téléchargement.</translation>
 <translation id="696103774840402661">Tous les fichiers et toutes les données locales associés à tous les utilisateurs sur cet appareil <ph name="DEVICE_TYPE" /> ont été supprimés définitivement.</translation>
@@ -7800,7 +7805,6 @@
 <translation id="8059417245945632445">&amp;Inspecter les appareils</translation>
 <translation id="8059456211585183827">Il n'y a aucune imprimante à enregistrer.</translation>
 <translation id="8061091456562007989">Rétablir</translation>
-<translation id="8061965471006133016">Protection supplémentaire pour vos mots de passe et plus encore</translation>
 <translation id="8061970399284390013">Vérification de l'orthographe et de la grammaire</translation>
 <translation id="8061991877177392872">On dirait que vous avez déjà configuré Voice Match avec votre Assistant sur un autre appareil. Ces enregistrements précédents ont été utilisés pour créer un modèle vocal sur cet appareil.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 feuille de papier}one{{COUNT} feuille de papier}other{{COUNT} feuilles de papier}}</translation>
@@ -8041,6 +8045,7 @@
 <translation id="8272443605911821513">Pour gérer les extensions, cliquer sur « Extensions » dans le menu « Autres outils ».</translation>
 <translation id="8272786333453048167">Autoriser de nouveau</translation>
 <translation id="8273905181216423293">Télécharger maintenant</translation>
+<translation id="827488840488530039">La page à laquelle vous souhaitez accéder n'a pas pu vérifier vos tickets Kerberos</translation>
 <translation id="8274921654076766238">La loupe suit les actions au clavier</translation>
 <translation id="8274924778568117936">N'éteignez pas votre <ph name="DEVICE_TYPE" /> et ne le fermez pas tant que la mise à jour n'est pas terminée. Votre <ph name="DEVICE_TYPE" /> redémarrera une fois l'installation terminée.</translation>
 <translation id="8275038454117074363">Importer</translation>
@@ -8487,6 +8492,7 @@
 <translation id="869884720829132584">Menu Applications</translation>
 <translation id="869891660844655955">Date d'expiration</translation>
 <translation id="8699188901396699995">PPD pour <ph name="PRINTER_NAME" /></translation>
+<translation id="8702278591052316269">Menu contenant des groupes d'onglets enregistrés masqués</translation>
 <translation id="8702825062053163569">Votre <ph name="DEVICE_TYPE" /> a été verrouillé.</translation>
 <translation id="8703346390800944767">Ignorer l'annonce</translation>
 <translation id="8705331520020532516">Numéro de série</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 7700e9da..e61c57a 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -378,6 +378,7 @@
 <translation id="1339009753652684748">Accédez à l'Assistant en disant "Hey Google". Pour économiser la batterie, sélectionnez "Activé (recommandé)". L'Assistant ne répondra que lorsque votre appareil sera branché ou en charge.</translation>
 <translation id="13392265090583506">Paramètres d'accessibilité</translation>
 <translation id="1340527397989195812">Sauvegardez du contenu multimédia en provenance de l'appareil à l'aide de l'application Fichiers.</translation>
+<translation id="1341701348342335220">Félicitations !</translation>
 <translation id="1341871421050612057">Synchronisation avec <ph name="USERNAME" /> impossible</translation>
 <translation id="1343865611738742294">Autoriser les applications Linux à accéder aux périphériques USB. Dès qu'un périphérique est déconnecté, il est effacé de la mémoire de Linux.</translation>
 <translation id="1343920184519992513">Reprendre là où vous en étiez et ouvrir un ensemble de pages spécifiques</translation>
@@ -3625,6 +3626,7 @@
 <translation id="4232375817808480934">Configurer Kerberos</translation>
 <translation id="4235965441080806197">Annuler la connexion</translation>
 <translation id="4236163961381003811">Découvrir plus d'extensions</translation>
+<translation id="4237282663517880406">Afficher les suggestions Google Drive</translation>
 <translation id="4241182343707213132">Redémarrer pour mettre à jour les applis de votre organisation</translation>
 <translation id="4242145785130247982">Plusieurs certificats client ne sont pas compatibles</translation>
 <translation id="4242533952199664413">Ouvrir les paramètres</translation>
@@ -4440,7 +4442,6 @@
 <translation id="4977942889532008999">Confirmer l'accès</translation>
 <translation id="4980805016576257426">Cette extension contient des logiciels malveillants.</translation>
 <translation id="4981449534399733132">Pour effacer les données de navigation sur tous vos appareils synchronisés et dans votre compte Google, <ph name="BEGIN_LINK" />connectez-vous<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Reprenez là où vous en étiez sur n'importe quel appareil</translation>
 <translation id="4986706507552097681">Vous avez toujours la possibilité de sélectionner les éléments à synchroniser dans les paramètres. Google peut personnaliser la recherche et d'autres services en fonction de votre historique.</translation>
 <translation id="4986728572522335985">Cette opération supprimera toutes les données stockées sur la clé de sécurité, y compris son code</translation>
 <translation id="4988526792673242964">Pages</translation>
@@ -4557,7 +4558,6 @@
 <translation id="5097349930204431044">Les sites que vous consultez peuvent déterminer vos centres d'intérêt, puis vous suggérer des annonces durant votre navigation</translation>
 <translation id="5097649414558628673">Outil : <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Clic automatique à l'arrêt du curseur</translation>
-<translation id="5101683448725092498">Sauvegarder vos contenus</translation>
 <translation id="5101839224773798795">Cliquer automatiquement en cas d'arrêt du curseur</translation>
 <translation id="5106350808162641062">Supprimer</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> est supervisé par Family Link. Vous pouvez ajouter des comptes scolaires pour lui permettre d'accéder à des ressources scolaires avec supervision parentale.</translation>
@@ -5124,7 +5124,6 @@
 <translation id="5623842676595125836">Journal</translation>
 <translation id="5624120631404540903">Gérer les mots de passe</translation>
 <translation id="5625225435499354052">Modifier dans Google Pay</translation>
-<translation id="5625631605902707678">Tous les appareils</translation>
 <translation id="5626134646977739690">Nom :</translation>
 <translation id="5627086634964711283">Elle contrôle également la page qui s'affiche lorsque vous cliquez sur le bouton Accueil.</translation>
 <translation id="5627676517703583263">Naviguez intelligemment avec Chrome</translation>
@@ -5236,7 +5235,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Votre appareil ou ces données ne respectent pas certaines règles de sécurité de votre organisation. Contactez votre administrateur pour savoir ce qui doit être corrigé.}=1{Ce fichier ou votre appareil ne respecte pas certaines règles de sécurité de votre organisation. Contactez votre administrateur pour savoir ce qui doit être corrigé.}one{Ce fichier ne respecte pas certaines règles de sécurité de votre organisation. Contactez votre administrateur pour savoir ce qui doit être corrigé.}other{Ces fichiers ne respectent pas certaines règles de sécurité de votre organisation. Contactez votre administrateur pour savoir ce qui doit être corrigé.}}</translation>
 <translation id="5736796278325406685">Veuillez saisir un nom d'utilisateur valide</translation>
 <translation id="5738093759615225354">Vous avez besoin de cette clé d'accès pour vous connecter à votre ordinateur</translation>
-<translation id="5738329404678738022">Enregistrez vos favoris etc. avec la synchronisation</translation>
 <translation id="5739017626473506901">Connectez-vous pour aider <ph name="USER_NAME" /> à ajouter un compte scolaire</translation>
 <translation id="5739235828260127894">En attente de validation. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Très grande</translation>
@@ -5258,7 +5256,6 @@
 <translation id="5757375109985023827">Sélectionnez un onglet à prévisualiser</translation>
 <translation id="5758631781033351321">Votre liste de lecture s'affichera ici</translation>
 <translation id="5759728514498647443">Les documents envoyés pour impression via "<ph name="APP_NAME" />" sont lisibles avec "<ph name="APP_NAME" />"</translation>
-<translation id="5760508342220592715">Connectez-vous pour profiter d'autres avantages</translation>
 <translation id="5762787084360227629">Saisir les infos du compte Google</translation>
 <translation id="5763751966069581670">Aucun appareil USB détecté</translation>
 <translation id="5764483294734785780">En&amp;registrer le fichier audio sous...</translation>
@@ -7022,7 +7019,7 @@
 <translation id="7380622428988553498">Le nom de l'appareil comporte des caractères non valides</translation>
 <translation id="7380768571499464492">L'imprimante "<ph name="PRINTER_NAME" />" a bien été mise à jour</translation>
 <translation id="7382085868019811559">Legacy Browser Support (LBS) autorise l'ouverture d'URL spécifiques dans un navigateur secondaire qui prend en charge les anciennes fonctionnalités nécessaires pour exécuter ces sites correctement.</translation>
-<translation id="738322632977123193">Impossible d'importer. Utilisez une image enregistrée dans l'un des formats suivants : .jpg, .gif, .png, .bmp, .tif ou .webp.</translation>
+<translation id="738322632977123193">Impossible d'importer. Utilisez une image dans l'un de ces formats : .jpg, .gif, .png, .bmp, .tif ou .webp.</translation>
 <translation id="73843634555824551">Saisies et claviers</translation>
 <translation id="7384687527486377545">Répétition automatique du clavier</translation>
 <translation id="7385490373498027129">L'ensemble des fichiers et des données locales de tous les utilisateurs sur cet appareil (<ph name="DEVICE_TYPE" />) seront supprimés définitivement.</translation>
@@ -7799,7 +7796,6 @@
 <translation id="8059417245945632445">&amp;Inspecter les appareils</translation>
 <translation id="8059456211585183827">Aucune imprimante ne peut être enregistrée.</translation>
 <translation id="8061091456562007989">Rétablir les anciens paramètres</translation>
-<translation id="8061965471006133016">Protection renforcée pour vos mots de passe et plus</translation>
 <translation id="8061970399284390013">Vérification de l'orthographe et de la grammaire</translation>
 <translation id="8061991877177392872">Apparemment, vous avez déjà configuré Voice Match avec l'Assistant sur un autre appareil. Ces enregistrements précédents ont été utilisés pour créer une empreinte vocale sur cet appareil.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 feuille de papier}one{{COUNT} feuille de papier}other{{COUNT} feuilles de papier}}</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index ba267b9b..145a13a 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Protocolo de Transferencia de Hipertexto (HTTPS)</translation>
 <translation id="1059944192885972544"><ph name="NUM" /> pestanas atopadas para "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="1060292118287751956">Determina a frecuencia coa que se actualiza a pantalla</translation>
+<translation id="1060570945511946595">Xestionar tíckets</translation>
 <translation id="1061130374843955397">Dámosche a benvida ao teu dispositivo (<ph name="DEVICE_TYPE" />)</translation>
 <translation id="1061373870045429865">Crear código QR para esta ligazón</translation>
 <translation id="1061904396131502319">Xa case é hora de facer unha pausa</translation>
@@ -377,6 +378,7 @@
 <translation id="1339009753652684748">Accede ao teu Asistente cando digas "Hey Google". Para aforrar batería, escolle Activado (recomendado). O teu Asistente só responderá cando o dispositivo estea enchufado ou cargando.</translation>
 <translation id="13392265090583506">Accesibilidade</translation>
 <translation id="1340527397989195812">Realiza unha copia de seguranza dos medios desde o dispositivo a través da aplicación Ficheiros.</translation>
+<translation id="1341701348342335220">Bo traballo!</translation>
 <translation id="1341871421050612057">Non se puido sincronizar con <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Concédelle permiso ás aplicacións de Linux para acceder a dispositivos USB. Linux non recordará un dispositivo USB unha vez que se quite.</translation>
 <translation id="1343920184519992513">Retomar a actividade onde a deixaches e abrir un conxunto de páxinas específico</translation>
@@ -1112,6 +1114,7 @@
 <translation id="1975841812214822307">Eliminar...</translation>
 <translation id="1976150099241323601">Iniciar sesión no dispositivo de seguranza</translation>
 <translation id="1977965994116744507">Achega o teléfono para desbloquear o <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Quitar Bruschetta</translation>
 <translation id="1979095679518582070">A desactivación desta función non afecta á capacidade deste dispositivo de enviar a información necesaria para servizos esenciais, como as actualizacións do sistema e a seguranza.</translation>
 <translation id="1979280758666859181">Estás cambiando a unha canle cunha versión anterior de <ph name="PRODUCT_NAME" />. O cambio de canle aplicarase cando a versión da canle coincida coa versión que está instalada actualmente no teu dispositivo.</translation>
 <translation id="197989455406964291">O KDC non é compatible co tipo de encriptación</translation>
@@ -1915,6 +1918,7 @@
 <translation id="2672142220933875349">Ficheiro crx incorrecto, fallo na descompresión.</translation>
 <translation id="2673135533890720193">Ler o teu historial de navegación</translation>
 <translation id="2674764818721168631">Non</translation>
+<translation id="2675570801872027281">Produciuse un erro ao quitar Bruschetta. Téntao de novo.</translation>
 <translation id="2676492189600898281">Enviar comentarios sobre autocompletar</translation>
 <translation id="2678063897982469759">Reactivar</translation>
 <translation id="2678100101831051676">Non se puido emitir contido.</translation>
@@ -2913,6 +2917,7 @@
 <translation id="3593965109698325041">Restricións nos nomes de certificados</translation>
 <translation id="3596012367874587041">Axustes da aplicación</translation>
 <translation id="3596414637720633074">Bloquear cookies de terceiros no modo de incógnito</translation>
+<translation id="3598010454707842106">Fai clic en Personalizar Chrome</translation>
 <translation id="3599221874935822507">Elevada</translation>
 <translation id="3600051066689725006">Información sobre solicitudes web</translation>
 <translation id="360180734785106144">Ofrecerche funcións novas a medida que estean dispoñibles</translation>
@@ -3623,6 +3628,7 @@
 <translation id="4232375817808480934">Configurar Kerberos</translation>
 <translation id="4235965441080806197">Cancelar inicio de sesión</translation>
 <translation id="4236163961381003811">Descubrir máis extensións</translation>
+<translation id="4237282663517880406">Mostrar suxestións de Google Drive</translation>
 <translation id="4241182343707213132">Reinicia o dispositivo para actualizar as aplicacións da organización</translation>
 <translation id="4242145785130247982">Non se permite utilizar varios certificados de cliente</translation>
 <translation id="4242533952199664413">Abrir configuración</translation>
@@ -3909,6 +3915,7 @@
 <translation id="4495419450179050807">Non mostrar nesta páxina</translation>
 <translation id="4497145443434063861">O PC e o Chromecast están conectados a redes wifi diferentes (por exemplo, a unha de 2,4 GHz e a outra de 5 GHz)</translation>
 <translation id="4500114933761911433">Produciuse un fallo co complemento <ph name="PLUGIN_NAME" /></translation>
+<translation id="4500647907053779331">&amp;Traducir selección ao <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Icona de signo de exclamación</translation>
 <translation id="4501530680793980440">Confirmar eliminación</translation>
 <translation id="4502423230170890588">Quitar deste dispositivo</translation>
@@ -4438,7 +4445,6 @@
 <translation id="4977942889532008999">Confirmar acceso</translation>
 <translation id="4980805016576257426">Esta extensión contén software malicioso.</translation>
 <translation id="4981449534399733132">Para borrar os datos de navegación de todos os dispositivos sincronizados e da túa Conta de Google, tes que <ph name="BEGIN_LINK" />iniciar sesión<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Continúa en calquera dispositivo desde onde o deixases</translation>
 <translation id="4986706507552097681">Sempre podes escoller na configuración o contido que queres sincronizar. Google pode personalizar a Busca e outros servizos en función do teu historial.</translation>
 <translation id="4986728572522335985">Con esta opción, eliminaranse todos os datos almacenados na chave de seguranza, incluídos os PIN</translation>
 <translation id="4988526792673242964">Páxinas</translation>
@@ -4555,7 +4561,6 @@
 <translation id="5097349930204431044">Os sitios que visites poden determinar o que che gusta e suxerirche anuncios a medida que navegues pola Web</translation>
 <translation id="5097649414558628673">Ferramenta: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Facer clic automaticamente cando se detén o cursor</translation>
-<translation id="5101683448725092498">Fai unha copia de seguranza dos teus datos</translation>
 <translation id="5101839224773798795">Facer clic automaticamente cando se deteña o cursor</translation>
 <translation id="5106350808162641062">Quitar</translation>
 <translation id="510695978163689362">Family Link supervisa <ph name="USER_EMAIL" />. Podes engadir contas de centro educativo para acceder a recursos didácticos con supervisión parental.</translation>
@@ -5119,7 +5124,6 @@
 <translation id="5623842676595125836">Rexistro</translation>
 <translation id="5624120631404540903">Xestionar contrasinais</translation>
 <translation id="5625225435499354052">Editar en Google Pay</translation>
-<translation id="5625631605902707678">En varios dispositivos</translation>
 <translation id="5626134646977739690">Nome:</translation>
 <translation id="5627086634964711283">Tamén controla a páxina que se mostra ao facer clic no botón Inicio.</translation>
 <translation id="5627676517703583263">Navega de forma intelixente con Chrome</translation>
@@ -5231,7 +5235,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Estes datos ou o teu dispositivo non cumpren algunhas das políticas de seguranza da túa organización. Consulta o administrador para saber o que debes corrixir.}=1{Este ficheiro ou o teu dispositivo non cumpre algunhas das políticas de seguranza da túa organización. Consulta o administrador para saber o que debes corrixir.}other{Estes ficheiros non cumpren algunhas das políticas de seguranza da túa organización. Consulta o administrador para saber o que debes corrixir.}}</translation>
 <translation id="5736796278325406685">Introduce un nome de usuario válido</translation>
 <translation id="5738093759615225354">Precisas esta clave de acceso para iniciar sesión no teu ordenador</translation>
-<translation id="5738329404678738022">Almacena os teus marcadores e máis coa sincronización</translation>
 <translation id="5739017626473506901">Inicia sesión para axudarlle a <ph name="USER_NAME" /> a engadir unha conta de centro educativo</translation>
 <translation id="5739235828260127894">Esperando pola verificación. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Moi grande</translation>
@@ -5253,7 +5256,6 @@
 <translation id="5757375109985023827">Selecciona unha pestana para acceder á vista previa</translation>
 <translation id="5758631781033351321">Aquí atoparás a túa lista de lecturas</translation>
 <translation id="5759728514498647443">Os documentos que envías a imprimir a través de <ph name="APP_NAME" /> pódense ler con <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Inicia sesión para obter máis vantaxes</translation>
 <translation id="5762787084360227629">Indicar información da Conta de Google</translation>
 <translation id="5763751966069581670">Non se encontrou ningún dispositivo USB</translation>
 <translation id="5764483294734785780">Ga&amp;rdar audio como...</translation>
@@ -5723,6 +5725,7 @@
 <translation id="617213288191670920">Non se engadiu ningún idioma</translation>
 <translation id="6173623053897475761">Escribe o PIN de novo</translation>
 <translation id="6175314957787328458">GUID de dominio de Microsoft</translation>
+<translation id="6177412385419165772">Quitando...</translation>
 <translation id="6178664161104547336">Selecciona un certificado</translation>
 <translation id="6178682841350631965">Actualizáronse os teus datos de inicio de sesión</translation>
 <translation id="6180510783007738939">Ferramenta de liñas</translation>
@@ -6199,6 +6202,7 @@
 <translation id="6619801788773578757">Engadir aplicación de quiosco</translation>
 <translation id="6619990499523117484">Confirma o PIN</translation>
 <translation id="6620254580880484313">Nome do contedor</translation>
+<translation id="6620927550847360014">Queres quitar Bruschetta do teu dispositivo (<ph name="DEVICE_TYPE" />)?</translation>
 <translation id="6621391692573306628">Para enviar esta pestana a outro dispositivo, inicia sesión en Chrome nos dous dispositivos</translation>
 <translation id="6622980291894852883">Continuar bloqueando as imaxes</translation>
 <translation id="6624036901798307345">No modo de tableta, toca o botón do contador de pestanas que se atopa na barra de ferramentas para abrir a nova franxa de pestanas na que se mostra cadansúa miniatura.</translation>
@@ -6416,6 +6420,7 @@
 <translation id="6818547713623251698">Accede ás fotos, ao contido multimedia, ás notificacións e ás aplicacións do teu teléfono</translation>
 <translation id="6818802132960437751">Protección antivirus integrada</translation>
 <translation id="6818920801736417483">Queres gardar os contrasinais?</translation>
+<translation id="6820079682647046800">Produciuse un erro durante a autenticación de Kerberos</translation>
 <translation id="6823174134746916417">Tocar para facer clic do panel táctil</translation>
 <translation id="6824564591481349393">Copiar &amp;enderezo de correo electrónico</translation>
 <translation id="6824584962142919697">&amp;Inspeccionar elementos</translation>
@@ -6570,6 +6575,7 @@
 <translation id="6955698182324067397">Vas activar as funcións de depuración de Chrome OS que configurarán o daemon sshd e activarán o inicio desde unidades USB.</translation>
 <translation id="6955893174999506273">Asignar acción a 1 interruptor máis</translation>
 <translation id="6957044667612803194">Esta chave de seguranza non admite códigos PIN</translation>
+<translation id="6960133692707095572">Visitar sen tícket</translation>
 <translation id="6960507406838246615">É necesario actualizar Linux</translation>
 <translation id="6960648667961844909">Non se puideron descargar os ficheiros de voz en <ph name="LANGUAGE" />. Tentarase de novo máis tarde. Ata que finalice a descarga, enviaráselle a Google o que se fale para que o procese.</translation>
 <translation id="696103774840402661">Elimináronse permanentemente todos os ficheiros e os datos locais de todos os usuarios deste dispositivo (<ph name="DEVICE_TYPE" />).</translation>
@@ -7790,7 +7796,6 @@
 <translation id="8059417245945632445">&amp;Inspeccionar dispositivos</translation>
 <translation id="8059456211585183827">Non hai impresoras dispoñibles para gardar.</translation>
 <translation id="8061091456562007989">Desfacer cambio</translation>
-<translation id="8061965471006133016">Protección extra para os teus contrasinais e máis</translation>
 <translation id="8061970399284390013">Corrección ortográfica e gramatical</translation>
 <translation id="8061991877177392872">Parece que xa configuraches Voice Match co teu Asistente noutro dispositivo. Esas gravacións anteriores utilizáronse para crear un modelo de voz neste dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 folla}other{{COUNT} follas}}</translation>
@@ -8031,6 +8036,7 @@
 <translation id="8272443605911821513">Fai clic en Extensións no menú Máis ferramentas para xestionar as túas extensións.</translation>
 <translation id="8272786333453048167">Volver permitir</translation>
 <translation id="8273905181216423293">Descargar agora</translation>
+<translation id="827488840488530039">A páxina que queres visitas non puido verificar os teus tíckets de Kerberos</translation>
 <translation id="8274921654076766238">A lupa achega a zona da pantalla na que esteas escribindo</translation>
 <translation id="8274924778568117936">Non apagues nin peches o dispositivo <ph name="DEVICE_TYPE" /> ata que a actualización finalice. O <ph name="DEVICE_TYPE" /> reiniciarase tras finalizar a instalación.</translation>
 <translation id="8275038454117074363">Importar</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index c33be938..954f1977 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -4439,7 +4439,6 @@
 <translation id="4977942889532008999">ઍક્સેસની પુષ્ટિ કરો</translation>
 <translation id="4980805016576257426">આ એક્સટેન્શનમાં માલવેર છે.</translation>
 <translation id="4981449534399733132">તમારા બધા સિંક કરેલા ડિવાઇસ અને તમારા Google એકાઉન્ટમાંથી બ્રાઉઝિંગ ડેટા સાફ કરવા માટે, <ph name="BEGIN_LINK" />સાઇન ઇન કરો<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">કોઈપણ ડિવાઇસ પર તમે જ્યાંથી અધૂરું મૂક્યું હોય, ત્યાંથી શરૂ કરો</translation>
 <translation id="4986706507552097681">શું સિંક કરવું તે હંમેશાં તમે સેટિંગમાં જઈને પસંદ કરી શકો છો. Google તમારા ઇતિહાસના આધારે Search અને અન્ય સેવાઓને મનગમતી બનાવી શકે છે.</translation>
 <translation id="4986728572522335985">સિક્યુરિટી કીના પિન સહિત, તેના પરના બધા ડેટાને આ ડિલીટ કરશે</translation>
 <translation id="4988526792673242964">પેજ</translation>
@@ -4556,7 +4555,6 @@
 <translation id="5097349930204431044">તમે મુલાકાત લો છો તે સાઇટ તમને શું ગમે છે તે નક્કી કરી શકે છે અને પછી જેમ-જેમ તમે બ્રાઉઝ કરવાનું ચાલુ રાખો છો, તેમ-તેમ જાહેરાતો સૂચવી શકે છે</translation>
 <translation id="5097649414558628673">સાધન: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">કર્સર રોકાય ત્યારે ઑટોમૅટિક રીતે ક્લિક કરવાનાં સેટિંગ</translation>
-<translation id="5101683448725092498">તમારી વસ્તુઓનું બૅકઅપ લો</translation>
 <translation id="5101839224773798795">કર્સર રોકાઈ જાય ત્યારે ઑટોમૅટિક રીતે ક્લિક કરો</translation>
 <translation id="5106350808162641062">કાઢી નાખો</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" />નું નિરીક્ષણ Family Link દ્વારા કરવામાં આવે છે. માતાપિતાના નિરીક્ષણમાં સ્કૂલના સંસાધનોનો ઍક્સેસ કરવા માટે, તમે સ્કૂલના એકાઉન્ટ ઉમેરી શકો છો.</translation>
@@ -5123,7 +5121,6 @@
 <translation id="5623842676595125836">લૉગ</translation>
 <translation id="5624120631404540903">પાસવર્ડ્સનું સંચાલન કરો</translation>
 <translation id="5625225435499354052">Google Payમાં ફેરફાર કરો</translation>
-<translation id="5625631605902707678">વિવિધ ડિવાઇસ પર</translation>
 <translation id="5626134646977739690">નામ:</translation>
 <translation id="5627086634964711283">જ્યારે તમે હોમ બટન પર ક્લિક કરો ત્યારે કયું પેજ બતાવવામાં આવે તે તેનું પણ નિયંત્રણ કરે છે.</translation>
 <translation id="5627676517703583263">Chrome વડે સ્માર્ટ બ્રાઉઝ કરો</translation>
@@ -5235,7 +5232,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{તમારી સંસ્થાની અમુક સુરક્ષા પૉલિસીઓનું અનુપાલન આ ડેટા અથવા તમારા ડિવાઇસ દ્વારા કરવામાં આવ્યું નથી. શું ઠીક કરવું જરૂરી રહેશે, તે વિશે તમારા ઍડમિનનો સંપર્ક કરો.}=1{તમારી સંસ્થાની અમુક સુરક્ષા પૉલિસીઓનું અનુપાલન આ ફાઇલ અથવા તમારા ડિવાઇસ દ્વારા કરવામાં આવ્યું નથી. શું ઠીક કરવું જરૂરી રહેશે, તે વિશે તમારા ઍડમિનનો સંપર્ક કરો.}one{તમારી સંસ્થાની અમુક સુરક્ષા પૉલિસીઓનું અનુપાલન આ ફાઇલ દ્વારા કરવામાં આવ્યું નથી. શું ઠીક કરવું જરૂરી રહેશે, તે વિશે તમારા ઍડમિનનો સંપર્ક કરો.}other{તમારી સંસ્થાની અમુક સુરક્ષા પૉલિસીઓનું અનુપાલન આ ફાઇલો દ્વારા કરવામાં આવ્યું નથી. શું ઠીક કરવું જરૂરી રહેશે, તે વિશે તમારા ઍડમિનનો સંપર્ક કરો.}}</translation>
 <translation id="5736796278325406685">કૃપા કરીને એક માન્ય વપરાશકર્તાનામ દાખલ કરો</translation>
 <translation id="5738093759615225354">તમારા કમ્પ્યુટરમાં સાઇન ઇન કરવા, તમારા માટે આ પાસકી જરૂરી છે</translation>
-<translation id="5738329404678738022">સિંક વડે તમારા બુકમાર્ક અને અન્ય બાબતો સ્ટોર કરો</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" />ને સ્કૂલ એકાઉન્ટ ઉમેરવામાં સહાય કરવા માટે સાઇન ઇન કરો</translation>
 <translation id="5739235828260127894">ચકાસણીની રાહ જોઈ રહ્યાં છીએ. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">બહુ મોટું</translation>
@@ -5257,7 +5253,6 @@
 <translation id="5757375109985023827">પ્રીવ્યૂ કરવા માટે કોઈ ટૅબ પસંદ કરો</translation>
 <translation id="5758631781033351321">તમને તમારી વાંચન સૂચિ અહીં મળશે</translation>
 <translation id="5759728514498647443">તમે <ph name="APP_NAME" /> મારફતે છાપવા માટે મોકલેલા દસ્તાવેજો <ph name="APP_NAME" /> દ્વારા વાંચી શકાય છે.</translation>
-<translation id="5760508342220592715">વધુ લાભ માટે સાઇન ઇન કરો</translation>
 <translation id="5762787084360227629">Google એકાઉન્ટની માહિતી દાખલ કરો</translation>
 <translation id="5763751966069581670">કોઈ USB ઉપકરણ મળ્યું નથી</translation>
 <translation id="5764483294734785780">ઑડિયો આ રૂપે સા&amp;ચવો...</translation>
@@ -7793,7 +7788,6 @@
 <translation id="8059417245945632445">&amp;ઉપકરણોની તપાસ કરો</translation>
 <translation id="8059456211585183827">સાચવવા માટે કોઈ પ્રિન્ટર ઉપલબ્ધ નથી.</translation>
 <translation id="8061091456562007989">તેને પાછું બદલો</translation>
-<translation id="8061965471006133016">તમારા પાસવર્ડ માટે વધારાની રક્ષણ અને અન્ય સુવિધાઓ</translation>
 <translation id="8061970399284390013">જોડણી અને વ્યાકરણ ચેક કરવું</translation>
 <translation id="8061991877177392872">એવું લાગી રહ્યું છે કે તમે પહેલેથી જ અન્ય ડિવાઇસ પર તમારા Assistant વડે Voice Matchનું સેટઅપ કર્યું છે. આ ડિવાઇસ પર વૉઇસ મૉડલ બનાવવા માટે, અગાઉના આ બધા રેકોર્ડિંગનો ઉપયોગ કરવામાં આવ્યો હતો.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{કાગળની 1 શીટ}one{કાગળની {COUNT} શીટ}other{કાગળની {COUNT} શીટ}}</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index ff4bcfe9..9f47cad 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">हाइपरटेक्स्ट ट्रांसपोर्ट प्रोटोकॉल (एचटीटीपीएस)</translation>
 <translation id="1059944192885972544">'<ph name="SEARCH_TEXT" />' के लिए, <ph name="NUM" /> टैब मिले</translation>
 <translation id="1060292118287751956">स्क्रीन अपडेट होने की दर तय की जाती है</translation>
+<translation id="1060570945511946595">टिकट मैनेज करें</translation>
 <translation id="1061130374843955397"><ph name="DEVICE_TYPE" /> में आपका स्वागत है</translation>
 <translation id="1061373870045429865">इस लिंक के लिए क्यूआर कोड बनाएं</translation>
 <translation id="1061904396131502319">ब्रेक लेने का समय होने वाला है</translation>
@@ -1127,6 +1128,7 @@
 <translation id="1975841812214822307">निकालें...</translation>
 <translation id="1976150099241323601">सुरक्षा डिवाइस में साइन इन करें</translation>
 <translation id="1977965994116744507">अपने <ph name="DEVICE_TYPE" /> को अनलॉक करने के लिए अपने फ़ोन को पास लाएं.</translation>
+<translation id="1978666928180318515">Bruschetta को हटाएं</translation>
 <translation id="1979095679518582070">इस सुविधा को बंद करने के बाद भी यह डिवाइस, सिस्टम अपडेट, और सुरक्षा जैसी ज़रूरी सेवाएं पाने के लिए जानकारी भेज सकेगा.</translation>
 <translation id="1979280758666859181">आप <ph name="PRODUCT_NAME" /> के पुराने वर्शन वाले चैनल में बदल रहे हैं. चैनल बदलाव तब लागू किया जाएगा जब चैनल का वर्शन आपके डिवाइस पर वर्तमान में इंस्टॉल किए गए वर्शन से मिलान करेगा.</translation>
 <translation id="197989455406964291">केडीसी में सुरक्षित करने का यह तरीका इस्तेमाल नहीं किया जा सकता.</translation>
@@ -1933,6 +1935,7 @@
 <translation id="2672142220933875349">खराब crx फ़ाइल, अनपैक करना विफल.</translation>
 <translation id="2673135533890720193">अपना ब्राउज़िंग इतिहास पढ़ें</translation>
 <translation id="2674764818721168631">बंद है</translation>
+<translation id="2675570801872027281">Bruschetta को हटाने में गड़बड़ी हुई. कृपया फिर से कोशिश करें.</translation>
 <translation id="2676492189600898281">ऑटोमैटिक भरने की सुविधा के बारे में सुझाव/राय भेजें या शिकायत करें</translation>
 <translation id="2678063897982469759">फिर से चालू करें</translation>
 <translation id="2678100101831051676">कास्ट नहीं हो पा रहा है.</translation>
@@ -2931,6 +2934,7 @@
 <translation id="3593965109698325041">प्रमाणपत्र नाम बाध्यताएं</translation>
 <translation id="3596012367874587041">ऐप्लिकेशन की सेटिंग</translation>
 <translation id="3596414637720633074">गुप्त मोड के दौरान तीसरे पक्ष की कुकी को ब्लॉक करें</translation>
+<translation id="3598010454707842106">“Chrome को पसंद के मुताबिक बनाएं” पर क्लिक करें</translation>
 <translation id="3599221874935822507">बढ़ाया गया</translation>
 <translation id="3600051066689725006">वेब अनुरोध की जानकारी</translation>
 <translation id="360180734785106144">उपलब्ध होने पर नई सुविधाएं ऑफ़र कर सकता है</translation>
@@ -3928,6 +3932,7 @@
 <translation id="4497145443434063861">अलग-अलग वाई-फ़ाई नेटवर्क पर PC और Chromecast (जैसे कि 2.4GHz
     बनाम 5GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> बंद हो गया है</translation>
+<translation id="4500647907053779331">चुने गए टेक्स्ट का <ph name="LANGUAGE" /> में अनुवाद करें</translation>
 <translation id="450099669180426158">'विस्मयादिबोधक चिह्न' आइकॉन</translation>
 <translation id="4501530680793980440">हटाने की पुष्टि करें</translation>
 <translation id="4502423230170890588">इस डिवाइस से हटाएं</translation>
@@ -3958,6 +3963,7 @@
 <translation id="4522890784888918985">बच्चों के खातों से वीएम सॉफ़्टवेयर इस्तेमाल नहीं किया जा सकता</translation>
 <translation id="4523876148417776526">साइटों की सूची वाली एक्सएमएल फ़ाइलें अभी फ़ेच नहीं हुई हैं.</translation>
 <translation id="4524832533047962394">दिया गया नामांकन मोड ऑपरेटिंग सिस्‍टम के इस वर्शन पर काम नहीं करता है. कृपया पक्का करें कि आप सबसे नया वर्शन चला रहे हैं.</translation>
+<translation id="4526051299161934899">सेव किए गए छिपे टैब ग्रुप</translation>
 <translation id="4526853756266614740">थीम को तुरंत लागू करने के लिए कोई इमेज चुनें</translation>
 <translation id="452750746583162491">सिंक किए गए डेटा की समीक्षा करें</translation>
 <translation id="4527929807707405172">उलटी दिशा में स्क्रोल करने की सुविधा चालू करें. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation>
@@ -4282,6 +4288,7 @@
 <translation id="4824037980212326045">Linux का बैक अप लेना और बहाल करना</translation>
 <translation id="4824958205181053313">सिंक करना रद्द करें?</translation>
 <translation id="4825532258163983651">पासवर्ड मिटाया नहीं जा सकता</translation>
+<translation id="4827283332383516812">कार्ड मिटाएं</translation>
 <translation id="4827675678516992122">जोड़ा नहीं जा सका</translation>
 <translation id="4827784381479890589">Chrome ब्राउज़र में स्पेलिंग जांच की बेहतर सुविधा (स्पेलिंग के सुझावों के लिए Google को टेक्स्ट भेजा जाता है)</translation>
 <translation id="4827904420700932487">इस इमेज के लिए क्यूआर कोड बनाएं</translation>
@@ -4457,7 +4464,6 @@
 <translation id="4977942889532008999">एक्सेस के लिए दोबारा पूछें</translation>
 <translation id="4980805016576257426">इस एक्सटेंशन में मैलवेयर है.</translation>
 <translation id="4981449534399733132">अपने सभी सिंक किए हुए डिवाइस और अपने 'Google खाते' से ब्राउज़िंग डेटा साफ़ करने के लिए, <ph name="BEGIN_LINK" />साइन इन करें<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">किसी भी डिवाइस पर, अपने काम को वहीं से शुरू करें जहां आपने उसे छोड़ा था</translation>
 <translation id="4986706507552097681">जब चाहें, तब सेटिंग में जाकर यह चुनें कि क्या सिंक किया जाना चाहिए और क्या नहीं. Google आपके इतिहास के आधार पर, Search और अन्य सेवाओं को आपकी पसंद के मुताबिक बना सकता है.</translation>
 <translation id="4986728572522335985">ऐसा करने से सुरक्षा कुंजी का पिन और उस पर मौजूद पूरा डेटा मिट जाएगा</translation>
 <translation id="4988526792673242964">पेज</translation>
@@ -4574,7 +4580,6 @@
 <translation id="5097349930204431044">विज़िट की गई साइटें आपकी दिलचस्पी का पता लगा सकती हैं. इसके बाद, ब्राउज़ करते समय नई साइटों पर आपकी दिलचस्पी के हिसाब से विज्ञापन दिखाए जा सकते हैं</translation>
 <translation id="5097649414558628673">टूल: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">कर्सर के रुकने पर अपने-आप क्लिक होगा</translation>
-<translation id="5101683448725092498">अपने कॉन्टेंट का बैक अप लें</translation>
 <translation id="5101839224773798795">कर्सर के रुक जाने पर अपने आप क्लिक होने की सुविधा</translation>
 <translation id="5106350808162641062">हटाएं</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> को Family Link से मैनेज किया जाता है. स्कूल के संसाधनों को माता-पिता की निगरानी में ऐक्सेस करने के लिए, आप स्कूल वाले खाते जोड़ सकते हैं.</translation>
@@ -5140,7 +5145,6 @@
 <translation id="5623842676595125836">लॉग</translation>
 <translation id="5624120631404540903">पासवर्ड प्रबंधित करें</translation>
 <translation id="5625225435499354052">Google Pay पर इससे जुड़ी जानकारी में बदलाव करें</translation>
-<translation id="5625631605902707678">सभी डिवाइसों पर</translation>
 <translation id="5626134646977739690">नाम:</translation>
 <translation id="5627086634964711283">इससे यह भी नियंत्रित होता है कि जब आप होम बटन पर क्लिक करते हैं तब कौन सा पेज दिखाया जाए.</translation>
 <translation id="5627676517703583263">Chrome के ज़रिए स्मार्ट तरीके से ब्राउज़ करें</translation>
@@ -5252,7 +5256,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{यह डेटा या आपका डिवाइस, आपके संगठन की कुछ सुरक्षा नीतियों का पालन नहीं करता. किन समस्याओं को ठीक करना है, इसके बारे में अपने एडमिन से संपर्क करें.}=1{यह फ़ाइल या आपका डिवाइस, आपके संगठन की सुरक्षा नीतियों का पालन नहीं करता. किन समस्याओं को ठीक करना है, इसके बारे में अपने एडमिन से संपर्क करें.}one{यह फ़ाइल आपके संगठन की सुरक्षा नीतियों का पालन नहीं करती. किन समस्याओं को ठीक करना है, इसके बारे में अपने एडमिन से संपर्क करें.}other{ये फ़ाइलें आपके संगठन की सुरक्षा नीतियों का पालन नहीं करतीं. किन समस्याओं को ठीक करना है, इसके बारे में अपने एडमिन से संपर्क करें.}}</translation>
 <translation id="5736796278325406685">कृपया कोई मान्य उपयोगकर्ता नाम डालें</translation>
 <translation id="5738093759615225354">आपको अपने कंप्यूटर में साइन इन करने के लिए, इस पासवर्ड की ज़रूरत है</translation>
-<translation id="5738329404678738022">सिंक करने की सुविधा की मदद से, अपने बुकमार्क वगैरह सेव करें</translation>
 <translation id="5739017626473506901">साइन इन करके, स्कूल वाला खाता जोड़ने में <ph name="USER_NAME" /> की मदद करें</translation>
 <translation id="5739235828260127894">पुष्टि होने का इंतज़ार किया जा रहा है. <ph name="LINK_BEGIN" />ज़्यादा जानें<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">बहुत बड़ा</translation>
@@ -5274,7 +5277,6 @@
 <translation id="5757375109985023827">झलक देखने के लिए, कोई टैब चुनें</translation>
 <translation id="5758631781033351321">आपको अपनी, पढ़ने की चीज़ों की सूची यहां मिलेगी</translation>
 <translation id="5759728514498647443">  <ph name="APP_NAME" /> के माध्‍यम से प्रिंट करने के लिए भेजे जाने वाले दस्‍तावेज़ <ph name="APP_NAME" /> द्वारा पढ़े जा सकते हैं.</translation>
-<translation id="5760508342220592715">ज़्यादा फ़ायदे पाने के लिए साइन इन करें</translation>
 <translation id="5762787084360227629">Google खाते की जानकारी डालें</translation>
 <translation id="5763751966069581670">कोई USB डिवाइस नहीं मि‍ला</translation>
 <translation id="5764483294734785780">इस रूप में ऑडियो स&amp;हेजें...</translation>
@@ -5310,6 +5312,7 @@
 <translation id="5792295754950501287"><ph name="CARD_DESCRIPTION" /> से जुड़ी और कार्रवाइयां</translation>
 <translation id="5792728279623964091">'पावर बटन' पर टैप करें</translation>
 <translation id="5792874008054171483"><ph name="SITE_NAME" /> से जुड़ी ज़्यादा कार्रवाइयां</translation>
+<translation id="5793317771769868848">इस डिवाइस से, पेमेंट का यह तरीका मिटा दिया जाएगा</translation>
 <translation id="5793339252089865437">अगर आप अपने मोबाइल नेटवर्क पर अपडेट डाउनलोड करते हैं, तो इसकी वजह से आपको ज़्यादा शुल्क का भुगतान करना पड़ सकता है.</translation>
 <translation id="5793420564274426163">दूसरे डिवाइस से जोड़ने की पुष्टि</translation>
 <translation id="5793430094159150686">आपका पासवर्ड बदल गया है. अपना स्थानीय डेटा वापस लाने के लिए, आपको अपना पुराना पासवर्ड डालना होगा.</translation>
@@ -5745,6 +5748,7 @@
 <translation id="617213288191670920">कोई भाषा नहीं जोड़ी गई</translation>
 <translation id="6173623053897475761">अपना पिन दोबारा लिखें</translation>
 <translation id="6175314957787328458">Microsoft Domain GUID</translation>
+<translation id="6177412385419165772">हटाया जा रहा है...</translation>
 <translation id="6178664161104547336">किसी प्रमाणपत्र को चुनें</translation>
 <translation id="6178682841350631965">आपने साइन इन करने के लिए जो डेटा डाला है, वह अपडेट हो गया</translation>
 <translation id="6180510783007738939">लाइन खींचने का टूल</translation>
@@ -6223,6 +6227,7 @@
 <translation id="6619801788773578757">किओस्क ऐप्लिकेशन जोड़ें</translation>
 <translation id="6619990499523117484">अपने पिन की पुष्टि करें</translation>
 <translation id="6620254580880484313">कंटेनर का नाम</translation>
+<translation id="6620927550847360014">क्या आपको <ph name="DEVICE_TYPE" /> से Bruschetta को हटाना है?</translation>
 <translation id="6621391692573306628">इस टैब को किसी दूसरे डिवाइस पर भेजने के लिए, दोनों डिवाइसों पर Chrome में साइन इन करें</translation>
 <translation id="6622980291894852883">छवियों को अवरोधित करना जारी रखें</translation>
 <translation id="6624036901798307345">टैबलेट मोड में, हर टैब के थंबनेल दिखाने वाला नया टैब बार खोलने के लिए, टैब काउंटर टूलबार बटन पर टैप करें.</translation>
@@ -6440,6 +6445,7 @@
 <translation id="6818547713623251698">अपने फ़ोन में मौजूद फ़ोटो, मीडिया, सूचनाएं, और ऐप्लिकेशन देखें</translation>
 <translation id="6818802132960437751">वायरस से सुरक्षित रखने वाला सॉफ़्टवेयर पहले से मौजूद है</translation>
 <translation id="6818920801736417483">क्या आपको पासवर्ड सेव करने हैं?</translation>
+<translation id="6820079682647046800">Kerberos की पुष्टि नहीं की जा सकी</translation>
 <translation id="6823174134746916417">टचपैड पर क्लिक-के-लिए-टैप</translation>
 <translation id="6824564591481349393">&amp;ईमेल पते की कॉपी बनाएं</translation>
 <translation id="6824584962142919697">&amp;एलिमेंट जाँचें</translation>
@@ -6594,6 +6600,7 @@
 <translation id="6955698182324067397">ChromeOS की डीबग करने वाली सुविधाएं चालू करने पर, एसएसएचडी डीमन का सेट अप हो जाएगा और यूएसबी ड्राइव से बूट करना चालू हो जाएगा.</translation>
 <translation id="6955893174999506273">एक और स्विच असाइन करें</translation>
 <translation id="6957044667612803194">इस सुरक्षा कुंजी में पिन की सुविधा नहीं है</translation>
+<translation id="6960133692707095572">टिकट के बिना जाएं</translation>
 <translation id="6960507406838246615">Linux अपडेट करना ज़रूरी है</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> स्पीच फ़ाइलें डाउनलोड नहीं की जा सकीं. बाद में, डाउनलोड करने की कोशिश की जाएगी. फ़ाइल पूरी डाउनलोड होने तक, स्पीच को प्रोसेसिंग के लिए Google के पास भेजा जाता है.</translation>
 <translation id="696103774840402661"><ph name="DEVICE_TYPE" /> से सभी उपयोगकर्ताओं की सभी फ़ाइलें और स्थानीय डेटा हमेशा के लिए मिटा दिया गया है.</translation>
@@ -7286,6 +7293,7 @@
 <translation id="7609148976235050828">कृपया इंटरनेट से कनेक्ट करें और फिर से कोशिश करें.</translation>
 <translation id="7612401678989660900">ऐसे सभी ऐप्लिकेशन और वेबसाइटों को माइक्रोफ़ोन का ऐक्सेस दें जिनके पास माइक्रोफ़ोन इस्तेमाल करने की अनुमति है</translation>
 <translation id="7612655942094160088">कनेक्ट किए गए फ़ोन की सुविधाएं चालू करें.</translation>
+<translation id="7612989789287281429">साइन इन किया जा रहा है…</translation>
 <translation id="7614260613810441905">जब कोई वेबसाइट आपके डिवाइस की किसी फ़ाइल या फ़ोल्डर में बदलाव करना चाहे, तो इसके लिए पूछें (सुझाया गया)</translation>
 <translation id="761530003705945209">'Google डिस्क' में बैक अप लें. अपना डेटा आसानी से वापस लाएं या किसी भी समय डिवाइस बदलें. आपके बैक अप में ऐप्लिकेशन डेटा शामिल होता है. आपके डिवाइस के डेटा का बैक अप Google पर अपलोड हो गया है. साथ ही, उसे Google खाते के पासवर्ड से एन्क्रिप्ट (सुरक्षित) कर दिया गया है.</translation>
 <translation id="7615365294369022248">खाता जोड़ने के दौरान कोई गड़बड़ी हुई</translation>
@@ -7814,7 +7822,6 @@
 <translation id="8059417245945632445">&amp;उपकरणों का परीक्षण करें</translation>
 <translation id="8059456211585183827">सेव करने के लिए कोई भी प्रिंटर उपलब्ध नहीं है.</translation>
 <translation id="8061091456562007989">पहले जैसा कर दें</translation>
-<translation id="8061965471006133016">आपके पासवर्ड वगैरह के लिए ज़्यादा सुरक्षा</translation>
 <translation id="8061970399284390013">स्पेलिंग और व्याकरण की जांच</translation>
 <translation id="8061991877177392872">ऐसा लगता है कि आपने पहले ही किसी दूसरे डिवाइस पर, Assistant के साथ वॉइस मैच की सुविधा को सेट अप कर लिया है. इस डिवाइस पर आवाज़ का नमूना बनाने के लिए, इन पुरानी रिकॉर्डिंग का इस्तेमाल किया गया है.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{काग़ज़ की 1 शीट}one{काग़ज़ की {COUNT} शीट}other{काग़ज़ की {COUNT} शीट}}</translation>
@@ -8055,6 +8062,7 @@
 <translation id="8272443605911821513">मेन्यू में "ज़्यादा टूल" एक्सटेंशन पर क्लिक करके अपने एक्सटेंशन प्रबंधित करें.</translation>
 <translation id="8272786333453048167">फिर से अनुमति दें</translation>
 <translation id="8273905181216423293">अभी डाउनलोड करें</translation>
+<translation id="827488840488530039">आपको जिस पेज पर जाना है वह आपके Kerberos टिकट की पुष्टि नहीं कर सका</translation>
 <translation id="8274921654076766238">फ़ुल-स्क्रीन पर कॉन्टेंट को बड़ा दिखाने की सुविधा से, स्क्रीन को कीबोर्ड के फ़ोकस के हिसाब से बदलना</translation>
 <translation id="8274924778568117936">अपडेट पूरा होने तक अपना <ph name="DEVICE_TYPE" /> बंद न करें. इंस्टॉल हो जाने के बाद आपका <ph name="DEVICE_TYPE" /> रीस्टार्ट होगा.</translation>
 <translation id="8275038454117074363">आयात करें</translation>
@@ -8501,6 +8509,7 @@
 <translation id="869884720829132584">ऐप्लिकेशन मेन्यू</translation>
 <translation id="869891660844655955">खत्म होने की तारीख</translation>
 <translation id="8699188901396699995"><ph name="PRINTER_NAME" /> के लिए पीपीडी</translation>
+<translation id="8702278591052316269">सेव किए गए छिपे टैब ग्रुप वाला मेन्यू</translation>
 <translation id="8702825062053163569">आपका <ph name="DEVICE_TYPE" /> लॉक हो गया था.</translation>
 <translation id="8703346390800944767">विज्ञापन छोड़ें</translation>
 <translation id="8705331520020532516">क्रम संख्या</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 2ca243ae..c319e49 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Protokol za prijenos hiperteksta (HTTPS)</translation>
 <translation id="1059944192885972544">Pronađenih kartica za "<ph name="SEARCH_TEXT" />": <ph name="NUM" /></translation>
 <translation id="1060292118287751956">Određuje učestalost kojom se zaslon ažurira</translation>
+<translation id="1060570945511946595">Upravljanje ulaznicama</translation>
 <translation id="1061130374843955397">Dobro došli na <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Izradi QR kôd za ovu vezu</translation>
 <translation id="1061904396131502319">Ubrzo je vrijeme za pauzu</translation>
@@ -1116,6 +1117,7 @@
 <translation id="1975841812214822307">Ukloni...</translation>
 <translation id="1976150099241323601">Prijavi se na sigurnosni uređaj</translation>
 <translation id="1977965994116744507">Približite telefon da biste otključali <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Ukloni Bruschettu</translation>
 <translation id="1979095679518582070">Isključivanje te značajke ne utječe na mogućnost uređaja da šalje informacije koje su potrebne za ključne usluge kao što su ažuriranja sustava i sigurnost.</translation>
 <translation id="1979280758666859181">Prelazite na kanal sa starijom verzijom usluge <ph name="PRODUCT_NAME" />. Promjena kanala primijenit će se kada se verzija kanala bude podudarala s verzijom koja je trenutačno instalirana na vašem uređaju.</translation>
 <translation id="197989455406964291">KDC ne podržava vrstu enkripcije</translation>
@@ -1625,6 +1627,7 @@
 <translation id="2408018932941436077">Spremanje kartice</translation>
 <translation id="2408955596600435184">Unesite PIN</translation>
 <translation id="2409268599591722235">Započnimo</translation>
+<translation id="2409709393952490731">Upotrijebite telefon ili tablet</translation>
 <translation id="2410079346590497630">Pojedinosti o međuverziji</translation>
 <translation id="2410298923485357543">Koristi prirodni glas kad je uređaj povezan s internetom</translation>
 <translation id="2410754283952462441">Odabir računa</translation>
@@ -1920,6 +1923,7 @@
 <translation id="2672142220933875349">Neispravna crx datoteka. Raspakiravanje nije uspjelo.</translation>
 <translation id="2673135533890720193">čitati vašu povijest pregledavanja</translation>
 <translation id="2674764818721168631">Isključeno</translation>
+<translation id="2675570801872027281">Pogreška pri uklanjanju Bruschette. Pokušajte opet.</translation>
 <translation id="2676492189600898281">Slanje povratnih informacija za automatsko popunjavanje</translation>
 <translation id="2678063897982469759">Ponovo omogući</translation>
 <translation id="2678100101831051676">Emitiranje nije uspjelo.</translation>
@@ -2918,6 +2922,7 @@
 <translation id="3593965109698325041">Ograničenja naziva certifikata</translation>
 <translation id="3596012367874587041">Postavke aplikacije</translation>
 <translation id="3596414637720633074">Blokiranje kolačića trećih strana u anonimnom načinu</translation>
+<translation id="3598010454707842106">Kliknite opciju Prilagodi Chrome</translation>
 <translation id="3599221874935822507">Izdignuto</translation>
 <translation id="3600051066689725006">Podaci o web-zahtjevu</translation>
 <translation id="360180734785106144">ponuditi nove značajke kad postanu dostupne</translation>
@@ -3771,6 +3776,7 @@
 <translation id="4369215744064167350">Zahtjev za web-lokaciju odobren</translation>
 <translation id="4369735607080757018">Ograničene vrste podataka dijele se između web-lokacija radi mjerenja izvedbe oglasa, kao što je doba dana kad vam se oglas prikazao</translation>
 <translation id="4370975561335139969">Unijeli ste e-adresu i zaporku koje se ne podudaraju</translation>
+<translation id="4374805630006466253">Upotrijebite drugi telefon ili tablet</translation>
 <translation id="4374831787438678295">Program za instalaciju Linuxa</translation>
 <translation id="4375035964737468845">otvoriti preuzete datoteke</translation>
 <translation id="4376226992615520204">Lokacija je isključena</translation>
@@ -3915,6 +3921,7 @@
 <translation id="4495419450179050807">Ne prikazuj na ovoj stranici</translation>
 <translation id="4497145443434063861">PC i Chromecast na različitim Wi-Fi mrežama (primjerice 2,4 GHz i 5 GHz)</translation>
 <translation id="4500114933761911433">Srušio se dodatak <ph name="PLUGIN_NAME" /></translation>
+<translation id="4500647907053779331">&amp;Prevedi odabir na <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Ikona uskličnika</translation>
 <translation id="4501530680793980440">Potvrda uklanjanja</translation>
 <translation id="4502423230170890588">Ukloni s ovog uređaja</translation>
@@ -3945,6 +3952,7 @@
 <translation id="4522890784888918985">Podređeni računi nisu podržani</translation>
 <translation id="4523876148417776526">XML popisi web-lokacija još nisu dohvaćeni.</translation>
 <translation id="4524832533047962394">Ova verzija operativnog sustava ne podržava uneseni način prijave. Provjerite upotrebljavate li najnoviju verziju.</translation>
+<translation id="4526051299161934899">Skrivene spremljene grupe kartica</translation>
 <translation id="4526853756266614740">Odaberite sliku da biste odmah primijenili temu</translation>
 <translation id="452750746583162491">Pregledajte svoje sinkronizirane podatke</translation>
 <translation id="4527929807707405172">Omogući obrnuto pomicanje. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
@@ -4444,7 +4452,6 @@
 <translation id="4977942889532008999">Potvrdite pristup</translation>
 <translation id="4980805016576257426">Proširenje sadrži zlonamjerni softver.</translation>
 <translation id="4981449534399733132">Da biste izbrisali podatke o pregledavanju sa svih svojih sinkroniziranih uređaja i svojeg Google računa, <ph name="BEGIN_LINK" />prijavite se<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Nastavite tamo gdje ste stali na bilo kojem uređaju</translation>
 <translation id="4986706507552097681">U postavkama možete odabrati što će se sinkronizirati. Google može personalizirati Pretraživanje i druge usluge na temelju vaše povijesti.</translation>
 <translation id="4986728572522335985">Time će se izbrisati svi podaci na sigurnosnom ključu, uključujući PIN</translation>
 <translation id="4988526792673242964">Stranice</translation>
@@ -4561,7 +4568,6 @@
 <translation id="5097349930204431044">Web-lokacije koje posjećujete mogu utvrditi što vam se sviđa, a zatim predlagati oglase dok pregledavate</translation>
 <translation id="5097649414558628673">Alat: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automatski klik prilikom zaustavljanja pokazivača</translation>
-<translation id="5101683448725092498">Sigurnosno kopiranje sadržaja</translation>
 <translation id="5101839224773798795">Automatski klikni kada se pokazivač zaustavi</translation>
 <translation id="5106350808162641062">Ukloni</translation>
 <translation id="510695978163689362">Račun <ph name="USER_EMAIL" /> pod nadzorom je Family Linka. Možeš dodati školske račune ako želiš pristupati školskim resursima uz roditeljski nadzor.</translation>
@@ -5125,7 +5131,6 @@
 <translation id="5623842676595125836">Zapisnik</translation>
 <translation id="5624120631404540903">Upravljanje zaporkama</translation>
 <translation id="5625225435499354052">Uredite na Google Payu</translation>
-<translation id="5625631605902707678">Na različitim uređajima</translation>
 <translation id="5626134646977739690">Naziv:</translation>
 <translation id="5627086634964711283">Upravlja i time koja se stranica prikazuje kada se klikne gumb Početna.</translation>
 <translation id="5627676517703583263">Pametno pregledavajte uz Chrome</translation>
@@ -5237,7 +5242,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Ovi podaci ili vaš uređaj ne zadovoljavaju neka sigurnosna pravila vaše organizacije. Provjerite s administratorom što se treba ispraviti.}=1{Ova datoteka ili vaš uređaj ne zadovoljavaju neka sigurnosna pravila vaše organizacije. Provjerite s administratorom što se treba ispraviti.}one{Ove datoteke ne zadovoljavaju neka sigurnosna pravila vaše organizacije. Provjerite s administratorom što se treba ispraviti.}few{Ove datoteke ne zadovoljavaju neka sigurnosna pravila vaše organizacije. Provjerite s administratorom što se treba ispraviti.}other{Ove datoteke ne zadovoljavaju neka sigurnosna pravila vaše organizacije. Provjerite s administratorom što se treba ispraviti.}}</translation>
 <translation id="5736796278325406685">Unesite važeće korisničko ime</translation>
 <translation id="5738093759615225354">Taj pristupni kôd potreban je za prijavu na računalo</translation>
-<translation id="5738329404678738022">Spremanje oznaka i ostalog pomoću sinkronizacije</translation>
 <translation id="5739017626473506901">Prijavite se tako da <ph name="USER_NAME" /> može dodati školski račun</translation>
 <translation id="5739235828260127894">Čeka se potvrda. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Vrlo velik</translation>
@@ -5259,7 +5263,6 @@
 <translation id="5757375109985023827">Odaberite karticu za pregled</translation>
 <translation id="5758631781033351321">Ovdje ćete pronaći svoj popis za čitanje</translation>
 <translation id="5759728514498647443">Dokumente koje šaljete za ispis putem aplikacije <ph name="APP_NAME" /> može čitati aplikacija <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Prijavite se za dodatne pogodnosti</translation>
 <translation id="5762787084360227629">Unos podataka o Google računu</translation>
 <translation id="5763751966069581670">Nije pronađen nijedan USB uređaj</translation>
 <translation id="5764483294734785780">Sp&amp;remi zvučni zapis kao...</translation>
@@ -5729,6 +5732,7 @@
 <translation id="617213288191670920">Nije dodan nijedan jezik</translation>
 <translation id="6173623053897475761">Ponovo unesite PIN</translation>
 <translation id="6175314957787328458">Microsoft Domain GUID</translation>
+<translation id="6177412385419165772">Uklanjanje...</translation>
 <translation id="6178664161104547336">Odabir certifikata</translation>
 <translation id="6178682841350631965">Podaci za prijavu su ažurirani</translation>
 <translation id="6180510783007738939">Alat za crte</translation>
@@ -6209,6 +6213,7 @@
 <translation id="6619801788773578757">Dodaj aplikaciju kioska</translation>
 <translation id="6619990499523117484">Potvrdite PIN</translation>
 <translation id="6620254580880484313">Naziv spremnika</translation>
+<translation id="6620927550847360014">Želite li ukloniti Bruchettu s uređaja <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Da biste poslali ovu karticu na drugi uređaj, prijavite se na Chrome na oba uređaja</translation>
 <translation id="6622980291894852883">Nastavi blokirati slike</translation>
 <translation id="6624036901798307345">U načinu rada tableta dodirnite na gumb alatne trake brojača kartica da biste otvorili novu vrpcu kartica koja prikazuje minijature svake kartice.</translation>
@@ -6426,6 +6431,7 @@
 <translation id="6818547713623251698">Pregled fotografija, medija, obavijesti i aplikacija s vašeg telefona</translation>
 <translation id="6818802132960437751">Ugrađena zaštita od virusa</translation>
 <translation id="6818920801736417483">Spremiti zaporke?</translation>
+<translation id="6820079682647046800">Kerberos autentifikacija nije uspjela</translation>
 <translation id="6823174134746916417">Dodir za klik na dodirnoj podlozi</translation>
 <translation id="6824564591481349393">Kopiraj &amp;adresu e-pošte</translation>
 <translation id="6824584962142919697">&amp;Provjeri elemente</translation>
@@ -6580,6 +6586,7 @@
 <translation id="6955698182324067397">Omogućujete značajke za otklanjanje pogrešaka Chrome OS-a koje će postaviti sshd daemon i omogućiti pokretanje s USB diskova.</translation>
 <translation id="6955893174999506273">Dodijeli još jedan prekidač</translation>
 <translation id="6957044667612803194">Ovaj sigurnosni ključ ne podržava PIN-ove</translation>
+<translation id="6960133692707095572">Posjet bez ulaznice</translation>
 <translation id="6960507406838246615">Potrebno je ažurirati Linux</translation>
 <translation id="6960648667961844909">Nije uspjelo preuzimanje govornih datoteka za <ph name="LANGUAGE" />. Kasnije ćemo pokušati preuzimanje. Govor se šalje Googleu radi obrade dok se preuzimanje ne dovrši.</translation>
 <translation id="696103774840402661">Sve datoteke i svi lokalni podaci za sve korisnike na ovom uređaju <ph name="DEVICE_TYPE" /> trajno su izbrisani.</translation>
@@ -7801,7 +7808,6 @@
 <translation id="8059417245945632445">&amp;Provjeri uređaje</translation>
 <translation id="8059456211585183827">Nema dostupnih pisača za spremanje.</translation>
 <translation id="8061091456562007989">Poništi izmjene</translation>
-<translation id="8061965471006133016">Dodatna zaštita vaših zaporki i još mnogo više</translation>
 <translation id="8061970399284390013">Provjera pravopisa i gramatike</translation>
 <translation id="8061991877177392872">Čini se da ste već postavili Voice Match za svojeg Asistenta na nekom drugom uređaju. Te su snimke iskorištene za izradu glasovnog modela na ovom uređaju.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{Jedan list papira}one{{COUNT} list papira}few{{COUNT} lista papira}other{{COUNT} listova papira}}</translation>
@@ -8042,6 +8048,7 @@
 <translation id="8272443605911821513">Upravljajte proširenjima klikom na Proširenja u izborniku "Više alata".</translation>
 <translation id="8272786333453048167">Dopustite ponovo</translation>
 <translation id="8273905181216423293">Preuzmi odmah</translation>
+<translation id="827488840488530039">Stranica koju pokušavate posjetiti nije mogla potvrditi vaše Kerberosove ulaznice</translation>
 <translation id="8274921654076766238">Povećalo prati fokus na tipkovnici</translation>
 <translation id="8274924778568117936">Ne isključujte i ne zatvarajte uređaj <ph name="DEVICE_TYPE" /> dok ažuriranje ne završi. Uređaj <ph name="DEVICE_TYPE" /> ponovo će se pokrenuti kada instaliranje završi.</translation>
 <translation id="8275038454117074363">Uvezi</translation>
@@ -8488,6 +8495,7 @@
 <translation id="869884720829132584">Izbornik aplikacija</translation>
 <translation id="869891660844655955">Datum isteka</translation>
 <translation id="8699188901396699995">PPD za pisač <ph name="PRINTER_NAME" /></translation>
+<translation id="8702278591052316269">Izbornik koji sadrži skrivene spremljene grupe kartica</translation>
 <translation id="8702825062053163569">Uređaj <ph name="DEVICE_TYPE" /> je zaključan.</translation>
 <translation id="8703346390800944767">Preskočite oglas</translation>
 <translation id="8705331520020532516">Serijski broj</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 318ae00..78489841 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transfer Protocol Secure (HTTPS)</translation>
 <translation id="1059944192885972544"><ph name="NUM" /> lap található a következőre: „<ph name="SEARCH_TEXT" />”</translation>
 <translation id="1060292118287751956">Meghatározza a képernyő frissítési gyakoriságát</translation>
+<translation id="1060570945511946595">Jegyek kezelése</translation>
 <translation id="1061130374843955397">Üdvözli a(z) <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">QR-kód létrehozása ehhez a linkhez</translation>
 <translation id="1061904396131502319">Lassan ideje szünetet tartani</translation>
@@ -1125,6 +1126,7 @@
 <translation id="1975841812214822307">Eltávolítás…</translation>
 <translation id="1976150099241323601">Bejelentkezés a biztonságos eszközre</translation>
 <translation id="1977965994116744507">Tegye közelebb a telefonját a(z) <ph name="DEVICE_TYPE" /> zárolásának feloldásához.</translation>
+<translation id="1978666928180318515">Bruschetta eltávolítása</translation>
 <translation id="1979095679518582070">A funkció kikapcsolása nem korlátozza ezt az eszközt abban, hogy elküldje az alapvető fontosságú szolgáltatásokkal (pl. a rendszerfrissítésekkel és -biztonsággal) kapcsolatos információkat.</translation>
 <translation id="1979280758666859181">A(z) <ph name="PRODUCT_NAME" /> egy régebbi verziójával vált csatornát. A csatornamódosítás akkor lép érvénybe, amikor a csatorna verziószáma megegyezik az eszközön jelenleg telepített verziószámmal.</translation>
 <translation id="197989455406964291">A KDC nem támogatja a titkosítástípust</translation>
@@ -1931,6 +1933,7 @@
 <translation id="2672142220933875349">Hibás crx-fájl, a kicsomagolás sikertelen.</translation>
 <translation id="2673135533890720193">A böngészési előzmények olvasása</translation>
 <translation id="2674764818721168631">Ki</translation>
+<translation id="2675570801872027281">Hiba történt a Bruschetta eltávolításakor. Próbálkozzon újra.</translation>
 <translation id="2676492189600898281">Visszajelzés az automatikus kitöltésről</translation>
 <translation id="2678063897982469759">Újraengedélyezés</translation>
 <translation id="2678100101831051676">Átküldés sikertelen.</translation>
@@ -2929,6 +2932,7 @@
 <translation id="3593965109698325041">Tanúsítvány nevének megkötései</translation>
 <translation id="3596012367874587041">Alkalmazásbeállítások</translation>
 <translation id="3596414637720633074">Harmadik felektől származó cookie-k letiltása Inkognitó módban</translation>
+<translation id="3598010454707842106">Kattintson „A Chrome személyre szabása” lehetőségre</translation>
 <translation id="3599221874935822507">Megemelt</translation>
 <translation id="3600051066689725006">Internetes kérés adatai</translation>
 <translation id="360180734785106144">Értesítés az újonnan hozzáférhetővé vált funkciókról</translation>
@@ -3926,6 +3930,7 @@
 <translation id="4497145443434063861">A számítógép és a Chromecast különböző Wi-Fi-hálózatokon van (pl. 2,4 GHz
     és 5 GHz)</translation>
 <translation id="4500114933761911433">A(z) <ph name="PLUGIN_NAME" /> összeomlott</translation>
+<translation id="4500647907053779331">&amp;Kijelölés fordítása <ph name="LANGUAGE" /> nyelvre</translation>
 <translation id="450099669180426158">Felkiáltójel ikon</translation>
 <translation id="4501530680793980440">Eltávolítás megerősítése</translation>
 <translation id="4502423230170890588">Eltávolítás az eszközről</translation>
@@ -3956,6 +3961,7 @@
 <translation id="4522890784888918985">A gyermekfiókok nem támogatottak</translation>
 <translation id="4523876148417776526">Az XML-webhelylistákat még nem töltötte be a rendszer.</translation>
 <translation id="4524832533047962394">Az operációs rendszer jelen verziója nem támogatja a kínált regisztrációs módot. Kérjük, győződjön meg arról, hogy a legújabb verziót használja.</translation>
+<translation id="4526051299161934899">Elrejtett, mentett lapcsoportok</translation>
 <translation id="4526853756266614740">Válasszon képet a téma azonnali alkalmazásához</translation>
 <translation id="452750746583162491">A szinkronizált adatok áttekintése</translation>
 <translation id="4527929807707405172">A fordított görgetés engedélyezése. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
@@ -4280,6 +4286,7 @@
 <translation id="4824037980212326045">Biztonsági mentés és helyreállítás Linuxon</translation>
 <translation id="4824958205181053313">Megszakítja a szinkronizálást?</translation>
 <translation id="4825532258163983651">Nem sikerült törölni az azonosítókulcsot</translation>
+<translation id="4827283332383516812">Kártya törlése</translation>
 <translation id="4827675678516992122">Nem sikerült csatlakozni</translation>
 <translation id="4827784381479890589">Továbbfejlesztett helyesírás-ellenőrzés a Chrome böngészőben (a rendszer elküldi a szöveget a Google-nak helyesírási javaslatokért)</translation>
 <translation id="4827904420700932487">QR-kód létrehozása ehhez a képhez</translation>
@@ -4455,7 +4462,6 @@
 <translation id="4977942889532008999">Hozzáférés megerősítése</translation>
 <translation id="4980805016576257426">Ez a bővítmény rosszindulatú programot tartalmaz.</translation>
 <translation id="4981449534399733132">Ha az összes szinkronizált eszközéről és a Google-fiókjából is törölni szeretné böngészési adatait, <ph name="BEGIN_LINK" />jelentkezzen be<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Bármelyik eszközön ott folytathatja, ahol abbahagyta</translation>
 <translation id="4986706507552097681">A beállítások között bármikor módosíthatja a szinkronizálni kívánt elemeket. A Google az Ön előzményei alapján személyre szabhatja a Keresőt és más szolgáltatásokat.</translation>
 <translation id="4986728572522335985">Ezzel törli a biztonsági kulcson tárolt összes adatot, köztük a PIN-kódot is</translation>
 <translation id="4988526792673242964">Oldal</translation>
@@ -4572,7 +4578,6 @@
 <translation id="5097349930204431044">A felkeresett webhelyek megállapíthatják, hogy mi tetszik Önnek, majd hirdetéseket javasolhatnak böngészés közben.</translation>
 <translation id="5097649414558628673">Eszköz: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automatikus kattintás, ha a kurzor megáll</translation>
-<translation id="5101683448725092498">Tartalmak biztonsági mentése</translation>
 <translation id="5101839224773798795">Automatikus kattintás, amikor a kurzor megáll</translation>
 <translation id="5106350808162641062">Eltávolítás</translation>
 <translation id="510695978163689362">A(z) <ph name="USER_EMAIL" /> fiók a Family Link felügyelete alatt áll. Hozzáadhat iskolai fiókokat, amelyek szülői felügyelet mellett férhetnek hozzá az iskolai erőforrásokhoz.</translation>
@@ -5140,7 +5145,6 @@
 <translation id="5623842676595125836">Napló</translation>
 <translation id="5624120631404540903">Jelszavak kezelése</translation>
 <translation id="5625225435499354052">Módosítás a Google Pay szolgáltatásban</translation>
-<translation id="5625631605902707678">Több eszközt átfogó használat</translation>
 <translation id="5626134646977739690">Név:</translation>
 <translation id="5627086634964711283">Továbbá azt is szabályozza, hogy melyik oldal jelenik meg a Kezdőlap gombra történő kattintáskor.</translation>
 <translation id="5627676517703583263">Intelligens böngészés a Chrome-mal</translation>
@@ -5252,7 +5256,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Ezek az adatok vagy az Ön eszköze nem felelnek meg szervezete egyes biztonsági irányelveinek. Érdeklődjön rendszergazdájánál arról, hogy mit kell kijavítani.}=1{Ez a fájl vagy az Ön eszköze nem felel meg a szervezete egyes biztonsági irányelveinek. Érdeklődjön rendszergazdájánál arról, hogy mit kell kijavítani.}other{Ezek a fájlok nem felelnek meg szervezete egyes biztonsági irányelveinek. Érdeklődjön rendszergazdájánál arról, hogy mit kell kijavítani.}}</translation>
 <translation id="5736796278325406685">Érvényes felhasználónevet adjon meg</translation>
 <translation id="5738093759615225354">A számítógépre való bejelentkezéshez szüksége van erre az azonosítókulcsra.</translation>
-<translation id="5738329404678738022">Könyvjelzők és egyebek tárolása a szinkronizálás segítségével</translation>
 <translation id="5739017626473506901">Jelentkezzen be <ph name="USER_NAME" /> iskolai fiókjának hozzáadásához</translation>
 <translation id="5739235828260127894">Várakozás az ellenőrzésre. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
 <translation id="5739458112391494395">Nagyon nagy</translation>
@@ -5274,7 +5277,6 @@
 <translation id="5757375109985023827">Válassza ki a kívánt lapot az előnézethez</translation>
 <translation id="5758631781033351321">Itt láthatja majd az olvasólistáját</translation>
 <translation id="5759728514498647443">A(z) <ph name="APP_NAME" /> alkalmazáson keresztül nyomtatásra küldött dokumentumait a(z) <ph name="APP_NAME" /> is elolvashatja.</translation>
-<translation id="5760508342220592715">Bejelentkezéskor további előnyök</translation>
 <translation id="5762787084360227629">Google-fiók adatainak megadása</translation>
 <translation id="5763751966069581670">Nem található USB-eszköz</translation>
 <translation id="5764483294734785780">Ha&amp;ng mentése másként...</translation>
@@ -5310,6 +5312,7 @@
 <translation id="5792295754950501287">További műveletek a következőhöz: <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Koppintson a bekapcsológombra</translation>
 <translation id="5792874008054171483">További műveletek a következőhöz: <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Ez a fizetési mód törölve lesz erről az eszközről.</translation>
 <translation id="5793339252089865437">Ha mobilhálózaton keresztül tölti le a frissítést, akkor előfordulhat, hogy jelentős többletdíjat kell fizetnie.</translation>
 <translation id="5793420564274426163">Párosítás megerősítése</translation>
 <translation id="5793430094159150686">Jelszava módosítva lett. A helyi adatok visszaállításához meg kell adnia a régi jelszavát.</translation>
@@ -5745,6 +5748,7 @@
 <translation id="617213288191670920">Nincsenek hozzáadva nyelvek</translation>
 <translation id="6173623053897475761">Írja be újra a PIN-kódját</translation>
 <translation id="6175314957787328458">Microsoft Domain GUID</translation>
+<translation id="6177412385419165772">Eltávolítás…</translation>
 <translation id="6178664161104547336">Tanúsítvány kiválasztása</translation>
 <translation id="6178682841350631965">Bejelentkezési adatai frissültek</translation>
 <translation id="6180510783007738939">Vonal eszköz</translation>
@@ -6221,6 +6225,7 @@
 <translation id="6619801788773578757">Kioszkalkalmazás hozzáadása</translation>
 <translation id="6619990499523117484">PIN-kód megerősítése</translation>
 <translation id="6620254580880484313">Tároló neve</translation>
+<translation id="6620927550847360014">Eltávolítja a Bruschettát a(z) <ph name="DEVICE_TYPE" /> eszközről?</translation>
 <translation id="6621391692573306628">A lap másik eszközre való elküldéséhez jelentkezzen be a Chrome-ba mindkét eszközön</translation>
 <translation id="6622980291894852883">Képek letiltásának fenntartása</translation>
 <translation id="6624036901798307345">Táblagép módban kattintson az eszköztár lapszámláló gombjára: ekkor az egyes lapok indexképeit megjelenítő új lapsor nyílik meg.</translation>
@@ -6438,6 +6443,7 @@
 <translation id="6818547713623251698">Megtekintheti a telefonon található fotókat, médiatartalmakat, értesítéseket és alkalmazásokat</translation>
 <translation id="6818802132960437751">Beépített vírusvédelem</translation>
 <translation id="6818920801736417483">Menti a jelszavakat?</translation>
+<translation id="6820079682647046800">A Kerberos-hitelesítés sikertelen volt</translation>
 <translation id="6823174134746916417">Koppintással kattintás az érintőpadon</translation>
 <translation id="6824564591481349393">&amp;E-mail cím másolása</translation>
 <translation id="6824584962142919697">&amp;Elemek vizsgálata</translation>
@@ -6592,6 +6598,7 @@
 <translation id="6955698182324067397">Ön engedélyezi a ChromeOS hibakeresési funkcióit, melyek be fogják állítani az sshd daemon szolgáltatást, és engedélyezni fogják az USB-meghajtókról való indítást.</translation>
 <translation id="6955893174999506273">Egy további kapcsoló hozzárendelése</translation>
 <translation id="6957044667612803194">Ez a biztonsági hardverkulcs nem támogatja a PIN-kódok használatát</translation>
+<translation id="6960133692707095572">Felkeresés jegy nélkül</translation>
 <translation id="6960507406838246615">Linux-frissítés szükséges</translation>
 <translation id="6960648667961844909">Nem sikerült letölteni a(z) <ph name="LANGUAGE" /> nyelvű beszédfájlokat. A letöltést később kísérli meg a rendszer. A letöltés befejeződéséig a rendszer elküldi a beszédet a Google-nak feldolgozásra.</translation>
 <translation id="696103774840402661">Az összes felhasználó összes fájlja és helyi adata véglegesen törlődött erről az eszközről (<ph name="DEVICE_TYPE" />).</translation>
@@ -7284,6 +7291,7 @@
 <translation id="7609148976235050828">Csatlakozzon az internethez, majd próbálja újra.</translation>
 <translation id="7612401678989660900">Engedélyezi a hozzáférést a mikrofonhasználati engedéllyel rendelkező alkalmazásoknak és webhelyeknek</translation>
 <translation id="7612655942094160088">Telefonos kapcsolatot használó funkciók engedélyezése.</translation>
+<translation id="7612989789287281429">Bejelentkezés…</translation>
 <translation id="7614260613810441905">Kérdezzen rá, ha valamelyik webhely módosítani szeretné az eszközén található fájlokat vagy mappákat (ajánlott)</translation>
 <translation id="761530003705945209">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 tartalmazza az alkalmazásadatokat. A biztonsági másolatokat a Google szervereire tölti fel a rendszer, és az Ön Google-fiókjához használt jelszóval titkosítja őket.</translation>
 <translation id="7615365294369022248">A fiók hozzáadásakor hiba történt</translation>
@@ -7813,7 +7821,6 @@
 <translation id="8059417245945632445">&amp;Eszközök vizsgálata</translation>
 <translation id="8059456211585183827">Nincsenek menthető nyomtatók.</translation>
 <translation id="8061091456562007989">Visszaállítás</translation>
-<translation id="8061965471006133016">Extra védelem a jelszavai és egyebek számára</translation>
 <translation id="8061970399284390013">Helyesírási és nyelvi ellenőrzés</translation>
 <translation id="8061991877177392872">Úgy tűnik, hogy Google Segédjéhez már beállította a Voice Match funkciót valamelyik másik eszközön. Korábbi felvételeiből ezen az eszközön is létrehozott hangmintát.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 papírlap}other{{COUNT} papírlap}}</translation>
@@ -8054,6 +8061,7 @@
 <translation id="8272443605911821513">Bővítményeit a „További eszközök” menü Bővítmények elemére kattintva kezelheti.</translation>
 <translation id="8272786333453048167">Újbóli engedélyezés</translation>
 <translation id="8273905181216423293">Letöltés</translation>
+<translation id="827488840488530039">A felkeresni kívánt oldal nem tudta ellenőrizni az Ön Kerberos-jegyeit.</translation>
 <translation id="8274921654076766238">A nagyító a billentyűzetfókuszt követi</translation>
 <translation id="8274924778568117936">A frissítés befejezéséig ne kapcsolja ki vagy csukja le <ph name="DEVICE_TYPE" /> eszközét. <ph name="DEVICE_TYPE" /> eszköze a telepítést követően újraindul.</translation>
 <translation id="8275038454117074363">Importálás</translation>
@@ -8500,6 +8508,7 @@
 <translation id="869884720829132584">Alkalmazások menü</translation>
 <translation id="869891660844655955">Lejárati dátum</translation>
 <translation id="8699188901396699995"><ph name="PRINTER_NAME" /> PPD-je</translation>
+<translation id="8702278591052316269">Az elrejtett, mentett lapcsoportokat tartalmazó menü</translation>
 <translation id="8702825062053163569"><ph name="DEVICE_TYPE" /> eszköze zárolva volt.</translation>
 <translation id="8703346390800944767">Hirdetés átugrása</translation>
 <translation id="8705331520020532516">Sorozatszám</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index 8be65235..532efb6 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -379,6 +379,7 @@
 <translation id="1339009753652684748">Ակտիվացրեք Օգնականը «Ok Google» հրահանգի միջոցով։ Մարտկոցի լիցքը տնտեսելու համար ընտրեք «Միացնել (խորհուրդ է տրվում)» կարգավորումը։ Օգնականը կպատասխանի, միայն երբ սարքը միացված է հոսանքին կամ լիցքավորվում է։</translation>
 <translation id="13392265090583506">Հատուկ գործառույթներ</translation>
 <translation id="1340527397989195812">Պահուստավորել սարքի վրայի մեդիա ֆայլերը Ֆայլեր հավելվածի միջոցով:</translation>
+<translation id="1341701348342335220">Հրաշալի է</translation>
 <translation id="1341871421050612057">Հնարավոր չէ համաժամացնել <ph name="USERNAME" /> հաշվի հետ</translation>
 <translation id="1343865611738742294">Լինուքսի հավելվածներին հասանելի դարձրեք USB սարքերը: Երբ USB սարքը հեռացվի, Լինուքսը չի պահի այն:</translation>
 <translation id="1343920184519992513">Շարունակել այն պահից, որտեղ կանգ եմ առել, և բացել էջերի որոշակի խումբ</translation>
@@ -3626,6 +3627,7 @@
 <translation id="4232375817808480934">Kerberos-ի կարգավորում</translation>
 <translation id="4235965441080806197">Չեղարկել մուտքը</translation>
 <translation id="4236163961381003811">Բացահայտեք այլ ընդլայնումներ</translation>
+<translation id="4237282663517880406">Ցույց տալ Google Drive-ի առաջարկները</translation>
 <translation id="4241182343707213132">Վերագործարկեք՝ կազմակերպության հավելվածները թարմացնելու համար</translation>
 <translation id="4242145785130247982">Սպասառուների բազմակի վկայագրեր չեն աջակցվում</translation>
 <translation id="4242533952199664413">Բացել կարգավորումները</translation>
@@ -4442,7 +4444,6 @@
 <translation id="4977942889532008999">Մուտքի հաստատում</translation>
 <translation id="4980805016576257426">Այս ընդլայնումը վնասաբեր ծրագիր է պարունակում:</translation>
 <translation id="4981449534399733132">Այցելությունների պատմությունը բոլոր համաժամացված սարքերից և Google հաշվից ջնջելու համար <ph name="BEGIN_LINK" />մտեք հաշիվ<ph name="END_LINK" />:</translation>
-<translation id="4982111327868342436">Ցանկացած սարքում շարունակեք աշխատանքն այնտեղից, որտեղ կանգ էիք առել</translation>
 <translation id="4986706507552097681">Դուք ցանկացած ժամանակ կարող եք անցնել կարգավորումներ և ընտրել, թե ինչն եք ուզում համաժամացնել։ Google-ը կարող է ձեր պատմության հիման վրա անհատականացնել Որոնումը և այլ ծառայությունները։</translation>
 <translation id="4986728572522335985">Անվտանգության բանալու վրա պահված բոլոր տվյալները, այդ թվում՝ դրա PIN կոդերը կջնջվեն:</translation>
 <translation id="4988526792673242964">Էջեր</translation>
@@ -4559,7 +4560,6 @@
 <translation id="5097349930204431044">Ձեր այցելած կայքերը կարող են որոշել ձեր նախասիրությունները և հետագայում ձեզ ավելի համապատասխան գովազդ ցույց տալ</translation>
 <translation id="5097649414558628673">Գործիք՝ <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Ավտոմատ սեղմել, երբ նշորդը կանգնում է</translation>
-<translation id="5101683448725092498">Պահուստավորեք ձեր տվյալները</translation>
 <translation id="5101839224773798795">Ավտոմատ սեղմել, երբ մկնիկի նշորդը կանգնում է</translation>
 <translation id="5106350808162641062">Հեռացնել</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> հաշիվը վերահսկվում է Family Link-ի կողմից։ Դուք կարող եք ուսումնական հաշիվներ ավելացնել՝ դպրոցական նյութերը ծնողական վերահսկողության ներքո օգտագործելու համար։</translation>
@@ -5125,7 +5125,6 @@
 <translation id="5623842676595125836">Մատյան</translation>
 <translation id="5624120631404540903">Կառավարել գաղտնաբառերը</translation>
 <translation id="5625225435499354052">Փոփոխել Google Pay-ում</translation>
-<translation id="5625631605902707678">Տվյալների համաժամացում սարքերում</translation>
 <translation id="5626134646977739690">Անուն՝</translation>
 <translation id="5627086634964711283">Այն նաև վերահսկում է, թե ինչ էջ պետք է ցուցադրվի Սկիզբ կոճակը սեղմելիս:</translation>
 <translation id="5627676517703583263">Որոնեք ավելին Chrome-ի օգնությամբ</translation>
@@ -5237,7 +5236,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Այս տվյալները կամ ձեր սարքը չեն համապատասխանում կազմակերպության անվտանգության կանոններին։ Խնդրի լուծման համար դիմեք ձեր ադմինիստրատորին։}=1{Այս ֆայլը կամ ձեր սարքը չի համապատասխանում կազմակերպության անվտանգության կանոններին։ Խնդրի լուծման համար դիմեք ձեր ադմինիստրատորին։}one{Այս ֆայլերը չեն համապատասխանում կազմակերպության անվտանգության կանոններին։ Խնդրի լուծման համար դիմեք ձեր ադմինիստրատորին։}other{Այս ֆայլերը չեն համապատասխանում կազմակերպության անվտանգության կանոններին։ Խնդրի լուծման համար դիմեք ձեր ադմինիստրատորին։}}</translation>
 <translation id="5736796278325406685">Մուտքագրեք վավեր օգտանուն</translation>
 <translation id="5738093759615225354">Այս անցաքարտը պետք է ձեր համակարգիչ մուտք գործելու համար</translation>
-<translation id="5738329404678738022">Համաժամացրեք ձեր էջանիշները և ավելին</translation>
 <translation id="5739017626473506901">Մուտք գործեք, որպեսզի օգնեք <ph name="USER_NAME" />-ին ուսումնական հաշիվ ավելացնել</translation>
 <translation id="5739235828260127894">Պահանջվում է հաստատում: <ph name="LINK_BEGIN" />Մանրամասն<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Շատ մեծ</translation>
@@ -5259,7 +5257,6 @@
 <translation id="5757375109985023827">Ընտրեք ներդիր՝ դիտելու համար</translation>
 <translation id="5758631781033351321">Ձեր ընթերցանության ցանկը կգտնեք այստեղ</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" />-ի միջոցով ուղարկված փաստաթղթերը հնարավոր է կարդալ <ph name="APP_NAME" /> հավելվածով:</translation>
-<translation id="5760508342220592715">Մուտք գործեք հաշիվ՝ ավելի շատ առավելություններից օգտվելու համար</translation>
 <translation id="5762787084360227629">Մուտքագրել Google հաշվի տվյալները</translation>
 <translation id="5763751966069581670">USB սարքեր չեն գտնվել</translation>
 <translation id="5764483294734785780">Պա&amp;հել ձայնանյութը որպես…</translation>
@@ -7797,7 +7794,6 @@
 <translation id="8059417245945632445">&amp;Հետազոտել սարքերը</translation>
 <translation id="8059456211585183827">Տպիչներ չկան, որոնք կարող եք պահել։</translation>
 <translation id="8061091456562007989">Հետ փոխել</translation>
-<translation id="8061965471006133016">Ձեր գաղտնաբառերի և այլ տվյալների լրացուցիչ պաշտպանություն</translation>
 <translation id="8061970399284390013">Ուղղագրության և քերականության ստուգում</translation>
 <translation id="8061991877177392872">Դուք արդեն կարգավորել եք Voice Match-ը այլ սարքում։ Այս նախկին ձայնագրություններն օգտագործվել են՝ ձեր ձայնի նմուշն այս սարքում ստեղծելու համար։</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 թերթ}one{{COUNT} թերթ}other{{COUNT} թերթ}}</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 0dfa1b2..ead5768 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -513,7 +513,7 @@
 <translation id="1455119378540982311">Ukuran jendela preset</translation>
 <translation id="1457907785077086338">Warna badge aplikasi</translation>
 <translation id="146000042969587795">Bingkai ini diblokir karena berisi sejumlah konten tidak aman.</translation>
-<translation id="1461041542809785877">Kinerja</translation>
+<translation id="1461041542809785877">Performa</translation>
 <translation id="1461177659295855031">Pindahkan ke folder Kolom Bookmark</translation>
 <translation id="146219525117638703">Status ONC</translation>
 <translation id="146220085323579959">Internet terputus. Periksa koneksi internet Anda dan coba lagi.</translation>
@@ -4457,7 +4457,6 @@
 <translation id="4977942889532008999">Konfirmasi Akses</translation>
 <translation id="4980805016576257426">Ekstensi ini berisi software perusak.</translation>
 <translation id="4981449534399733132">Untuk menghapus data browsing dari semua perangkat yang disinkronkan dan dari Akun Google, <ph name="BEGIN_LINK" />login<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Lanjutkan pekerjaan Anda di perangkat mana pun</translation>
 <translation id="4986706507552097681">Anda dapat memilih jenis data yang akan disinkronkan di setelan kapan saja. Google dapat mempersonalisasi Penelusuran dan layanan lainnya berdasarkan histori Anda.</translation>
 <translation id="4986728572522335985">Tindakan ini akan menghapus semua data di kunci keamanan, termasuk PIN-nya</translation>
 <translation id="4988526792673242964">Halaman</translation>
@@ -4574,7 +4573,6 @@
 <translation id="5097349930204431044">Situs yang Anda buka dapat menentukan hal-hal yang Anda sukai, lalu menyarankan iklan saat Anda melanjutkan penjelajahan</translation>
 <translation id="5097649414558628673">Alat: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Klik secara otomatis saat kursor berhenti</translation>
-<translation id="5101683448725092498">Cadangkan data Anda</translation>
 <translation id="5101839224773798795">Klik secara otomatis saat kursor berhenti</translation>
 <translation id="5106350808162641062">Hapus</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> diawasi oleh Family Link. Kamu bisa menambahkan akun sekolah untuk mengakses materi sekolah dengan pengawasan orang tua.</translation>
@@ -5140,7 +5138,6 @@
 <translation id="5623842676595125836">Log</translation>
 <translation id="5624120631404540903">Kelola sandi</translation>
 <translation id="5625225435499354052">Edit di Google Pay</translation>
-<translation id="5625631605902707678">Di seluruh perangkat</translation>
 <translation id="5626134646977739690">Nama:</translation>
 <translation id="5627086634964711283">Juga mengontrol apa yang ditampilkan halaman saat Anda mengklik tombol Beranda.</translation>
 <translation id="5627676517703583263">Akses cerdas menggunakan Chrome</translation>
@@ -5252,7 +5249,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Data ini atau perangkat Anda tidak memenuhi beberapa kebijakan keamanan organisasi Anda. Hubungi admin Anda untuk mengetahui hal yang perlu diperbaiki.}=1{File ini atau perangkat Anda tidak memenuhi beberapa kebijakan keamanan organisasi Anda. Hubungi admin Anda untuk mengetahui hal yang perlu diperbaiki.}other{File ini tidak memenuhi beberapa kebijakan keamanan organisasi Anda. Hubungi admin Anda untuk mengetahui hal yang perlu diperbaiki.}}</translation>
 <translation id="5736796278325406685">Masukkan nama pengguna yang valid</translation>
 <translation id="5738093759615225354">Anda memerlukan kunci sandi ini untuk login ke komputer Anda</translation>
-<translation id="5738329404678738022">Simpan bookmark Anda dan yang lainnya dengan sinkronisasi</translation>
 <translation id="5739017626473506901">Login untuk membantu <ph name="USER_NAME" /> menambahkan akun sekolah</translation>
 <translation id="5739235828260127894">Menunggu verifikasi. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Sangat besar</translation>
@@ -5274,7 +5270,6 @@
 <translation id="5757375109985023827">Pilih tab untuk dipratinjau</translation>
 <translation id="5758631781033351321">Daftar bacaan Anda akan ditampilkan di sini</translation>
 <translation id="5759728514498647443">Dokumen yang Anda kirim untuk dicetak melalui <ph name="APP_NAME" /> dapat dibaca oleh <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Login untuk mendapatkan manfaat lainnya</translation>
 <translation id="5762787084360227629">Masukkan info Akun Google</translation>
 <translation id="5763751966069581670">Tidak ada perangkat USB yang ditemukan</translation>
 <translation id="5764483294734785780">Sim&amp;pan audio sebagai...</translation>
@@ -7813,7 +7808,6 @@
 <translation id="8059417245945632445">&amp;Periksa perangkat</translation>
 <translation id="8059456211585183827">Tidak ada printer yang tersedia untuk disimpan.</translation>
 <translation id="8061091456562007989">Kembalikan</translation>
-<translation id="8061965471006133016">Perlindungan ekstra untuk sandi Anda dan lainnya</translation>
 <translation id="8061970399284390013">Pemeriksaan ejaan dan tata bahasa</translation>
 <translation id="8061991877177392872">Sepertinya Anda sudah menyiapkan Voice Match dengan Asisten Anda di perangkat lain. Rekaman sebelumnya tersebut digunakan untuk membuat model suara di perangkat ini.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 lembar kertas}other{{COUNT} lembar kertas}}</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index f523564d..b972178 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -380,6 +380,7 @@
 <translation id="1339009753652684748">Opnaðu hjálparann með því að segja „Ok Google“. Veldu „Kveikt (mælt með)“ til að spara rafhlöðuna. Hjálparinn svarar aðeins þegar tækið er í sambandi eða í hleðslu.</translation>
 <translation id="13392265090583506">A11y</translation>
 <translation id="1340527397989195812">Afrita efni tækisins með forritinu Skrár.</translation>
+<translation id="1341701348342335220">Vel gert!</translation>
 <translation id="1341871421050612057">Ekki er hægt að samstilla við <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Veita Linux-forritum heimild til að opna USB-tæki. Linux man ekki eftir USB-tæki þegar það hefur verið fjarlægt.</translation>
 <translation id="1343920184519992513">Haltu áfram þar sem frá var horfið og opnaðu ákveðinn hóp síðna</translation>
@@ -3640,6 +3641,7 @@
 <translation id="4232375817808480934">Stilla Kerberos</translation>
 <translation id="4235965441080806197">Hætta við innskráningu</translation>
 <translation id="4236163961381003811">Sjá fleiri viðbætur</translation>
+<translation id="4237282663517880406">Sýna Google Drive-tillögur</translation>
 <translation id="4241182343707213132">Endurræsa til að uppfæra forrit fyrirtækisins</translation>
 <translation id="4242145785130247982">Ekki er leyfilegt að nota mörg biðlaravottorð</translation>
 <translation id="4242533952199664413">Opna stillingar</translation>
@@ -4456,7 +4458,6 @@
 <translation id="4977942889532008999">Staðfesta aðgang</translation>
 <translation id="4980805016576257426">Þessi viðbót inniheldur spilliforrit.</translation>
 <translation id="4981449534399733132">Til að hreinsa vafragögn úr öllum samstilltum tækjum og af Google reikningnum þínum skaltu <ph name="BEGIN_LINK" />skrá þig inn<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Haltu áfram þaðan sem frá var horfið í hvaða tæki sem er</translation>
 <translation id="4986706507552097681">Þú getur alltaf valið hvað á að samstilla í stillingunum. Google kann að sérsníða Leit og aðrar þjónustur í samræmi við ferilinn þinn.</translation>
 <translation id="4986728572522335985">Þetta eyðir öllum gögnum á öryggislyklinum, þar á meðal PIN-númerinu</translation>
 <translation id="4988526792673242964">Síður</translation>
@@ -4573,7 +4574,6 @@
 <translation id="5097349930204431044">Vefsvæði sem þú heimsækir geta lagt mat á hvað höfðar til þín og í kjölfarið birt tillögur að auglýsingum á meðan þú heldur áfram að skoða</translation>
 <translation id="5097649414558628673">Verkfæri: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Smella sjálfkrafa þegar bendill stöðvast</translation>
-<translation id="5101683448725092498">Taktu afrit af efninu þínu</translation>
 <translation id="5101839224773798795">Smella sjálfkrafa þegar bendillinn stoppar</translation>
 <translation id="5106350808162641062">Fjarlægja</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> er undir eftirliti Family Link. Þú getur bætt við skólareikningum til að nálgast skólagögn með foreldraeftirliti.</translation>
@@ -5139,7 +5139,6 @@
 <translation id="5623842676595125836">Notkunarskrá</translation>
 <translation id="5624120631404540903">Stjórna aðgangsorðum</translation>
 <translation id="5625225435499354052">Breyta í Google Pay</translation>
-<translation id="5625631605902707678">Á milli tækja</translation>
 <translation id="5626134646977739690">Nafn:</translation>
 <translation id="5627086634964711283">Hún stýrir því einnig hvaða síða birtist þegar þú smellir á heimahnappinn.</translation>
 <translation id="5627676517703583263">Betri vefskoðun með Chrome</translation>
@@ -5251,7 +5250,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Þessi gögn eða tækið þitt stenst ekki tilteknar öryggisreglur fyrirtækisins. Hafðu samband við stjórnandann til að fá upplýsingar um hvað þarf að lagfæra.}=1{Þetta skrá eða tækið þitt stenst ekki tilteknar öryggisreglur fyrirtækisins. Hafðu samband við stjórnandann til að fá upplýsingar um hvað þarf að lagfæra.}one{Þessar skrár standast ekki tilteknar öryggisreglur fyrirtækisins. Hafðu samband við stjórnandann til að fá upplýsingar um hvað þarf að lagfæra.}other{Þessar skrár standast ekki tilteknar öryggisreglur fyrirtækisins. Hafðu samband við stjórnandann til að fá upplýsingar um hvað þarf að lagfæra.}}</translation>
 <translation id="5736796278325406685">Sláðu inn gilt notendanafn</translation>
 <translation id="5738093759615225354">Þú þarft þennan aðgangslykil til að skrá þig inn í tölvuna þína</translation>
-<translation id="5738329404678738022">Vistaðu bókamerki og fleira með samstillingu</translation>
 <translation id="5739017626473506901">Skráðu þig inn til að hjálpa <ph name="USER_NAME" /> að bæta við skólareikningi</translation>
 <translation id="5739235828260127894">Bíður eftir staðfestingu. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Mjög stórt</translation>
@@ -5273,7 +5271,6 @@
 <translation id="5757375109985023827">Veldu flipa til að forskoða</translation>
 <translation id="5758631781033351321">Þú finnur leslistann þinn hér</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> getur lesið skjöl sem þú sendir til prentunar í gegnum <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Skráðu þig inn til að fá fleiri fríðindi</translation>
 <translation id="5762787084360227629">Sláðu inn upplýsingar um Google reikning</translation>
 <translation id="5763751966069581670">Engin USB-tæki fundust</translation>
 <translation id="5764483294734785780">&amp;Vista hljóð sem...</translation>
@@ -7813,7 +7810,6 @@
 <translation id="8059417245945632445">Kanna tæk&amp;i</translation>
 <translation id="8059456211585183827">Engir tiltækir prentarar til að vista.</translation>
 <translation id="8061091456562007989">Breyta til baka</translation>
-<translation id="8061965471006133016">Aukin vernd fyrir aðgangsorð og fleira</translation>
 <translation id="8061970399284390013">Athugun á stafsetningu og málfræði</translation>
 <translation id="8061991877177392872">Þú virðist þegar hafa sett upp Voice Match fyrir Hjálparann í öðru tæki. Þessar eldri upptökur voru notaðar til að búa til raddlíkan í tækinu.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 blaðsíða}one{{COUNT} blaðsíða}other{{COUNT} blaðsíður}}</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 361c635..250c3b29 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">HyperText Transfer Protocol (HTTPS)</translation>
 <translation id="1059944192885972544">Sono state trovate <ph name="NUM" /> schede per "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="1060292118287751956">Consente di stabilire la frequenza di aggiornamento dello schermo</translation>
+<translation id="1060570945511946595">Gestisci richieste</translation>
 <translation id="1061130374843955397">Ti diamo il benvenuto nel tuo <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Crea codice QR per questo link</translation>
 <translation id="1061904396131502319">È quasi ora di fare una pausa</translation>
@@ -377,6 +378,7 @@
 <translation id="1339009753652684748">Accedi all'assistente quando dici "Hey Google". Per consumare meno batteria, seleziona "On (opzione consigliata)". L'assistente risponderà soltanto quando il dispositivo è collegato a una fonte di alimentazione o in carica.</translation>
 <translation id="13392265090583506">Impostazioni di accessibilità</translation>
 <translation id="1340527397989195812">Importa elementi multimediali dal dispositivo utilizzando l'app File.</translation>
+<translation id="1341701348342335220">Ottimo lavoro.</translation>
 <translation id="1341871421050612057">Impossibile sincronizzare con <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Concedi alle app Linux l'autorizzazione ad accedere ai dispositivi USB. Dopo la rimozione di un dispositivo USB, Linux non manterrà memorizzato il dispositivo.</translation>
 <translation id="1343920184519992513">Continua dal punto in cui avevi interrotto e apri un insieme di pagine specifiche</translation>
@@ -1113,6 +1115,7 @@
 <translation id="1975841812214822307">Rimuovi...</translation>
 <translation id="1976150099241323601">Accedi a dispositivo di sicurezza</translation>
 <translation id="1977965994116744507">Avvicina il telefono per sbloccare il tuo dispositivo <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Rimuovi Bruschetta</translation>
 <translation id="1979095679518582070">La disattivazione di questa funzionalità non influisce sulla capacità del dispositivo di inviare le informazioni necessarie per i servizi essenziali, ad esempio gli aggiornamenti di sistema e sicurezza.</translation>
 <translation id="1979280758666859181">Stai per passare a un canale con una versione precedente di <ph name="PRODUCT_NAME" />. Il cambio di canale verrà applicato quando la versione del canale corrisponderà alla versione attualmente installata sul dispositivo.</translation>
 <translation id="197989455406964291">KDC non supporta il tipo di crittografia</translation>
@@ -1916,6 +1919,7 @@
 <translation id="2672142220933875349">File crx non valido, decompressione non riuscita.</translation>
 <translation id="2673135533890720193">Leggere la cronologia di navigazione</translation>
 <translation id="2674764818721168631">Off</translation>
+<translation id="2675570801872027281">Errore durante la rimozione di Bruschetta. Riprova.</translation>
 <translation id="2676492189600898281">Invia feedback su compilazione automatica</translation>
 <translation id="2678063897982469759">Riattiva</translation>
 <translation id="2678100101831051676">Impossibile trasmettere.</translation>
@@ -2914,6 +2918,7 @@
 <translation id="3593965109698325041">Vincoli nomi certificati</translation>
 <translation id="3596012367874587041">Impostazioni app</translation>
 <translation id="3596414637720633074">Blocca cookie di terze parti nella modalità di navigazione in incognito</translation>
+<translation id="3598010454707842106">Fai clic su "Personalizza Chrome"</translation>
 <translation id="3599221874935822507">In rilievo</translation>
 <translation id="3600051066689725006">Informazioni sulla richiesta web</translation>
 <translation id="360180734785106144">Offrire nuove funzionalità quando diventano disponibili.</translation>
@@ -3624,6 +3629,7 @@
 <translation id="4232375817808480934">Configura Kerberos</translation>
 <translation id="4235965441080806197">Annulla accesso</translation>
 <translation id="4236163961381003811">Scopri altre estensioni</translation>
+<translation id="4237282663517880406">Mostra suggerimenti di Google Drive</translation>
 <translation id="4241182343707213132">Riavvia per aggiornare le app dell'organizzazione</translation>
 <translation id="4242145785130247982">Non sono supportati più certificati client</translation>
 <translation id="4242533952199664413">Apri le impostazioni</translation>
@@ -3910,6 +3916,7 @@
 <translation id="4495419450179050807">Non visualizzare in questa pagina</translation>
 <translation id="4497145443434063861">PC e Chromecast sono collegati a reti Wi-Fi diverse (ad esempio 2,4 GHz e 5 GHz)</translation>
 <translation id="4500114933761911433">Arresto anomalo di <ph name="PLUGIN_NAME" /></translation>
+<translation id="4500647907053779331">&amp;Traduci selezione in <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Icona punto esclamativo</translation>
 <translation id="4501530680793980440">Conferma rimozione</translation>
 <translation id="4502423230170890588">Rimuovi da questo dispositivo</translation>
@@ -4439,7 +4446,6 @@
 <translation id="4977942889532008999">Conferma accesso</translation>
 <translation id="4980805016576257426">Questa estensione contiene malware.</translation>
 <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Accedi<ph name="END_LINK" /> per cancellare i dati di navigazione da tutti i dispositivi sincronizzati e dal tuo Account Google.</translation>
-<translation id="4982111327868342436">Continua da dove avevi interrotto su qualsiasi dispositivo</translation>
 <translation id="4986706507552097681">Puoi scegliere in qualsiasi momento i dati da sincronizzare nelle impostazioni. Google potrebbe personalizzare la Ricerca e altri servizi in base alla tua cronologia.</translation>
 <translation id="4986728572522335985">Questa operazione eliminerà tutti i dati sul token di sicurezza, incluso il suo PIN</translation>
 <translation id="4988526792673242964">Pagine</translation>
@@ -4556,7 +4562,6 @@
 <translation id="5097349930204431044">I siti che visiti possono stabilire i tuoi interessi e poi suggerire annunci mentre continui a navigare</translation>
 <translation id="5097649414558628673">Strumento: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Fare clic automaticamente quando il puntatore si ferma</translation>
-<translation id="5101683448725092498">Esegui il backup dei tuoi contenuti</translation>
 <translation id="5101839224773798795">Clic automatico all'arresto del puntatore del cursore</translation>
 <translation id="5106350808162641062">Rimuovi</translation>
 <translation id="510695978163689362">L'account <ph name="USER_EMAIL" /> è supervisionato tramite Family Link. Puoi aggiungere account della scuola per accedere a risorse scolastiche con la supervisione dei genitori.</translation>
@@ -5120,7 +5125,6 @@
 <translation id="5623842676595125836">Log</translation>
 <translation id="5624120631404540903">Gestisci password</translation>
 <translation id="5625225435499354052">Modifica in Google Pay</translation>
-<translation id="5625631605902707678">Su più dispositivi</translation>
 <translation id="5626134646977739690">Nome:</translation>
 <translation id="5627086634964711283">Controlla anche la pagina visualizzata quando fai clic sul pulsante Pagina iniziale.</translation>
 <translation id="5627676517703583263">Naviga in modo intelligente con Chrome</translation>
@@ -5232,7 +5236,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Questi dati o il tuo dispositivo non rispettano alcuni criteri di sicurezza della tua organizzazione. Verifica con il tuo amministratore cosa occorre sistemare.}=1{Questo file o il tuo dispositivo non rispetta alcuni criteri di sicurezza della tua organizzazione. Verifica con il tuo amministratore cosa occorre sistemare.}other{Questi file non rispettano alcuni criteri di sicurezza della tua organizzazione. Verifica con il tuo amministratore cosa occorre sistemare.}}</translation>
 <translation id="5736796278325406685">Inserisci un nome utente valido</translation>
 <translation id="5738093759615225354">Questa passkey è necessaria per accedere al tuo computer</translation>
-<translation id="5738329404678738022">Memorizza i tuoi preferiti e altro ancora con la sincronizzazione</translation>
 <translation id="5739017626473506901">Accedi per aiutare <ph name="USER_NAME" /> ad aggiungere un account della scuola</translation>
 <translation id="5739235828260127894">In attesa di verifica. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Molto grandi</translation>
@@ -5254,7 +5257,6 @@
 <translation id="5757375109985023827">Seleziona una scheda da visualizzare in anteprima</translation>
 <translation id="5758631781033351321">Qui troverai il tuo elenco di lettura</translation>
 <translation id="5759728514498647443">I documenti inviati alla stampante tramite <ph name="APP_NAME" /> possono essere letti da <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Accedi per altri vantaggi</translation>
 <translation id="5762787084360227629">Inserisci i dati dell'Account Google</translation>
 <translation id="5763751966069581670">Nessun dispositivo USB trovato</translation>
 <translation id="5764483294734785780">Sal&amp;va audio come...</translation>
@@ -5724,6 +5726,7 @@
 <translation id="617213288191670920">Nessuna lingua aggiunta</translation>
 <translation id="6173623053897475761">Digita di nuovo il PIN</translation>
 <translation id="6175314957787328458">GUID di dominio Microsoft</translation>
+<translation id="6177412385419165772">Rimozione in corso…</translation>
 <translation id="6178664161104547336">Seleziona un certificato</translation>
 <translation id="6178682841350631965">I dati di accesso sono stati aggiornati</translation>
 <translation id="6180510783007738939">Strumento Linea</translation>
@@ -6200,6 +6203,7 @@
 <translation id="6619801788773578757">Aggiungi applicazione kiosk</translation>
 <translation id="6619990499523117484">Conferma il codice PIN</translation>
 <translation id="6620254580880484313">Nome container</translation>
+<translation id="6620927550847360014">Rimuovere Bruschetta da <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Per inviare questa scheda a un altro dispositivo, accedi a Chrome su entrambi i dispositivi</translation>
 <translation id="6622980291894852883">Continua a bloccare le immagini</translation>
 <translation id="6624036901798307345">In modalità tablet, tocca il pulsante della barra degli strumenti del contatore di schede per aprire una nuova tabstrip che mostra le miniature di ogni scheda.</translation>
@@ -6417,6 +6421,7 @@
 <translation id="6818547713623251698">Visualizza foto, contenuti multimediali, notifiche e app del tuo telefono</translation>
 <translation id="6818802132960437751">Protezione antivirus integrata</translation>
 <translation id="6818920801736417483">Salvare le password?</translation>
+<translation id="6820079682647046800">Autenticazione Kerberos non riuscita</translation>
 <translation id="6823174134746916417">Tocco per fare clic sul touchpad</translation>
 <translation id="6824564591481349393">Copia indirizzo &amp;email</translation>
 <translation id="6824584962142919697">&amp;Ispeziona elementi</translation>
@@ -6571,6 +6576,7 @@
 <translation id="6955698182324067397">Stai attivando le funzioni di debug di ChromeOS, che a loro volta impostano il daemon sshd e abilitano l'avvio da unità USB.</translation>
 <translation id="6955893174999506273">Assegna 1 altro sensore</translation>
 <translation id="6957044667612803194">Questo token di sicurezza non supporta i PIN</translation>
+<translation id="6960133692707095572">Visita senza richiesta</translation>
 <translation id="6960507406838246615">Aggiornamento di Linux necessario</translation>
 <translation id="6960648667961844909">Impossibile scaricare i file di contenuti vocali per la lingua <ph name="LANGUAGE" />. Verrà effettuato un tentativo di download in un secondo tempo. Ciò che dici viene inviato a Google per l'elaborazione fino al completamento del download.</translation>
 <translation id="696103774840402661">Tutti i file e i dati locali di tutti gli utenti su questo <ph name="DEVICE_TYPE" /> sono stati eliminati in modo permanente.</translation>
@@ -7792,7 +7798,6 @@
 <translation id="8059417245945632445">&amp;Ispeziona dispositivi</translation>
 <translation id="8059456211585183827">Nessuna stampante disponibile da salvare.</translation>
 <translation id="8061091456562007989">Ripristina</translation>
-<translation id="8061965471006133016">Protezione aggiuntiva per le tue password e altro</translation>
 <translation id="8061970399284390013">Controllo ortografico e grammaticale</translation>
 <translation id="8061991877177392872">Sembra che tu abbia già configurato Voice Match con l'assistente su un altro dispositivo. Le registrazioni precedenti sono state usate per creare un modello vocale su questo dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 foglio}other{{COUNT} fogli}}</translation>
@@ -8033,6 +8038,7 @@
 <translation id="8272443605911821513">Gestisci le tue estensioni facendo clic su Estensioni nel menu "Altri strumenti".</translation>
 <translation id="8272786333453048167">Consenti di nuovo</translation>
 <translation id="8273905181216423293">Scarica ora</translation>
+<translation id="827488840488530039">La pagina che stai tentando di visitare non è riuscita a verificare le richieste di Kerberos</translation>
 <translation id="8274921654076766238">La funzionalità di ingrandimento segue lo stato attivo della tastiera</translation>
 <translation id="8274924778568117936">Non spegnere o chiudere il tuo dispositivo <ph name="DEVICE_TYPE" /> fino al termine dell'aggiornamento. Il dispositivo <ph name="DEVICE_TYPE" /> si riavvierà al termine dell'installazione.</translation>
 <translation id="8275038454117074363">Importa</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index f4bdb90..e7ce8b5 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -381,6 +381,7 @@
 <translation id="1339009753652684748">‏כשאומרים "Hey Google", מתבצעת גישה ל-Assistant. כדי לחסוך בצריכת הסוללה, אפשר לבחור באפשרות "מופעל (מומלץ)". Assistant תגיב רק כשהמכשיר מחובר לחשמל או נמצא בטעינה.</translation>
 <translation id="13392265090583506">נגישות</translation>
 <translation id="1340527397989195812">‏גיבוי המדיה מהמכשיר באמצעות אפליקציית Files.</translation>
+<translation id="1341701348342335220">כל הכבוד!</translation>
 <translation id="1341871421050612057">לא ניתן לסנכרן עם <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">‏הענקת הרשאה לאפליקציות Linux לגשת להתקני USB. אחרי שמוציאים התקן USB, הוא לא נשמר בזיכרון של Linux.</translation>
 <translation id="1343920184519992513">להמשיך מהמקום שבו הפסקת ולפתוח קבוצת דפים מסוימת</translation>
@@ -3639,6 +3640,7 @@
 <translation id="4232375817808480934">‏הגדרת Kerberos</translation>
 <translation id="4235965441080806197">ביטול כניסה</translation>
 <translation id="4236163961381003811">תוספים נוספים</translation>
+<translation id="4237282663517880406">‏הצגת הצעות מ-Google Drive</translation>
 <translation id="4241182343707213132">יש להפעיל מחדש כדי לעדכן את האפליקציות של הארגון</translation>
 <translation id="4242145785130247982">אין תמיכה באישורי לקוח מרובים.</translation>
 <translation id="4242533952199664413">פתיחת ההגדרות</translation>
@@ -4455,7 +4457,6 @@
 <translation id="4977942889532008999">אישור גישה</translation>
 <translation id="4980805016576257426">התוסף הזה מכיל תוכנה זדונית.</translation>
 <translation id="4981449534399733132">‏כדי לנקות את נתוני הגלישה מכל המכשירים המסונכרנים ומחשבון Google שלך, <ph name="BEGIN_LINK" />יש לבצע כניסה<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">אפשרות להמשיך מהנקודה שבה הפסקת, מכל מכשיר</translation>
 <translation id="4986706507552097681">‏אפשר לבחור מה לסנכרן בכל שלב דרך ההגדרות. Google עשויה להתאים אישית את החיפוש ושירותים נוספים על סמך ההיסטוריה שלך.</translation>
 <translation id="4986728572522335985">הפעולה הזו תמחק את כל הנתונים במפתח האבטחה, כולל קוד האימות שלו</translation>
 <translation id="4988526792673242964">דפים</translation>
@@ -4572,7 +4573,6 @@
 <translation id="5097349930204431044">אתרים שביקרת בהם יכולים לזהות מה מעניין אותך ואז להציע מודעות במהלך הגלישה</translation>
 <translation id="5097649414558628673">כלי: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ללחוץ אוטומטית כשהסמן עוצר</translation>
-<translation id="5101683448725092498">גיבוי הפריטים שלך</translation>
 <translation id="5101839224773798795">קליק אוטומטי כשהסמן עוצר</translation>
 <translation id="5106350808162641062">הסרה</translation>
 <translation id="510695978163689362">‏הפיקוח על <ph name="USER_EMAIL" /> מתבצע באמצעות Family Link. אפשר להוסיף חשבונות בית-ספריים כדי לקבל גישה למקורות מידע הזמינים בבית הספר בעזרת פיקוח הורים.</translation>
@@ -5138,7 +5138,6 @@
 <translation id="5623842676595125836">יומן</translation>
 <translation id="5624120631404540903">ניהול סיסמאות</translation>
 <translation id="5625225435499354052">‏עריכה ב-Google Pay</translation>
-<translation id="5625631605902707678">במכשירים שונים</translation>
 <translation id="5626134646977739690">שם:</translation>
 <translation id="5627086634964711283">הגדרה זו גם קובעת איזה דף מוצג כשלוחצים על הלחצן 'דף הבית'.</translation>
 <translation id="5627676517703583263">‏גלישה חכמה עם Chrome</translation>
@@ -5250,7 +5249,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{הנתונים האלה או המכשיר שלך לא עומדים בחלק מהכללים של מדיניות האבטחה של הארגון. עליך לברר עם האדמין מה צריך לתקן.}=1{הקובץ הזה או המכשיר שלך לא עומדים בחלק מהכללים של מדיניות האבטחה של הארגון. עליך לברר עם האדמין מה צריך לתקן.}one{הקבצים האלה לא עומדים בחלק מהכללים של מדיניות האבטחה של הארגון. עליך לברר עם האדמין מה צריך לתקן.}two{הקבצים האלה לא עומדים בחלק מהכללים של מדיניות האבטחה של הארגון. עליך לברר עם האדמין מה צריך לתקן.}other{הקבצים האלה לא עומדים בחלק מהכללים של מדיניות האבטחה של הארגון. עליך לברר עם האדמין מה צריך לתקן.}}</translation>
 <translation id="5736796278325406685">יש להזין שם משתמש חוקי</translation>
 <translation id="5738093759615225354">מפתח הגישה הזה ישמש לכניסה למחשב</translation>
-<translation id="5738329404678738022">אפשר לאחסן את הסימניות ופריטים נוספים בעזרת הסנכרון</translation>
 <translation id="5739017626473506901">כדי לעזור בהוספת חשבון בית ספרי של <ph name="USER_NAME" />, עליך לבצע כניסה למערכת</translation>
 <translation id="5739235828260127894">בהמתנה לאימות. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">גדול מאוד</translation>
@@ -5272,7 +5270,6 @@
 <translation id="5757375109985023827">בחירת כרטיסייה לתצוגה מקדימה</translation>
 <translation id="5758631781033351321">רשימת הקריאה זמינה כאן</translation>
 <translation id="5759728514498647443">ניתן להשתמש ב-<ph name="APP_NAME" /> כדי לקרוא מסמכים ששולחים להדפסה באמצעות <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">כדאי להיכנס לחשבון ולקבל עוד הטבות</translation>
 <translation id="5762787084360227629">‏הזנת פרטי חשבון Google</translation>
 <translation id="5763751966069581670">‏לא נמצאו התקני USB</translation>
 <translation id="5764483294734785780">ש&amp;מירת שמע בתור...</translation>
@@ -7814,7 +7811,6 @@
 <translation id="8059417245945632445">&amp;בדיקת מכשירים</translation>
 <translation id="8059456211585183827">אין מדפסות זמינות לשמירה.</translation>
 <translation id="8061091456562007989">חזרה להגדרות הקודמות</translation>
-<translation id="8061965471006133016">הגנה נוספת על הסיסמאות שלך ועוד</translation>
 <translation id="8061970399284390013">בדיקת איות ודקדוק</translation>
 <translation id="8061991877177392872">‏נראה שכבר הגדרת את Voice Match באמצעות Assistant במכשיר אחר. נעשה שימוש בהקלטות הקודמות האלה כדי ליצור תבנית קול במכשיר זה.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{גיליון נייר אחד}one{{COUNT} גיליונות נייר}two{{COUNT} גיליונות נייר}other{{COUNT} גיליונות נייר}}</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index d33ea88..4f5934d 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -3604,7 +3604,7 @@
 <translation id="4211904048067111541">Android アプリでの使用を停止する</translation>
 <translation id="42126664696688958">エクスポート</translation>
 <translation id="42137655013211669">このリソースへのアクセスはサーバーにより禁止されています。</translation>
-<translation id="4214192212360095377">今だけオフにする</translation>
+<translation id="4214192212360095377">今すぐオフにする</translation>
 <translation id="4217558091331485702">開く前にスキャンする</translation>
 <translation id="4217571870635786043">音声入力</translation>
 <translation id="4218081191298393750">スピーカー アイコンをクリックしてこのタブをミュートする</translation>
@@ -4433,7 +4433,6 @@
 <translation id="4977942889532008999">アクセスの確認</translation>
 <translation id="4980805016576257426">この拡張機能には不正なソフトウェアが含まれています。</translation>
 <translation id="4981449534399733132">同期しているすべてのデバイスと Google アカウントから閲覧データを削除するには、<ph name="BEGIN_LINK" />ログイン<ph name="END_LINK" />してください。</translation>
-<translation id="4982111327868342436">どのデバイスでも作業を続けられます</translation>
 <translation id="4986706507552097681">同期する項目はいつでも [設定] で選択できます。Google では、履歴に基づいて検索やその他のサービスをカスタマイズすることがあります。</translation>
 <translation id="4986728572522335985">セキュリティ キーに保存されているすべてのデータ(PIN を含む)が削除されます</translation>
 <translation id="4988526792673242964">ページ</translation>
@@ -4550,7 +4549,6 @@
 <translation id="5097349930204431044">アクセスしたサイトはユーザーの興味 / 関心を判断し、それ以降にアクセスするサイトで広告を提案できます</translation>
 <translation id="5097649414558628673">ツール: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">カーソルの停止時に自動的にクリックする</translation>
-<translation id="5101683448725092498">データをバックアップする</translation>
 <translation id="5101839224773798795">カーソルの停止時に自動的にクリックする</translation>
 <translation id="5106350808162641062">削除</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> はファミリー リンクによって管理されています。保護者の管理の下で学校のリソースにアクセスするための学校用アカウントを追加できます。</translation>
@@ -5114,7 +5112,6 @@
 <translation id="5623842676595125836">ログ</translation>
 <translation id="5624120631404540903">パスワードを管理</translation>
 <translation id="5625225435499354052">Google Pay で編集</translation>
-<translation id="5625631605902707678">どのデバイスでも</translation>
 <translation id="5626134646977739690">名前:</translation>
 <translation id="5627086634964711283">この拡張機能では、ホーム ボタンのクリック時に表示されるページも制御されます。</translation>
 <translation id="5627676517703583263">Chrome で賢くブラウジング</translation>
@@ -5226,7 +5223,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{このデータまたはお使いのデバイスは、組織のセキュリティ ポリシーの一部に違反しています。修正が必要な箇所を管理者にご確認ください。}=1{このファイルまたはお使いのデバイスは、組織のセキュリティ ポリシーの一部に違反しています。修正が必要な箇所を管理者にご確認ください。}other{これらのファイルは、組織のセキュリティ ポリシーの一部に違反しています。修正が必要な箇所を管理者にご確認ください。}}</translation>
 <translation id="5736796278325406685">有効なユーザー名を入力してください</translation>
 <translation id="5738093759615225354">パソコンにログインするには、このパスキーが必要です</translation>
-<translation id="5738329404678738022">同期することでブックマークやその他のデータを保存できます</translation>
 <translation id="5739017626473506901">ログインして、<ph name="USER_NAME" /> さんの学校アカウントの追加を許可してください</translation>
 <translation id="5739235828260127894">確認を待っています。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">極大</translation>
@@ -5248,7 +5244,6 @@
 <translation id="5757375109985023827">プレビューするタブを選択します</translation>
 <translation id="5758631781033351321">リーディング リストはここに表示されます</translation>
 <translation id="5759728514498647443">「<ph name="APP_NAME" />」を使用して印刷に送信したドキュメントは「<ph name="APP_NAME" />」で読めます。</translation>
-<translation id="5760508342220592715">ログインによるさまざまなメリット</translation>
 <translation id="5762787084360227629">Google アカウントの情報を入力</translation>
 <translation id="5763751966069581670">USB デバイスが見つかりませんでした</translation>
 <translation id="5764483294734785780">名前を付けてオーディオを保存(&amp;V)...</translation>
@@ -7783,7 +7778,6 @@
 <translation id="8059417245945632445">デバイスを検証(&amp;I)</translation>
 <translation id="8059456211585183827">保存できるプリンタはありません。</translation>
 <translation id="8061091456562007989">元に戻す</translation>
-<translation id="8061965471006133016">パスワードなどのデータ保護を強化</translation>
 <translation id="8061970399284390013">スペルと文法のチェック</translation>
 <translation id="8061991877177392872">アシスタントの Voice Match は、すでに別のデバイスで設定されたようです。このデバイスの音声モデルは、登録済みの音声を使って作成されています。</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 枚}other{{COUNT} 枚}}</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 474c924d..d7a1b8f 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -4447,7 +4447,6 @@
 <translation id="4977942889532008999">წვდომის დადასტურება</translation>
 <translation id="4980805016576257426">ეს გაფართოება მავნე პროგრამას შეიცავს.</translation>
 <translation id="4981449534399733132">თქვენი Google ანგარიშიდან და ყველა სინქრონიზებული მოწყობილობიდან დათვალიერების მონაცემების გასასუფთავებლად <ph name="BEGIN_LINK" />შედით სისტემაში<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">გააგრძელეთ იქიდან, სადაც შეჩერდით ნებისმიერ მოწყობილობაზე</translation>
 <translation id="4986706507552097681">პარამეტრებიდან ნებისმიერ დროს შეგიძლიათ აირჩიოთ, რისი სინქრონიზაცია გსურთ. თქვენი ისტორიის მეშვეობით Google შეძლებს Search-ისა და სხვა სერვისების თქვენზე მორგებას.</translation>
 <translation id="4986728572522335985">ეს ქმედება წაშლის უსაფრთხოების გასაღებში შენახულ ყველა მონაცემს, მათ შორის, მის PIN-კოდს</translation>
 <translation id="4988526792673242964">გვერდები</translation>
@@ -4564,7 +4563,6 @@
 <translation id="5097349930204431044">თქვენ მიერ მონახულებულ საიტებს შეუძლია იმის განსაზღვრა, თუ რა მოგწონთ, შემდეგ კი, თქვენ მიერ საიტის დათვალიერების პარალელურად, რეკლამის შემოთავაზება</translation>
 <translation id="5097649414558628673">ხელსაწყო: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ავტომატურად დაწკაპუნება კურსორის გაჩერებისას</translation>
-<translation id="5101683448725092498">შექმენით თქვენი კონტენტის სარეზერვო ასლები</translation>
 <translation id="5101839224773798795">ავტომატური დაწკაპუნება კურსორის გაჩერებისას</translation>
 <translation id="5106350808162641062">წაშლა</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> ზედამხედველობის ქვეშაა Family Link-ის მეშვეობით. შეგიძლიათ დაამატოთ სასწავლებლების ანგარიშები, რომელთა მეშვეობითაც შესაძლებელი იქნება სასწავლო რესურსებზე წვდომა მშობლის ზედამხედველობით.</translation>
@@ -5130,7 +5128,6 @@
 <translation id="5623842676595125836">ჟურნალი</translation>
 <translation id="5624120631404540903">პაროლების მართვა</translation>
 <translation id="5625225435499354052">Google Pay-ში რედაქტირება</translation>
-<translation id="5625631605902707678">მოწყობილობებს შორის</translation>
 <translation id="5626134646977739690">სახელი:</translation>
 <translation id="5627086634964711283">იგი ასევე აკონტროლებს იმას, თუ რა გვერდებია ნაჩვენები, როდესაც დააწკაპუნებთ მთავარ ღილაკს.</translation>
 <translation id="5627676517703583263">დაათვალიერეთ ვები გონივრულად Chrome-ის მეშვეობით</translation>
@@ -5242,7 +5239,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ეს მონაცემები ან თქვენი მოწყობილობა არ შეესაბამება თქვენი ორგანიზაციის მიერ უსაფრთხოებასთან დაკავშირებით დაწესებულ ზოგიერთ წესს. მიმართეთ თქვენს ადმინისტრატორს გამოსასწორებელი საკითხების შესახებ.}=1{ეს ფაილი ან თქვენი მოწყობილობა არ შეესაბამება თქვენი ორგანიზაციის მიერ უსაფრთხოებასთან დაკავშირებით დაწესებულ ზოგიერთ წესს. მიმართეთ თქვენს ადმინისტრატორს გამოსასწორებელი საკითხების შესახებ.}other{ეს ფაილები არ შეესაბამება თქვენი ორგანიზაციის მიერ უსაფრთხოებასთან დაკავშირებით დაწესებულ წესებს. მიმართეთ თქვენს ადმინისტრატორს გამოსასწორებელი საკითხების შესახებ.}}</translation>
 <translation id="5736796278325406685">გთხოვთ, შეიყვანოთ სწორი მომხმარებლის სახელი</translation>
 <translation id="5738093759615225354">წვდომის ეს გასაღები თქვენს კომპიუტერში შესასვლელად გჭირდებათ</translation>
-<translation id="5738329404678738022">შეინახეთ თქვენი სანიშნეები და სხვა კონტენტი სინქრონიზაციის მეშვეობით</translation>
 <translation id="5739017626473506901">შედით სისტემაში, რომ დაეხმაროთ <ph name="USER_NAME" />-ს სასწავლებლის ანგარიშის დამატებაში</translation>
 <translation id="5739235828260127894">დადასტურების მოლოდინში. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ძალიან დიდი</translation>
@@ -5264,7 +5260,6 @@
 <translation id="5757375109985023827">გადასახედად აირჩიეთ ჩანართი</translation>
 <translation id="5758631781033351321">აქ თქვენს საკითხავ სიას იპოვით</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" />-ს შეუძლია თქვენ მიერ <ph name="APP_NAME" />-ის მეშვეობით ამოსაბეჭდად გაგზავნილი დოკუმენტების წაკითხვა.</translation>
-<translation id="5760508342220592715">შედით სისტემაში, მეტი უპირატესობით რომ ისარგებლოთ</translation>
 <translation id="5762787084360227629">შეიყვანეთ Google ანგარიშის ინფორმაცია</translation>
 <translation id="5763751966069581670">USB მოწყობილობები ვერ მოიძებნა</translation>
 <translation id="5764483294734785780">აუდიოს შე&amp;ნახვა როგორც…</translation>
@@ -7806,7 +7801,6 @@
 <translation id="8059417245945632445">მოწყობილობების შ&amp;ემოწმება</translation>
 <translation id="8059456211585183827">შესანახი პრინტერები არ არის.</translation>
 <translation id="8061091456562007989">ცვლილების დაბრუნება</translation>
-<translation id="8061965471006133016">დამატებითი დაცვა თქვენი პაროლებისა და სხვა კონტენტისთვის</translation>
 <translation id="8061970399284390013">მართლწერისა და გრამატიკის შემოწმება</translation>
 <translation id="8061991877177392872">როგორც ჩანს, სხვა მოწყობილობაზე Google ასისტენტით უკვე დააყენეთ Voice Match. ძველი ჩანაწერები გამოყენებული იქნება ამ მოწყობილობაზე ხმის მოდელის შესაქმნელად.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ქაღალდის 1 ფურცელი}other{ქაღალდის {COUNT} ფურცელი}}</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 4aeb2c3..eac1faf 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -4443,7 +4443,6 @@
 <translation id="4977942889532008999">Кіру рұқсатын растау</translation>
 <translation id="4980805016576257426">Бұл кеңейтімде зиянды бағдарлама бар.</translation>
 <translation id="4981449534399733132">Барлық синхрондалған құрылғылардан және Google аккаунтынан браузерді пайдалану деректерін өшіру үшін, <ph name="BEGIN_LINK" />жүйеге кіріңіз<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Кез келген құрылғыда тоқтаған жеріңізден жалғастырыңыз.</translation>
 <translation id="4986706507552097681">Синхрондалатын контентті кез келген уақытта "Параметрлер" бөлімінде таңдай аласыз. Google жүйесі Search және басқа да қызметтерді тарихыңызға негіздеп жекелендіре алады.</translation>
 <translation id="4986728572522335985">Қауіпсіздік кілтінде сақталған барлық деректер және оның PIN коды жойылады</translation>
 <translation id="4988526792673242964">Беттер</translation>
@@ -4560,7 +4559,6 @@
 <translation id="5097349930204431044">Сіз кірген сайттар сізге не ұнайтынын анықтап, шолуды жалғастырған кезде жарнамаларды ұсына алады</translation>
 <translation id="5097649414558628673">Құрал: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Көрсеткі тоқтаған кезде, тінтуірдің түймесін автоматты түрде басу</translation>
-<translation id="5101683448725092498">Ақпаратыңыздың сақтық көшірмесін жасаңыз</translation>
 <translation id="5101839224773798795">Курсор тоқтағанда автоматты түрде басу</translation>
 <translation id="5106350808162641062">Өшіру</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> аккаунтын Family Link қадағалайды. Ата-ана қадағалауымен мектеп ресурстарын пайдалану үшін мектеп аккаунттарын қоса аласыз.</translation>
@@ -5124,7 +5122,6 @@
 <translation id="5623842676595125836">Журнал</translation>
 <translation id="5624120631404540903">Құпия сөздерді басқару</translation>
 <translation id="5625225435499354052">Google Pay-де өзгерту</translation>
-<translation id="5625631605902707678">Құрылғылар бойынша</translation>
 <translation id="5626134646977739690">Аты:</translation>
 <translation id="5627086634964711283">Сонымен қатар ол "Негізгі бет" түймесі басылғанда қайсы бет көрсетілетінін бақылайды.</translation>
 <translation id="5627676517703583263">Chrome браузерімен зерделі шолу</translation>
@@ -5236,7 +5233,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Бұл деректер немесе құрылғыңыз ұйымыңыздың кейбір қауіпсіздік саясаттарына сәйкес келмейді. Нені түзету керек екенін әкімшіңізден біліңіз.}=1{Бұл файл немесе құрылғыңыз ұйымыңыздың кейбір қауіпсіздік саясаттарына сәйкес келмейді. Нені түзету керек екенін әкімшіңізден біліңіз.}other{Бұл файлдар ұйымыңыздың кейбір қауіпсіздік саясаттарына сәйкес келмейді. Нені түзету керек екенін әкімшіңізден біліңіз.}}</translation>
 <translation id="5736796278325406685">Жарамды пайдаланушы атын енгізіңіз</translation>
 <translation id="5738093759615225354">Компьютерде аккаунтқа кіру үшін осы кіру кілті қажет.</translation>
-<translation id="5738329404678738022">Бетбелгілерді және т.б. ақпаратты синхрондап сақтаңыз.</translation>
 <translation id="5739017626473506901">Балаңызға (<ph name="USER_NAME" />) оқу аккаунтын енгізуге көмектесіңіз.</translation>
 <translation id="5739235828260127894">Расталуы керек. <ph name="LINK_BEGIN" />Толығырақ ақпарат<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Тым үлкен</translation>
@@ -5258,7 +5254,6 @@
 <translation id="5757375109985023827">Алдын ала қаралатын қойындыны таңдаңыз</translation>
 <translation id="5758631781033351321">Оқу тізімі осы жерге шығады</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> арқылы басып шығару үшін жіберген құжаттарыңызды <ph name="APP_NAME" /> оқи алады.</translation>
-<translation id="5760508342220592715">Көбірек функция пайдалану үшін аккаунтқа кіріңіз</translation>
 <translation id="5762787084360227629">Google аккаунтындағы ақпаратты енгізу</translation>
 <translation id="5763751966069581670">USB құрылғылары табылмады</translation>
 <translation id="5764483294734785780">Аудионы басқаша сақ&amp;тау…</translation>
@@ -7799,7 +7794,6 @@
 <translation id="8059417245945632445">&amp;Құрылғыларды тексеру</translation>
 <translation id="8059456211585183827">Сақтауға болатын принтер жоқ.</translation>
 <translation id="8061091456562007989">Оны қайта өзгерту</translation>
-<translation id="8061965471006133016">Құпия сөздеріңіз бен басқа ақпаратыңызды қосымша қорғау</translation>
 <translation id="8061970399284390013">Емлені және грамматиканы тексеру</translation>
 <translation id="8061991877177392872">Voice Match функциясын Assistant қызметімен басқа құрылғыда реттеп қойған сияқтысыз. Бұл алдыңғы жазбалар осы құрылғыда дауыс үлгісін жасау үшін пайдаланылған.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 қағаз парақ}other{{COUNT} қағаз парақ}}</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 5fb73b3..e335ce4 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -4287,6 +4287,7 @@
 <translation id="4824037980212326045">ការបម្រុង​ទុក និង​ការស្ដារ Linux</translation>
 <translation id="4824958205181053313">បោះបង់​ការ​ធ្វើ​សម​កាលកម្ម?</translation>
 <translation id="4825532258163983651">មិនអាចលុបកូដសម្ងាត់បានទេ</translation>
+<translation id="4827283332383516812">លុបកាត</translation>
 <translation id="4827675678516992122">មិន​អាចភ្ជាប់​បានទេ</translation>
 <translation id="4827784381479890589">បានបើកការពិនិត្យ​អក្ខរាវិរុទ្ធនៅក្នុងកម្មវិធីរុករកតាមអ៊ីនធឺណិត Chrome (អត្ថបទត្រូវបានផ្ញើទៅ Google ដើម្បីទទួលបានការណែនាំអំពី​អក្ខរាវិរុទ្ធ)</translation>
 <translation id="4827904420700932487">បង្កើតកូដ QR សម្រាប់​រូបភាពនេះ</translation>
@@ -4462,7 +4463,6 @@
 <translation id="4977942889532008999">អះអាងការចូលប្រើ</translation>
 <translation id="4980805016576257426">ផ្នែកបន្ថែមនេះមានផ្ទុកមេរោគ</translation>
 <translation id="4981449534399733132">ដើម្បីសម្អាត​ទិន្នន័យ​រុករក​ចេញពី​ឧបករណ៍​ដែលបាន​ធ្វើសមកាលកម្ម​ទាំងអស់​របស់អ្នក និងគណនី​ ​Google របស់អ្នក <ph name="BEGIN_LINK" />សូមចូលគណនី<ph name="END_LINK" />។</translation>
-<translation id="4982111327868342436">បន្ត​នៅត្រង់ចំណុច​ដែលអ្នក​បានចាកចេញ​នៅលើ​ឧបករណ៍​ណាក៏បាន</translation>
 <translation id="4986706507552097681">អ្នកអាចជ្រើសរើស​អ្វីដែលត្រូវធ្វើសមកាលកម្ម​នៅក្នុងការកំណត់បានជានិច្ច។ Google អាច​កំណត់​ម៉ាស៊ីន​​ស្វែងរក និង​សេវាកម្ម​ផ្សេង​ទៀតឱ្យមាន​លក្ខណៈ​ផ្ទាល់​ខ្លួន​ ផ្អែក​តាម​ប្រវត្តិ​របស់​អ្នក។</translation>
 <translation id="4986728572522335985">សកម្មភាពនេះ​នឹងលុប​ទិន្នន័យ​ទាំងអស់​នៅក្នុង​សោសុវត្ថិភាព រួមទាំង​កូដ PIN របស់​វាផងដែរ</translation>
 <translation id="4988526792673242964">ទំព័រ</translation>
@@ -4579,7 +4579,6 @@
 <translation id="5097349930204431044">គេហទំព័រ​ដែល​អ្នក​ចូលមើល​អាច​កំណត់​​អ្វី​ដែល​អ្នក​ចូលចិត្ត រួច​ណែនាំ​ការផ្សាយពាណិជ្ជកម្ម​នៅ​ពេល​ដែល​អ្នក​បន្ត​រុករក</translation>
 <translation id="5097649414558628673">ឧបករណ៍៖ <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ចុចដោយស្វ័យប្រវត្តិ នៅពេល​ទស្សន៍ទ្រនិច​ឈប់</translation>
-<translation id="5101683448725092498">បម្រុងទុក​អ្វីៗរបស់អ្នក</translation>
 <translation id="5101839224773798795">ចុច​ដោយស្វ័យប្រវត្តិ នៅពេលសញ្ញាព្រួញឈប់</translation>
 <translation id="5106350808162641062">ដកចេញ</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> ស្ថិតក្រោមការគ្រប់គ្រងរបស់ Family Link។ អ្នកអាចបញ្ចូលគណនីសាលារៀន ដើម្បីចូលប្រើធនធានរបស់សាលារៀនដោយប្រើការគ្រប់គ្រងរបស់មាតាបិតា។</translation>
@@ -5146,7 +5145,6 @@
 <translation id="5623842676595125836">កំណត់ត្រា</translation>
 <translation id="5624120631404540903">គ្រប់គ្រងពាក្យសម្ងាត់</translation>
 <translation id="5625225435499354052">កែនៅក្នុង Google Pay</translation>
-<translation id="5625631605902707678">នៅលើឧបករណ៍</translation>
 <translation id="5626134646977739690">ឈ្មោះ៖</translation>
 <translation id="5627086634964711283">វាក៏គ្រប់គ្រងអ្វីដែលទំព័របានបង្ហាញផងដែរ នៅពេលដែលអ្នក ចុចប៊ូតុង ទំព័រដើម។</translation>
 <translation id="5627676517703583263">រុក​រក​ដោយឆ្លាតវៃជាមួយ Chrome</translation>
@@ -5258,7 +5256,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ទិន្នន័យ​នេះ ឬឧបករណ៍​របស់អ្នក​មិន​បំពេញ​តាម​គោលការណ៍​មួយចំនួន​ក្នុងចំណោម​គោលការណ៍​សុវត្ថិភាព​របស់ស្ថាប័ន​អ្នកទេ។ សូមសាកសួរអ្នកគ្រប់គ្រង​របស់អ្នក​អំពីអ្វី​ដែល​ត្រូវការកែតម្រូវ។}=1{ឯកសារនេះ ឬឧបករណ៍​របស់អ្នក​មិន​បំពេញ​តាម​គោលការណ៍​មួយចំនួន​ក្នុងចំណោម​គោលការណ៍​សុវត្ថិភាព​របស់ស្ថាប័ន​អ្នកទេ។ សូមសាកសួរអ្នកគ្រប់គ្រង​របស់អ្នក​អំពីអ្វី​ដែល​ត្រូវការកែតម្រូវ។}other{ឯកសារ​ទាំងនេះ​មិន​បំពេញ​តាម​គោលការណ៍​មួយចំនួន​ក្នុងចំណោម​គោលការណ៍​សុវត្ថិភាព​របស់ស្ថាប័ន​អ្នកទេ។ សូមសាកសួរអ្នកគ្រប់គ្រង​របស់អ្នក​អំពីអ្វី​ដែល​ត្រូវការកែតម្រូវ។}}</translation>
 <translation id="5736796278325406685">សូម​បញ្ចូលឈ្មោះ​អ្នកប្រើប្រាស់​ដែលត្រឹមត្រូវ</translation>
 <translation id="5738093759615225354">អ្នកត្រូវការកូដសម្ងាត់នេះ ដើម្បីចូលកុំព្យូទ័ររបស់អ្នក</translation>
-<translation id="5738329404678738022">រក្សាទុក​ចំណាំ និង​អ្វីៗជាច្រើនទៀត​របស់អ្នក​ដោយប្រើសមកាលកម្ម</translation>
 <translation id="5739017626473506901">ចូល​គណនី ដើម្បី​ជួយ <ph name="USER_NAME" /> ក្នុងការ​បញ្ចូល​គណនី​សាលារៀន</translation>
 <translation id="5739235828260127894">កំពុង​រង់ចាំធ្វើ​ការផ្ទៀងផ្ទាត់។ <ph name="LINK_BEGIN" />ស្វែងយល់​បន្ថែម<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ធំខ្លាំង</translation>
@@ -5280,7 +5277,6 @@
 <translation id="5757375109985023827">ជ្រើសរើសផ្ទាំង ដើម្បីមើលសាកល្បង</translation>
 <translation id="5758631781033351321">អ្នក​នឹង​ឃើញ​បញ្ជីអាន​របស់អ្នក​នៅទីនេះ</translation>
 <translation id="5759728514498647443">ឯកសារដែលអ្នកផ្ញើដើម្បីបោះពុម្ពតាមរយៈ <ph name="APP_NAME" /> អាចត្រូវបានអានដោយ <ph name="APP_NAME" />។</translation>
-<translation id="5760508342220592715">ចូល ដើម្បីទទួលបាន​អត្ថប្រយោជន៍​ច្រើនទៀត</translation>
 <translation id="5762787084360227629">បញ្ចូល​ព័ត៌មាន​អំពី​គណនី Google</translation>
 <translation id="5763751966069581670">រកមិនឃើញឧបករណ៍ USB ទេ</translation>
 <translation id="5764483294734785780">រក្សាសម្លេងជា...</translation>
@@ -5316,6 +5312,7 @@
 <translation id="5792295754950501287">សកម្មភាព​ច្រើន​ទៀត​សម្រាប់ <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">សូមចុចប៊ូតុង​ថាមពលរបស់អ្នក</translation>
 <translation id="5792874008054171483">សកម្មភាព​ច្រើន​ទៀត​សម្រាប់ <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">វិធីបង់ប្រាក់នេះនឹងត្រូវបានលុបចេញពីឧបករណ៍នេះ</translation>
 <translation id="5793339252089865437">ប្រសិនបើអ្នក​ទាញយកកំណែថ្មី​តាមរយៈបណ្ដាញ​ទូរសព្ទ​ចល័ត ការទាញយកនេះអាចនឹងមាន​ការគិតប្រាក់លើការប្រើប្រាស់ទិន្នន័យលើសកំណត់។</translation>
 <translation id="5793420564274426163">ការបញ្ជាក់​ការផ្គូផ្គង</translation>
 <translation id="5793430094159150686">ពាក្យសម្ងាត់របស់អ្នកបាន​ផ្លាស់ប្ដូរ​ហើយ។ ដើម្បី​ស្ដារ​ទិន្នន័យ​មូលដ្ឋាន​របស់​អ្នក អ្នកត្រូវ​បញ្ចូល​ពាក្យសម្ងាត់​ចាស់​របស់​អ្នក។</translation>
@@ -7294,6 +7291,7 @@
 <translation id="7609148976235050828">សូមភ្ជាប់​អ៊ីនធឺណិត រួច​ព្យាយាម​ម្តងទៀត។</translation>
 <translation id="7612401678989660900">អនុញ្ញាត​ឱ្យចូលប្រើប្រាស់​សម្រាប់​កម្មវិធី និង​គេហទំព័រ​ដែលមាន​ការអនុញ្ញាត​ឱ្យប្រើមីក្រូហ្វូន</translation>
 <translation id="7612655942094160088">បើកមុខងារទូរសព្ទដែលបានភ្ជាប់។</translation>
+<translation id="7612989789287281429">កំពុងនាំអ្នកចូលគណនី…</translation>
 <translation id="7614260613810441905">សួរ​នៅពេល​គេហទំព័រចង់កែឯកសារ ឬថត​នៅលើឧបករណ៍​របស់អ្នក (បានណែនាំ)</translation>
 <translation id="761530003705945209">បម្រុង​ទុក​ទៅ​ក្នុង Google ថាស។ ងាយស្រួល​ក្នុងការ​ស្ដារ​ទិន្នន័យ​របស់​អ្នក ឬ​ប្ដូរ​ឧបករណ៍បានគ្រប់ពេល។ ការបម្រុង​ទុក​របស់អ្នក​រួមបញ្ចូល​ទាំង​ទិន្នន័យ​កម្មវិធី។ ការបម្រុងទុក​របស់អ្នក​ត្រូវបាន​បង្ហោះ​ទៅ Google និង​អ៊ីនគ្រីប​ដោយប្រើ​ពាក្យសម្ងាត់​គណនី Google របស់អ្នក។</translation>
 <translation id="7615365294369022248">មានបញ្ហា​ក្នុងការ​បញ្ចូលគណនី</translation>
@@ -7822,7 +7820,6 @@
 <translation id="8059417245945632445">តាមដានឧបករណ៍</translation>
 <translation id="8059456211585183827">មិនមាន​ម៉ាស៊ីន​បោះពុម្ព​សម្រាប់​រក្សាទុក​ទេ​។</translation>
 <translation id="8061091456562007989">ប្ដូរទៅ​ការកំណត់​ចាស់វិញ</translation>
-<translation id="8061965471006133016">ការការពារ​បន្ថែម​ចំពោះ​ពាក្យសម្ងាត់ និង​អ្វីៗជាច្រើនទៀត​របស់អ្នក</translation>
 <translation id="8061970399284390013">ការពិនិត្យអក្ខរាវិរុទ្ធ និង​វេយ្យាករណ៍</translation>
 <translation id="8061991877177392872">អ្នកហាក់​ដូចជា​បានរៀបចំ​មុខងារ Voice Match ជាមួយជំនួយការ​របស់អ្នក​នៅលើ​ឧបករណ៍​ផ្សេងទៀត​រួចហើយ។ ​សំឡេងថត​ពីមុនៗ​ទាំងនេះ​ត្រូវបានប្រើ ដើម្បី​បង្កើតគំរូ​សំឡេង​នៅលើ​ឧបករណ៍​នេះ។</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ក្រដាស 1 សន្លឹក}other{ក្រដាស {COUNT} សន្លឹក}}</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 5e43fbf..8fe907e 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -4456,7 +4456,6 @@
 <translation id="4977942889532008999">ಪ್ರವೇಶ ದೃಢೀಕರಿಸಿ</translation>
 <translation id="4980805016576257426">ಈ ವಿಸ್ತರಣೆಯು ಮಾಲ್‌‌ವೇರ್ ಅನ್ನು ಹೊಂದಿದೆ.</translation>
 <translation id="4981449534399733132">ಸಿಂಕ್ ಮಾಡಿರುವ ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳು ಮತ್ತು ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲು, <ph name="BEGIN_LINK" />ಸೈನ್ ಇನ್<ph name="END_LINK" /> ಮಾಡಿ.</translation>
-<translation id="4982111327868342436">ಯಾವುದೇ ಸಾಧನದಲ್ಲಿ ನೀವು ಗೇಮ್ ಅನ್ನು ನಿಲ್ಲಿಸಿದ ಸ್ಥಿತಿಯಿಂದಲೇ ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="4986706507552097681">ಏನನ್ನು ಸಿಂಕ್ ಮಾಡಬೇಕು ಎಂಬುದನ್ನು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ನೀವು ಯಾವಾಗ ಬೇಕಾದರೂ ಆಯ್ಕೆಮಾಡಬಹುದು. Google, ನಿಮ್ಮ ಇತಿಹಾಸವನ್ನು ಆಧರಿಸಿ Search ಮತ್ತು ಇತರ ಸೇವೆಗಳನ್ನು ವೈಯಕ್ತಿಕಗೊಳಿಸಬಹುದು.</translation>
 <translation id="4986728572522335985">ಭದ್ರತಾ ಕೀಯ ಪಿನ್ ಸೇರಿದಂತೆ, ಅದರಲ್ಲಿರುವ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಇದು ಅಳಿಸಿಹಾಕುತ್ತದೆ</translation>
 <translation id="4988526792673242964">ಪುಟಗಳು</translation>
@@ -4573,7 +4572,6 @@
 <translation id="5097349930204431044">ನೀವು ಭೇಟಿ ನೀಡುವ ಸೈಟ್ ನೀವು ಏನು ಇಷ್ಟಪಡುತ್ತೀರಿ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಬಹುದು ಮತ್ತು ನೀವು ಬ್ರೌಸ್ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸಿದಾಗ ಜಾಹೀರಾತುಗಳನ್ನು ಸೂಚಿಸಬಹುದು.</translation>
 <translation id="5097649414558628673">ಪರಿಕರ: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ಕರ್ಸರ್ ಚಲಿಸುವುದು ನಿಂತಾಗ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
-<translation id="5101683448725092498">ನಿಮ್ಮ ವಿಷಯವನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಿ</translation>
 <translation id="5101839224773798795">ಕರ್ಸರ್ ನಿಂತಾಗ, ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
 <translation id="5106350808162641062">ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> ಅನ್ನು Family Link ಮೂಲಕ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲಾಗುತ್ತಿದೆ. ಪೋಷಕರ ಮೇಲ್ವಿಚಾರಣೆಯೊಂದಿಗೆ ಶಾಲೆಯ ಮಾಹಿತಿಯ ಮೂಲಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಶಾಲೆಯ ಖಾತೆಗಳನ್ನು ಸೇರಿಸಬಹುದು.</translation>
@@ -5140,7 +5138,6 @@
 <translation id="5623842676595125836">ಲಾಗ್</translation>
 <translation id="5624120631404540903">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="5625225435499354052">Google Pay ನಲ್ಲಿ ಎಡಿಟ್ ಮಾಡಿ</translation>
-<translation id="5625631605902707678">ಸಾಧನಗಳಾದ್ಯಂತ</translation>
 <translation id="5626134646977739690">ಹೆಸರು:</translation>
 <translation id="5627086634964711283">ನೀವು ಹೋಮ್ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಕಾಣಿಸಿಕೊಳ್ಳುವ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation>
 <translation id="5627676517703583263">Chrome ಮೂಲಕ ಸ್ಮಾರ್ಟ್‌ ಆಗಿ ಬ್ರೌಸ್ ಮಾಡಿ</translation>
@@ -5252,7 +5249,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ಈ ಡೇಟಾ ಅಥವಾ ನಿಮ್ಮ ಸಾಧನವು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಕೆಲವು ಭದ್ರತಾ ನೀತಿಗಳನ್ನು ಪೂರೈಸುವುದಿಲ್ಲ. ಏನನ್ನು ಸರಿಪಡಿಸಬೇಕು ಎಂಬುದರ ಕುರಿತು ನಿಮ್ಮ ನಿರ್ವಾಹಕರ ಜೊತೆಗೆ ಪರಿಶೀಲಿಸಿ.}=1{ಈ ಫೈಲ್ ಅಥವಾ ನಿಮ್ಮ ಸಾಧನವು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಕೆಲವು ಭದ್ರತಾ ನೀತಿಗಳನ್ನು ಪೂರೈಸುವುದಿಲ್ಲ. ಏನನ್ನು ಸರಿಪಡಿಸಬೇಕು ಎಂಬುದರ ಕುರಿತು ನಿಮ್ಮ ನಿರ್ವಾಹಕರ ಜೊತೆಗೆ ಪರಿಶೀಲಿಸಿ.}one{ಈ ಫೈಲ್‌ಗಳು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಕೆಲವು ಭದ್ರತಾ ನೀತಿಗಳನ್ನು ಪೂರೈಸುವುದಿಲ್ಲ. ಏನನ್ನು ಸರಿಪಡಿಸಬೇಕು ಎಂಬುದರ ಕುರಿತು ನಿಮ್ಮ ನಿರ್ವಾಹಕರ ಜೊತೆಗೆ ಪರಿಶೀಲಿಸಿ.}other{ಈ ಫೈಲ್‌ಗಳು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಕೆಲವು ಭದ್ರತಾ ನೀತಿಗಳನ್ನು ಪೂರೈಸುವುದಿಲ್ಲ. ಏನನ್ನು ಸರಿಪಡಿಸಬೇಕು ಎಂಬುದರ ಕುರಿತು ನಿಮ್ಮ ನಿರ್ವಾಹಕರ ಜೊತೆಗೆ ಪರಿಶೀಲಿಸಿ.}}</translation>
 <translation id="5736796278325406685">ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ಬಳಕೆದಾರರ ಹೆಸರನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="5738093759615225354">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ನಿಮಗೆ ಈ ಪಾಸ್‌ಕೀ ಅಗತ್ಯವಿದೆ</translation>
-<translation id="5738329404678738022">ಸಿಂಕ್‌ನೊಂದಿಗೆ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಸಂಗ್ರಹಿಸಿ</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> ಅವರಿಗೆ ಶಾಲೆಯ ಖಾತೆಯನ್ನು ಸೇರಿಸುವುದಕ್ಕೆ ಸಹಾಯ ಮಾಡಲು ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="5739235828260127894">ಪರಿಶೀಲನೆಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ಅತ್ಯಂತ ದೊಡ್ಡದು</translation>
@@ -5274,7 +5270,6 @@
 <translation id="5757375109985023827">ಪೂರ್ವವೀಕ್ಷಣೆ ಮಾಡಲು ಟ್ಯಾಬ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="5758631781033351321">ನಿಮ್ಮ ಓದುವ ಪಟ್ಟಿಯನ್ನು ಇಲ್ಲಿ ಕಾಣಬಹುದು</translation>
 <translation id="5759728514498647443">ನೀವು <ph name="APP_NAME" /> ಮೂಲಕ ಪ್ರಿಂಟ್ ಮಾಡಲು ಕಳುಹಿಸುವ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು <ph name="APP_NAME" /> ಮೂಲಕ ಓದಬಹುದಾಗಿದೆ.</translation>
-<translation id="5760508342220592715">ಹೆಚ್ಚಿನ ಪ್ರಯೋಜನಗಳಿಗಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="5762787084360227629">Google ಖಾತೆಯ ಮಾಹಿತಿಯನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="5763751966069581670">ಯಾವುದೇ USB ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation>
 <translation id="5764483294734785780">ಇದರಂತೆ ಆಡಿಯೋ ಉ&amp;ಳಿಸಿ...</translation>
@@ -7816,7 +7811,6 @@
 <translation id="8059417245945632445">&amp;ಸಾಧನಗಳನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="8059456211585183827">ಉಳಿಸಲು ಯಾವುದೇ ಪ್ರಿಂಟರ್‌ಗಳು ಲಭ್ಯವಿಲ್ಲ.</translation>
 <translation id="8061091456562007989">ಹಳೆಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಬದಲಾಯಿಸಿ</translation>
-<translation id="8061965471006133016">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳಿಗೆ ಹೆಚ್ಚುವರಿ ರಕ್ಷಣೆ</translation>
 <translation id="8061970399284390013">ಕಾಗುಣಿತ ಮತ್ತು ವ್ಯಾಕರಣವನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="8061991877177392872">ನೀವು ಈಗಾಗಲೇ ಮತ್ತೊಂದು ಸಾಧನದಲ್ಲಿ ನಿಮ್ಮ Assistant ಮೂಲಕ Voice Match ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ಈ ಸಾಧನದಲ್ಲಿ ವಾಯ್ಸ್ ಮಾಡೆಲ್ ಅನ್ನು ರೂಪಿಸಲು ಈ ಹಿಂದೆ ರೆಕಾರ್ಡಿಂಗ್‌ಗಳನ್ನು ಬಳಸಲಾಗಿತ್ತು.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 ಕಾಗದದ ಹಾಳೆ}one{{COUNT} ಕಾಗದದ ಹಾಳೆಗಳು}other{{COUNT} ಕಾಗದದ ಹಾಳೆಗಳು}}</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 2197d75..f29fa8c 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">하이퍼텍스트 전송 프로토콜 보안(HTTPS)</translation>
 <translation id="1059944192885972544">'<ph name="SEARCH_TEXT" />' 검색결과로 탭 <ph name="NUM" />개 찾음</translation>
 <translation id="1060292118287751956">화면 업데이트 빈도 결정</translation>
+<translation id="1060570945511946595">티켓 관리</translation>
 <translation id="1061130374843955397"><ph name="DEVICE_TYPE" /> 기기를 구매해 주셔서 감사합니다</translation>
 <translation id="1061373870045429865">이 링크의 QR 코드 생성</translation>
 <translation id="1061904396131502319">곧 휴식 시간입니다</translation>
@@ -1126,6 +1127,7 @@
 <translation id="1975841812214822307">삭제...</translation>
 <translation id="1976150099241323601">보안 장치 로그인</translation>
 <translation id="1977965994116744507"><ph name="DEVICE_TYPE" />을(를) 잠금 해제하려면 휴대전화를 더 가까이 가져오세요.</translation>
+<translation id="1978666928180318515">Bruschetta 삭제</translation>
 <translation id="1979095679518582070">기능을 사용 중지해도 이 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 데는 영향을 미치지 않습니다.</translation>
 <translation id="1979280758666859181"><ph name="PRODUCT_NAME" />의 이전 버전으로 채널을 변경하려 합니다. 채널 버전이 현재 기기에 설치되어 있는 버전과 일치할 때 채널 변경이 적용됩니다.</translation>
 <translation id="197989455406964291">KDC가 암호화 유형을 지원하지 않습니다.</translation>
@@ -1933,6 +1935,7 @@
 <translation id="2672142220933875349">잘못된 crx 파일입니다. 압축을 해제하지 못했습니다.</translation>
 <translation id="2673135533890720193">인터넷 사용 기록 확인</translation>
 <translation id="2674764818721168631">사용 안함</translation>
+<translation id="2675570801872027281">Bruschetta를 삭제하는 중에 오류가 발생했습니다. 다시 시도해 주세요.</translation>
 <translation id="2676492189600898281">자동 완성 의견 보내기</translation>
 <translation id="2678063897982469759">다시 사용</translation>
 <translation id="2678100101831051676">전송할 수 없습니다</translation>
@@ -2931,6 +2934,7 @@
 <translation id="3593965109698325041">인증서 이름 제약조건</translation>
 <translation id="3596012367874587041">앱 설정</translation>
 <translation id="3596414637720633074">시크릿 모드에서 타사 쿠키 차단</translation>
+<translation id="3598010454707842106">'Chrome 맞춤설정'을 클릭합니다.</translation>
 <translation id="3599221874935822507">양각</translation>
 <translation id="3600051066689725006">웹 요청 정보</translation>
 <translation id="360180734785106144">새로운 기능이 출시되면 즉시 제공합니다.</translation>
@@ -3926,6 +3930,7 @@
 <translation id="4495419450179050807">이 페이지에 표시하지 않음</translation>
 <translation id="4497145443434063861">PC와 Chromecast가 서로 다른 Wi-Fi 네트워크(예: 2.4GHz와 5GHz)에 연결됨</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" />이(가) 다운되었습니다</translation>
+<translation id="4500647907053779331">선택사항을 <ph name="LANGUAGE" />로 번역(&amp;T)</translation>
 <translation id="450099669180426158">느낌표 아이콘</translation>
 <translation id="4501530680793980440">삭제 확인</translation>
 <translation id="4502423230170890588">기기에서 삭제</translation>
@@ -4456,7 +4461,6 @@
 <translation id="4977942889532008999">액세스 확인</translation>
 <translation id="4980805016576257426">확장 프로그램에 멀웨어가 포함되어 있습니다.</translation>
 <translation id="4981449534399733132">동기화된 모든 기기 및 Google 계정에서 인터넷 사용 기록을 삭제하려면 <ph name="BEGIN_LINK" />로그인<ph name="END_LINK" />하세요.</translation>
-<translation id="4982111327868342436">어떤 기기에서든 중단한 곳부터 이어서 작업하기</translation>
 <translation id="4986706507552097681">언제든지 설정에서 동기화할 항목을 선택할 수 있습니다. Google에서는 사용자의 방문 기록을 기반으로 Google 검색 및 기타 서비스를 맞춤설정할 수 있습니다.</translation>
 <translation id="4986728572522335985">PIN을 비롯하여 보안 키에 저장된 모든 데이터가 삭제됩니다</translation>
 <translation id="4988526792673242964">페이지</translation>
@@ -4573,7 +4577,6 @@
 <translation id="5097349930204431044">방문한 사이트에서 내가 좋아하는 콘텐츠가 무엇인지 파악할 수 있으며, 내가 인터넷을 계속 탐색하면 사이트에서 광고를 제안할 수 있습니다.</translation>
 <translation id="5097649414558628673">도구: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">커서가 멈추면 자동 클릭</translation>
-<translation id="5101683448725092498">데이터 백업하기</translation>
 <translation id="5101839224773798795">커서가 멈추면 자동으로 클릭</translation>
 <translation id="5106350808162641062">삭제</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> 계정은 Family Link를 통해 감독됩니다. 자녀가 부모 감독 기능이 적용되는 상태에서 학교 자료에 액세스할 수 있도록 학교 계정을 추가할 수 있습니다.</translation>
@@ -5139,7 +5142,6 @@
 <translation id="5623842676595125836">로그</translation>
 <translation id="5624120631404540903">비밀번호 관리</translation>
 <translation id="5625225435499354052">Google Pay에서 수정</translation>
-<translation id="5625631605902707678">여러 기기에서 작업 가능</translation>
 <translation id="5626134646977739690">이름:</translation>
 <translation id="5627086634964711283">또한 홈 버튼을 클릭할 때 표시되는 페이지를 설정합니다.</translation>
 <translation id="5627676517703583263">Chrome으로 편리하게 탐색</translation>
@@ -5251,7 +5253,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{데이터 또는 기기가 조직의 보안 정책 중 일부를 준수하지 않습니다. 관리자와 함께 문제 해결을 상의하세요.}=1{파일 또는 기기가 조직의 보안 정책 중 일부를 준수하지 않습니다. 관리자와 함께 문제 해결을 상의하세요.}other{파일이 조직의 보안 정책 중 일부를 준수하지 않습니다. 관리자와 함께 문제 해결을 상의하세요.}}</translation>
 <translation id="5736796278325406685">올바른 사용자 이름을 입력하세요.</translation>
 <translation id="5738093759615225354">컴퓨터에 로그인하려면 이 패스키가 필요합니다.</translation>
-<translation id="5738329404678738022">동기화를 통해 북마크 등 저장하기</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" />님이 학교 계정을 추가할 수 있도록 로그인하세요.</translation>
 <translation id="5739235828260127894">확인을 기다리는 중입니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">아주 크게</translation>
@@ -5273,7 +5274,6 @@
 <translation id="5757375109985023827">미리 볼 탭 선택</translation>
 <translation id="5758631781033351321">여기에서 읽기 목록을 확인할 수 있습니다</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" />을(를) 통해 인쇄하려고 전송한 문서를 <ph name="APP_NAME" />에서 읽을 수 있습니다.</translation>
-<translation id="5760508342220592715">로그인하여 더 많은 혜택 누리기</translation>
 <translation id="5762787084360227629">Google 계정 정보 입력</translation>
 <translation id="5763751966069581670">USB 기기를 찾을 수 없습니다.</translation>
 <translation id="5764483294734785780">오디오를 다른 이름으로 저장...(&amp;V)</translation>
@@ -5744,6 +5744,7 @@
 <translation id="617213288191670920">추가된 언어 없음</translation>
 <translation id="6173623053897475761">PIN을 다시 입력하세요</translation>
 <translation id="6175314957787328458">Microsoft Domain GUID</translation>
+<translation id="6177412385419165772">삭제 중…</translation>
 <translation id="6178664161104547336">인증서 선택</translation>
 <translation id="6178682841350631965">로그인 데이터가 업데이트되었습니다.</translation>
 <translation id="6180510783007738939">선 도구</translation>
@@ -6220,6 +6221,7 @@
 <translation id="6619801788773578757">키오스크 애플리케이션 추가</translation>
 <translation id="6619990499523117484">PIN 확인</translation>
 <translation id="6620254580880484313">컨테이너 이름</translation>
+<translation id="6620927550847360014"><ph name="DEVICE_TYPE" />에서 Bruschetta를 삭제하시겠어요?</translation>
 <translation id="6621391692573306628">이 탭을 다른 기기로 보내려면 두 기기 모두에서 Chrome에 로그인하세요.</translation>
 <translation id="6622980291894852883">이미지 계속 차단</translation>
 <translation id="6624036901798307345">태블릿 모드에서 탭 카운터 툴바 버튼을 탭하여 각 탭의 썸네일을 보여주는 새로운 탭 표시줄을 엽니다.</translation>
@@ -6437,6 +6439,7 @@
 <translation id="6818547713623251698">휴대전화의 사진, 미디어, 알림, 앱을 봅니다.</translation>
 <translation id="6818802132960437751">내장 바이러스 보호 기능</translation>
 <translation id="6818920801736417483">비밀번호를 저장하시겠습니까?</translation>
+<translation id="6820079682647046800">Kerberos 인증 실패</translation>
 <translation id="6823174134746916417">터치패드 탭하여 클릭</translation>
 <translation id="6824564591481349393">이메일 주소 복사(&amp;E)</translation>
 <translation id="6824584962142919697">요소 검사(&amp;I)</translation>
@@ -6591,6 +6594,7 @@
 <translation id="6955698182324067397">sshd 데몬을 설정하고 USB 드라이브에서 부팅하도록 사용 설정하는 ChromeOS 디버깅 기능을 사용 설정 중입니다.</translation>
 <translation id="6955893174999506273">추가 스위치 1개 할당</translation>
 <translation id="6957044667612803194">PIN을 지원하지 않는 보안 키입니다.</translation>
+<translation id="6960133692707095572">티켓 없이 방문</translation>
 <translation id="6960507406838246615">Linux 업데이트 필요</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> 음성 파일을 다운로드할 수 없습니다. 다운로드가 나중에 시도됩니다. 다운로드가 완료될 때까지는 음성이 Google로 전송되어 처리됩니다.</translation>
 <translation id="696103774840402661">이 <ph name="DEVICE_TYPE" /> 기기 내 모든 사용자의 파일 및 로컬 데이터가 영구적으로 삭제되었습니다.</translation>
@@ -7813,7 +7817,6 @@
 <translation id="8059417245945632445">기기 검사(&amp;I)</translation>
 <translation id="8059456211585183827">저장할 수 있는 프린터가 없습니다.</translation>
 <translation id="8061091456562007989">이전 설정으로 되돌리기</translation>
-<translation id="8061965471006133016">비밀번호 등의 보안 강화</translation>
 <translation id="8061970399284390013">맞춤법 및 문법 검사</translation>
 <translation id="8061991877177392872">다른 기기의 어시스턴트에서 이미 Voice Match를 설정한 것 같습니다. 이전에 녹음된 음성을 사용하여 이 기기에서 음성 모델을 만들었습니다.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{용지 1장}other{용지 {COUNT}장}}</translation>
@@ -8054,6 +8057,7 @@
 <translation id="8272443605911821513">'추가 도구' 메뉴에서 확장 프로그램을 클릭하여 확장 프로그램을 관리할 수 있습니다.</translation>
 <translation id="8272786333453048167">다시 허용</translation>
 <translation id="8273905181216423293">지금 다운로드</translation>
+<translation id="827488840488530039">방문하려는 페이지에서 Kerberos 티켓을 확인할 수 없습니다.</translation>
 <translation id="8274921654076766238">키보드 포커스를 따라 돋보기 이동</translation>
 <translation id="8274924778568117936">업데이트가 완료될 때까지 <ph name="DEVICE_TYPE" />을(를) 끄거나 닫지 마세요. 설치가 완료되면 <ph name="DEVICE_TYPE" />이(가) 다시 시작됩니다.</translation>
 <translation id="8275038454117074363">가져오기</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index d2998e1..1a2e944 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -4457,7 +4457,6 @@
 <translation id="4977942889532008999">Жеткини ырастоо</translation>
 <translation id="4980805016576257426">Бул кеңейтүүдө кесепеттүү программа бар.</translation>
 <translation id="4981449534399733132">Бардык шайкештирилген түзмөктөрүңүздөгү жана Google аккаунтуңуздагы серептөө дайындарын тазалоо үчүн <ph name="BEGIN_LINK" />аккаунтуңузга кириңиз<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Каалаган түзмөктө оюнду токтогон жериңизден улантасыз</translation>
 <translation id="4986706507552097681">Эмнени шайкештирүү керек экенин жөндөөлөрдөн ар дайым тандай аласыз. Google таржымалыңыздын негизинде Издөөнү жана башка кызматтарды жекелештириши мүмкүн.</translation>
 <translation id="4986728572522335985">Ушуну менен коопсуздук ачкычындагы бардык дайындар, анын ичинде анын PIN коду да өчүрүлөт</translation>
 <translation id="4988526792673242964">Барактар</translation>
@@ -4574,7 +4573,6 @@
 <translation id="5097349930204431044">Сиз баш баккан сайттар жактырган нерселериңизди аныктап, серептеген сайын жарнамаларды сунушташат</translation>
 <translation id="5097649414558628673">Курал: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Курсор токтогондо автоматтык түрдө чыкылдатуу</translation>
-<translation id="5101683448725092498">Бардык нерселердин камдык көчүрмөлөрүн сактап коюңуз</translation>
 <translation id="5101839224773798795">Курсор токтогондо, автоматтык түрдө чыкылдатылсын</translation>
 <translation id="5106350808162641062">Өчүрүү</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> Family Link аркылуу башкарылат. Мектеп булактарына ата-эненин көзөмөлү менен кирүү үчүн мектеп аккаунттарын кошо аласыз.</translation>
@@ -5140,7 +5138,6 @@
 <translation id="5623842676595125836">Таржымал</translation>
 <translation id="5624120631404540903">Сырсөздөрдү башкаруу</translation>
 <translation id="5625225435499354052">Google Pay'де түзөтүү</translation>
-<translation id="5625631605902707678">Бардык түзмөктөрдө</translation>
 <translation id="5626134646977739690">Аты:</translation>
 <translation id="5627086634964711283">Башкы баскычты чыкылдатканыңызда кайсы барак көрсөтүлөөрүн да көзөмөлдөйт.</translation>
 <translation id="5627676517703583263">Chrome менен шамдагай серептөө</translation>
@@ -5252,7 +5249,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Бул маалымат же түзмөгүңүз уюмуңуздун коопсуздукту камсыздоо саясаттарында коюлган талаптарга жооп бербейт. Эмне кылуу керек экенин билүү үчүн администраторуңузга кайрылыңыз.}=1{Бул файл же түзмөгүңүз уюмуңуздун коопсуздукту камсыздоо саясаттарында коюлган талаптарга жооп бербейт. Эмне кылуу керек экенин билүү үчүн администраторуңузга кайрылыңыз.}other{Бул файлдар уюмуңуздун коопсуздукту камсыздоо саясаттарында коюлган талаптарга жооп бербейт. Эмне кылуу керек экенин билүү үчүн администраторуңузга кайрылыңыз.}}</translation>
 <translation id="5736796278325406685">Жарактуу колдонуучунун атын киргизиңиз</translation>
 <translation id="5738093759615225354">Компьютерге ушул мүмкүндүк алуу ачкычы менен киришиңиз керек</translation>
-<translation id="5738329404678738022">Шайкештирүү менен кыстармаларды жана башкаларды сактайсыз</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> балаңызга мектеп аккаунтун кошууга жардам берүү үчүн аккаунтуңузга кириңиз.</translation>
 <translation id="5739235828260127894">Ырастоо күтүлүүдө. <ph name="LINK_BEGIN" />Кеңири маалымат<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Өтө чоң</translation>
@@ -5274,7 +5270,6 @@
 <translation id="5757375109985023827">Алдын ала көрүү үчүн өтмөктү тандаңыз</translation>
 <translation id="5758631781033351321">Окула тургандардын тизмесин ушул жерден табасыз</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> аркылуу басып чыгарууга жөнөтүлгөн документтерди <ph name="APP_NAME" /> окуп алышы мүмкүн.</translation>
-<translation id="5760508342220592715">Дагы башка артыкчылыктарды колдонуу үчүн аккаунтуңузга кириңиз</translation>
 <translation id="5762787084360227629">Google аккаунтундагы маалыматты киргизүү</translation>
 <translation id="5763751966069581670">USB түзмөктөрү табылган жок</translation>
 <translation id="5764483294734785780">Аудиону төмөнкүдөй сак&amp;тоо…</translation>
@@ -7812,7 +7807,6 @@
 <translation id="8059417245945632445">Түзмөктөрдү &amp;текшерүү</translation>
 <translation id="8059456211585183827">Сактоо үчүн жеткиликтүү принтерлер жок.</translation>
 <translation id="8061091456562007989">Кайра өзгөртүү</translation>
-<translation id="8061965471006133016">Сырсөздөр жана башкалар үчүн кошумча коопсуздук камсыздалат</translation>
 <translation id="8061970399284390013">Орфографияны жана грамматиканы текшерүү</translation>
 <translation id="8061991877177392872">Жардамчыңыздагы Voice Match'ти буга чейин башка түзмөктө жөндөп алган окшойсуз. Мурунку жаздырууларыңыздын негизинде үнүңүздүн үлгүсүн ушул түзмөктө даярдоого болот.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 барак}other{{COUNT} барак}}</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 9fc13a8..27ba3f0e 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation>
 <translation id="1059944192885972544">ພົບ <ph name="NUM" /> ແຖບສຳລັບ '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="1060292118287751956">ກຳນົດຄວາມຖີ່ທີ່ໜ້າຈໍອັບເດດ</translation>
+<translation id="1060570945511946595">ຈັດການປີ້</translation>
 <translation id="1061130374843955397">ຍິນດີຕ້ອນຮັບສູ່ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ</translation>
 <translation id="1061373870045429865">ສ້າງລະຫັດ QR ສຳລັບລິ້ງນີ້</translation>
 <translation id="1061904396131502319">ໃກ້ຮອດເວລາພັກແລ້ວ</translation>
@@ -1123,6 +1124,7 @@
 <translation id="1975841812214822307">ເອົາອອກ...</translation>
 <translation id="1976150099241323601">ລົງຊື່ເຂົ້າ​ໃຊ້ອຸ​ປະ​ກອນຄວາມປອດໄພ</translation>
 <translation id="1977965994116744507">ຈັບໂທລະສັບຂອງທ່ານເຂົ້າມາໃກ້ໆເພື່ອປົດລັອກ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ.</translation>
+<translation id="1978666928180318515">ລຶບ Bruschetta ອອກ</translation>
 <translation id="1979095679518582070">ການປິດຄຸນສົມບັດນີ້ບໍ່ມີຜົນຕໍ່ກັບຄວາມສາມາດຂອງອຸປະກອນນີ້ໃນການສົ່ງຂໍ້ມູນທີ່ຈຳເປັນສຳລັບການບໍລິການທີ່ສຳຄັນ ເຊັ່ນ: ການອັບເດດລະບົບ ແລະ ຄວາມປອດໄພ.</translation>
 <translation id="1979280758666859181">ທ່ານກໍາລັງປ່ຽນຊ່ອງດ້ວຍ <ph name="PRODUCT_NAME" /> ລຸ້ນເກົ່າກ່ວາ. ການປ່ຽນຊ່ອງຈະຖືກນໍາໃຊ້ ເມື່ອລຸ້ນຂອງຊ່ອງກົງກັບລຸ້ນທີ່ໄດ້ຕິດຕັ້ງໄວ້ກັບອຸປະກອນຂອງທ່ານໃນປະຈຸບັນ.</translation>
 <translation id="197989455406964291">KDC ບໍ່ຮອງຮັບປະເພດການເຂົ້າລະຫັດ</translation>
@@ -1931,6 +1933,7 @@
 <translation id="2672142220933875349">ໄຟລ​໌ crx ບໍ່​ດີ​, ການແຍກອອກບໍ່ສໍາ​ເລັດ​.</translation>
 <translation id="2673135533890720193">ອ່ານປະຫວັດການທ່ອງເວັບຂອງທ່ານ</translation>
 <translation id="2674764818721168631">ປິດ</translation>
+<translation id="2675570801872027281">ການລຶບ Bruschetta ຜິດພາດ. ກະລຸນາລອງໃໝ່.</translation>
 <translation id="2676492189600898281">ສົ່ງຄຳຕິຊົມການຕື່ມຂໍ້ມູນອັດຕະໂນມັດ</translation>
 <translation id="2678063897982469759">ເປີດໃຊ້ງານຄືນໃໝ່​</translation>
 <translation id="2678100101831051676">ບໍ່ສາມາດສົ່ງສັນຍານໄດ້.</translation>
@@ -2929,6 +2932,7 @@
 <translation id="3593965109698325041">ຂໍ້ຈໍາກັດ​ຊື່ໃບຢັ້ງຢືນ</translation>
 <translation id="3596012367874587041">ການຕັ້ງຄ່າແອັບ</translation>
 <translation id="3596414637720633074">ບລັອກຄຸກກີ້ພາກສ່ວນທີສາມໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
+<translation id="3598010454707842106">ຄລິກ "ປັບແຕ່ງ Chrome"</translation>
 <translation id="3599221874935822507">ຍົກຂຶ້ນ</translation>
 <translation id="3600051066689725006">ຂໍ້ມູນຄຳຂໍເວັບ</translation>
 <translation id="360180734785106144">ໃຫ້ຄຸນສົມບັດໃໝ່ເມື່ອພວກມັນມີໃຫ້ນຳໃຊ້</translation>
@@ -3927,6 +3931,7 @@
 <translation id="4497145443434063861">PC ແລະ Chromecast ຢູ່ເຄືອຂ່າຍ Wi-Fi ອື່ນ (ຕົວຢ່າງ: 2.4GHz
     ກັບ 5GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ເກີດຂັດຂ້ອງ</translation>
+<translation id="4500647907053779331">&amp;ແປການເລືອກເປັນ <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">ໄອຄອນເຄື່ອງໝາຍອຸທານ</translation>
 <translation id="4501530680793980440">ຢືນ​ຢັນ​ການ​ເອົາອອກ</translation>
 <translation id="4502423230170890588">ລຶບອອກຈາກອຸປະກອນນີ້</translation>
@@ -4456,7 +4461,6 @@
 <translation id="4977942889532008999">ຢືນ​ຢັນ​ການ​ເຂົ້າ​ຫາ</translation>
 <translation id="4980805016576257426">ສ່ວນຂະຫຍາຍນີ້ປະກອບມີມາລແວ.</translation>
 <translation id="4981449534399733132">ເພື່ອລຶບລ້າງຂໍ້ມູນການທ່ອງເວັບອອກຈາກອຸປະກອນທີ່ຊິ້ງຂໍ້ມູນຂອງທ່ານທັງໝົດ ແລະ ບັນຊີ Google ຂອງທ່ານ, ກະລຸນາ <ph name="BEGIN_LINK" />ເຂົ້າສູ່ລະບົບ<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">ສືບຕໍ່ຈາກບ່ອນທີ່ທ່ານຫຼິ້ນຄ້າງໄວ້ຢູ່ອຸປະກອນໃດກໍໄດ້</translation>
 <translation id="4986706507552097681">ທ່ານສາມາດເລືອກສິ່ງທີ່ຕ້ອງການຊິ້ງໄດ້ສະເໝີໃນການຕັ້ງຄ່າ. Google ອາດປັບແຕ່ງການຊອກຫາ ແລະ ບໍລິການອື່ນໆໃຫ້ເປັນແບບສ່ວນຕົວໂດຍອ້າງອີງໃສ່ປະຫວັດຂອງທ່ານ.</translation>
 <translation id="4986728572522335985">ນີ້ຈະລຶບຂໍ້ມູນທັງໝົດໃນກະແຈຄວາມປອດໄພອອກ, ຮວມທັງ PIN ຂອງມັນ</translation>
 <translation id="4988526792673242964">ໜ້າ</translation>
@@ -4573,7 +4577,6 @@
 <translation id="5097349930204431044">ເວັບໄຊທີ່ທ່ານເຂົ້າເບິ່ງສາມາດກໍານົດສິ່ງທີ່ທ່ານມັກ ແລະ ຫຼັງຈາກນັ້ນແນະນໍາການໂຄສະນາໃນຂະນະທີ່ທ່ານມີການທ່ອງເນັດຕໍ່ເນື່ອງ</translation>
 <translation id="5097649414558628673">ເຄື່ອງມື: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ຄລິກໂດຍອັດຕະໂນມັດເມື່ອເຄີເຊີຢຸດ</translation>
-<translation id="5101683448725092498">ສຳຮອງຂໍ້ມູນຂອງທ່ານ</translation>
 <translation id="5101839224773798795">ຄລິກອັດຕະໂນມັດເມື່ອເຄີເຊີຢຸດ</translation>
 <translation id="5106350808162641062">ລຶບອອກ</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> ໄດ້ຮັບການເບິ່ງແຍງກວດກາໂດຍ Family Link. ທ່ານສາມາດເພີ່ມບັນຊີໂຮງຮຽນເພື່ອເຂົ້າເຖິງຊັບພະຍາກອນໂຮງຮຽນທີ່ມີການເບິ່ງແຍງກວດກາຂອງພໍ່ແມ່.</translation>
@@ -5138,7 +5141,6 @@
 <translation id="5623842676595125836">ປື້​ມບັນທຶກ</translation>
 <translation id="5624120631404540903">ຈັດການລະ​ຫັດ​ຜ່ານ​</translation>
 <translation id="5625225435499354052">ແກ້ໄຂໃນ Google Pay</translation>
-<translation id="5625631605902707678">ໃນອຸປະກອນຕ່າງໆ</translation>
 <translation id="5626134646977739690">ຊື່:</translation>
 <translation id="5627086634964711283">ມັນຍັງຄວບຄຸມວ່າຈະໃຫ້ສະແດງໜ້າໃດຂຶ້ນ ເມື່ອທ່ານຄລິກປຸ່ມໜ້າຫຼັກ.</translation>
 <translation id="5627676517703583263">ທ່ອງເວັບຢ່າງສະຫຼາດດ້ວຍ Chrome</translation>
@@ -5250,7 +5252,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ຂໍ້ມູນນີ້ ຫຼື ອຸປະກອນຂອງທ່ານບໍ່ເປັນໄປຕາມນະໂຍບາຍຄວາມປອດໄພບາງຢ່າງຂອງອົງການທ່ານ. ກະລຸນາກວດສອບກັບຜູ້ເບິ່ງແຍງຂອງທ່ານວ່າຕ້ອງແກ້ໄຂຫຍັງ.}=1{ໄຟລ໌ນີ້ ຫຼື ອຸປະກອນຂອງທ່ານບໍ່ເປັນໄປຕາມນະໂຍບາຍຄວາມປອດໄພບາງຢ່າງຂອງອົງການທ່ານ. ກະລຸນາກວດສອບກັບຜູ້ເບິ່ງແຍງຂອງທ່ານວ່າຕ້ອງແກ້ໄຂຫຍັງ.}other{ໄຟລ໌ເຫຼົ່ານີ້ບໍ່ເປັນໄປຕາມນະໂຍບາຍຄວາມປອດໄພບາງຢ່າງຂອງອົງການທ່ານ. ກະລຸນາກວດສອບກັບຜູ້ເບິ່ງແຍງຂອງທ່ານວ່າຕ້ອງແກ້ໄຂຫຍັງ.}}</translation>
 <translation id="5736796278325406685">ກະລຸນາປ້ອນຊື່ຜູ້ໃຊ້ທີ່ຖືກຕ້ອງ</translation>
 <translation id="5738093759615225354">ທ່ານຕ້ອງການກະແຈຜ່ານນີ້ເພື່ອເຂົ້າສູ່ລະບົບຄອມພິວເຕີຂອງທ່ານ</translation>
-<translation id="5738329404678738022">ຈັດເກັບບຸກມາກຂອງທ່ານ ແລະ ອື່ນໆດ້ວຍການຊິ້ງຂໍ້ມູນ</translation>
 <translation id="5739017626473506901">ເຂົ້າສູ່ລະບົບເພື່ອຊ່ວຍ <ph name="USER_NAME" /> ເພີ່ມບັນຊີໂຮງຮຽນ</translation>
 <translation id="5739235828260127894">ກຳລັງລໍຖ້າການຢັ້ງຢືນ. <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">​ໃຫຍ່​ຫຼາຍ</translation>
@@ -5272,7 +5273,6 @@
 <translation id="5757375109985023827">ເລືອກແຖບໃດໜຶ່ງເພື່ອເບິ່ງຕົວຢ່າງ</translation>
 <translation id="5758631781033351321">ທ່ານຈະເຫັນລາຍການອື່ນຂອງທ່ານຢູ່ບ່ອນນີ້</translation>
 <translation id="5759728514498647443">ເອ​ກະ​ສານ​ທີ່​ທ່ານ​ສົ່ງ​ເພື່ອ​ພິມ​ຜ່ານ​ທາງ <ph name="APP_NAME" /> ສາ​ມາດ​ອ່ານ​ໄດ້ໂດຍ <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">ເຂົ້າສູ່ລະບົບສຳລັບສິດທິປະໂຫຍດເພີ່ມເຕີມ</translation>
 <translation id="5762787084360227629">ແກ້ໄຂຂໍ້ມູນບັນຊີ Google</translation>
 <translation id="5763751966069581670">ບໍ່ພົບອຸປະກອນ USB</translation>
 <translation id="5764483294734785780">ບັນທຶກສຽງເປັນ...</translation>
@@ -5743,6 +5743,7 @@
 <translation id="617213288191670920">ບໍ່ໄດ້ເພີ່ມພາສາເທື່ອ</translation>
 <translation id="6173623053897475761">ພິມ PIN ຂອງທ່ານອີກຄັ້ງ</translation>
 <translation id="6175314957787328458">GUID ໂດເມນຂອງ Microsoft</translation>
+<translation id="6177412385419165772">ກຳລັງລຶບອອກ…</translation>
 <translation id="6178664161104547336">ເລືອກ​ໃບ​ຢັ້ງ​ຢືນ​</translation>
 <translation id="6178682841350631965">ອັບເດດຂໍ້ມູນການເຂົ້າສູ່ລະບົບຂອງທ່ານແລ້ວ</translation>
 <translation id="6180510783007738939">ເຄື່ອງມືເສັ້ນ</translation>
@@ -6219,6 +6220,7 @@
 <translation id="6619801788773578757">ເພີ່ມແອັບພລິເຄຊັນ kiosk</translation>
 <translation id="6619990499523117484">ຢືນຢັນ​ລະຫັດ PIN ຂອງທ່ານ</translation>
 <translation id="6620254580880484313">ຊື່ກ່ອງບັນຈຸ</translation>
+<translation id="6620927550847360014">ລຶບ Bruschetta ອອກຈາກ <ph name="DEVICE_TYPE" /> ຂອງທ່ານບໍ?</translation>
 <translation id="6621391692573306628">ເພື່ອສົ່ງແຖບນີ້ໄປຫາອຸປະກອນອື່ນ, ໃຫ້ເຂົ້າສູ່ລະບົບຫາ Chrome ຢູ່ທັງສອງອຸປະກອນ</translation>
 <translation id="6622980291894852883">ສືບ​ຕໍ່​ບລັອກຮູບ​</translation>
 <translation id="6624036901798307345">ໃນໂໝດແທັບເລັດ, ໃຫ້ແຕະໃສ່ປຸ່ມແຖບເຄື່ອງມືຕົວນັບແຖບເພື່ອເປີດລາຍແຖບໃໝ່ທີ່ສະແດງຮູບຕົວຢ່າງຂອງແຕ່ລະແຖບ.</translation>
@@ -6436,6 +6438,7 @@
 <translation id="6818547713623251698">ເບິ່ງຮູບພາບ, ມີເດຍ, ການແຈ້ງເຕືອນ ແລະ ແອັບຂອງໂທລະສັບທ່ານ</translation>
 <translation id="6818802132960437751">ລະບົບປ້ອງກັນໄວຣັສໃນຕົວ</translation>
 <translation id="6818920801736417483">ບັນທຶກລະຫັດຜ່ານບໍ?</translation>
+<translation id="6820079682647046800">ການພິສູດຢືນຢັນ Kerberos ບໍ່ສຳເລັດ</translation>
 <translation id="6823174134746916417">ແຕະເພື່ອຄລິກແຜ່ນສຳຜັດ</translation>
 <translation id="6824564591481349393">ກັອບປີ້ທີ່ຢູ່ອີເມວ</translation>
 <translation id="6824584962142919697">&amp;ກວດກາອົງປະກອບ</translation>
@@ -6590,6 +6593,7 @@
 <translation id="6955698182324067397">ທ່ານກຳລັງເປີດການນຳໃຊ້ຄຸນສົມບັດການດີບັກ​ ChromeOS ເຊິ່ງຈະຕັ້ງຄ່າ sshd daemon ແລະ ເປີດການນຳໃຊ້ການເປີດຈາກໄດຣຟ໌ USB.</translation>
 <translation id="6955893174999506273">ມອບໝາຍ 1 ສະວິດເພີ່ມເຕີມ</translation>
 <translation id="6957044667612803194">ກະແຈຄວາມປອດໄພນີ້ບໍ່ຮອງຮັບ PIN</translation>
+<translation id="6960133692707095572">ເຂົ້າເບິ່ງໂດຍບໍ່ມີປີ້</translation>
 <translation id="6960507406838246615">ຈຳເປັນຕ້ອງອັບເດດ Linux</translation>
 <translation id="6960648667961844909">ບໍ່ສາມາດດາວໂຫຼດໄຟລ໌ການເວົ້າ <ph name="LANGUAGE" /> ໄດ້. ຈະລອງດາວໂຫຼດໃນພາຍຫຼັງ. ການເວົ້າຖືກສົ່ງໄປໃຫ້ Google ເພື່ອການປະມວນຜົນຈົນກວ່າການດາວໂຫຼດຈະສຳເລັດ.</translation>
 <translation id="696103774840402661">ໄຟລ໌ ແລະ ຂໍ້ມູນໃນເຄື່ອງທັງໝົດສຳລັບຜູ້ໃຊ້ທັງໝົດໃນ <ph name="DEVICE_TYPE" /> ໄດ້ຖືກລຶບຖາວອນແລ້ວ.</translation>
@@ -7809,7 +7813,6 @@
 <translation id="8059417245945632445">​ກວດ​ກາ​ອຸ​ປະ​ກອນ</translation>
 <translation id="8059456211585183827">ບໍ່ມີເຄື່ອງພິມພ້ອມໃຫ້ບັນທຶກໄວ້.</translation>
 <translation id="8061091456562007989">ປ່ຽນກັບຄືນ</translation>
-<translation id="8061965471006133016">ການປົກປ້ອງລະຫັດຜ່ານຂອງທ່ານພິເສດ ແລະ ອື່ນໆ</translation>
 <translation id="8061970399284390013">ການກວດສອບການສະກົດຄຳ ແລະ ໄວຍາກອນ</translation>
 <translation id="8061991877177392872">ປາກົດວ່າທ່ານໄດ້ຕັ້ງຄ່າ Voice Match ກັບຜູ້ຊ່ວຍຂອງທ່ານຢູ່ໃນອຸປະກອນອື່ນແລ້ວ. ບັນທຶກສຽງກ່ອນໜ້າເຫຼົ່ານີ້ຖືກໃຊ້ເພື່ອສ້າງຮູບແບບສຽງໃນອຸປະກອນນີ້.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ເຈ້ຍ 1 ແຜ່ນ}other{ເຈ້ຍ {COUNT} ແຜ່ນ}}</translation>
@@ -8050,6 +8053,7 @@
 <translation id="8272443605911821513">ຈັດການສ່ວນຂະຫຍາຍຂອງທ່ານໂດຍການຄລິກສ່ວນຂະຫຍາຍຢູ່ໃນເມນູ "ເຄື່ອງມືເພີ່ມເຕີມ".</translation>
 <translation id="8272786333453048167">ອະນຸຍາດອີກຄັ້ງ</translation>
 <translation id="8273905181216423293">ດາວໂຫຼດດຽວນີ້</translation>
+<translation id="827488840488530039">ໜ້າທີ່ທ່ານພະຍາຍາມເຂົ້າເບິ່ງບໍ່ສາມາດກວດຢືນຢັນປີ້ Kerberos ຂອງທ່ານໄດ້</translation>
 <translation id="8274921654076766238">ແວ່ນຂະຫຍາຍເປັນໄປຕາມໂຟກັສແປ້ນພິມ</translation>
 <translation id="8274924778568117936">ຢ່າປິດ <ph name="DEVICE_TYPE" /> ຂອງທ່ານຈົນກວ່າວ່າການອັບເດດຈະສຳເລັດ. <ph name="DEVICE_TYPE" /> ຂອງທ່ານຈະປິດເປີດໃໝ່ຫຼັງຈາກການຕິດຕັ້ງສຳເລັດແລ້ວ.</translation>
 <translation id="8275038454117074363">ນໍາ​ເຂົ້າ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 2149eb88..2aa05d7f 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -4460,7 +4460,6 @@
 <translation id="4977942889532008999">Patvirtinti prieigą</translation>
 <translation id="4980805016576257426">Šiame plėtinyje yra kenkėjiškų programų.</translation>
 <translation id="4981449534399733132">Norėdami išvalyti naršymo duomenis iš sinchronizuotų įrenginių ir „Google“ paskyros, <ph name="BEGIN_LINK" />prisijunkite<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Tęskite nuo ten, kur baigėte, bet kuriame įrenginyje</translation>
 <translation id="4986706507552097681">Bet kada galite pasirinkti, ką norite sinchronizuoti, skiltyje „Nustatymai“. „Google“ gali suasmeninti Paiešką ir kitas paslaugas pagal jūsų istoriją.</translation>
 <translation id="4986728572522335985">Taip bus ištrinti visi saugos rakte išsaugoti duomenys, įskaitant jo PIN kodą</translation>
 <translation id="4988526792673242964">Psl.</translation>
@@ -4577,7 +4576,6 @@
 <translation id="5097349930204431044">Svetainės, kuriose lankotės, gali nustatyti, kas jums patinka, ir siūlyti skelbimus jums toliau naršant</translation>
 <translation id="5097649414558628673">Įrankis: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automatiškai spustelėti žymekliui sustojus</translation>
-<translation id="5101683448725092498">Atsarginės turinio kopijos kūrimas</translation>
 <translation id="5101839224773798795">Automatiškai spustelėti sustojus žymekliui</translation>
 <translation id="5106350808162641062">Pašalinti</translation>
 <translation id="510695978163689362">Paskyra <ph name="USER_EMAIL" /> prižiūrima naudojant „Family Link“. Galite pridėti mokyklos paskyrų, kad būtų galima pasiekti mokyklos išteklius naudojant tėvų priežiūros funkciją.</translation>
@@ -5144,7 +5142,6 @@
 <translation id="5623842676595125836">Žurnalas</translation>
 <translation id="5624120631404540903">Tvarkyti slaptažodžius</translation>
 <translation id="5625225435499354052">Redaguoti sistemoje „Google Pay“</translation>
-<translation id="5625631605902707678">Skirtinguose įrenginiuose</translation>
 <translation id="5626134646977739690">Pavadinimas:</translation>
 <translation id="5627086634964711283">Ji taip pat kontroliuoja, koks puslapis rodomas, kai spustelėjate pagrindinio puslapio mygtuką.</translation>
 <translation id="5627676517703583263">Naršykite išmaniai naudodami „Chrome“</translation>
@@ -5256,7 +5253,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Šie duomenys arba įrenginys neatitinka tam tikrų organizacijos saugos politikos nuostatų. Susisiekite su administratoriumi ir sužinokite, ką reikia pataisyti.}=1{Šis failas arba įrenginys neatitinka tam tikrų organizacijos saugos politikos nuostatų. Susisiekite su administratoriumi ir sužinokite, ką reikia pataisyti.}one{Šie failai neatitinka kai kurių organizacijos saugos politikos nuostatų. Susisiekite su administratoriumi ir sužinokite, ką reikia pataisyti.}few{Šie failai neatitinka kai kurių organizacijos saugos politikos nuostatų. Susisiekite su administratoriumi ir sužinokite, ką reikia pataisyti.}many{Šie failai neatitinka kai kurių organizacijos saugos politikos nuostatų. Susisiekite su administratoriumi ir sužinokite, ką reikia pataisyti.}other{Šie failai neatitinka kai kurių organizacijos saugos politikos nuostatų. Susisiekite su administratoriumi ir sužinokite, ką reikia pataisyti.}}</translation>
 <translation id="5736796278325406685">Įveskite tinkamą naudotojo vardą</translation>
 <translation id="5738093759615225354">Jums reikia šio slaptažodžio, kad galėtumėte prisijungti prie kompiuterio</translation>
-<translation id="5738329404678738022">Saugokite žymes ir atlikite daugiau veiksmų naudodami sinchronizavimą</translation>
 <translation id="5739017626473506901">Prisijunkite, kad padėtumėte <ph name="USER_NAME" /> pridėti mokyklos paskyrą</translation>
 <translation id="5739235828260127894">Laukiama patvirtinimo. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Labai didelis</translation>
@@ -5278,7 +5274,6 @@
 <translation id="5757375109985023827">Pasirinkite norimą peržiūrėti skirtuką</translation>
 <translation id="5758631781033351321">Čia rasite skaitymo sąrašą</translation>
 <translation id="5759728514498647443">Dokumentus, kuriuos siunčiate spausdinti naudodami „<ph name="APP_NAME" />“, gali skaityti „<ph name="APP_NAME" />“.</translation>
-<translation id="5760508342220592715">Daugiau privilegijų prisijungus</translation>
 <translation id="5762787084360227629">Įvesti „Google“ paskyros informaciją</translation>
 <translation id="5763751966069581670">Nerasta jokių USB įrenginių</translation>
 <translation id="5764483294734785780">Iš&amp;saugoti garso įrašą kaip...</translation>
@@ -7823,7 +7818,6 @@
 <translation id="8059417245945632445">&amp;Tikrinti įrenginius</translation>
 <translation id="8059456211585183827">Nėra galimų išsaugoti spausdintuvų.</translation>
 <translation id="8061091456562007989">Grąžinti ankstesnį variantą</translation>
-<translation id="8061965471006133016">Papildoma slaptažodžių apsauga ir dar daugiau</translation>
 <translation id="8061970399284390013">Rašybos ir gramatikos tikrinimas</translation>
 <translation id="8061991877177392872">Panašu, kad jau esate nustatę „Voice Match“ naudodami Padėjėją kitame įrenginyje. Ankstesni įrašai buvo naudojami kuriant balso modelį šiame įrenginyje.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 popieriaus lapas}one{{COUNT} popieriaus lapas}few{{COUNT} popieriaus lapai}many{{COUNT} popieriaus lapo}other{{COUNT} popieriaus lapų}}</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 897581d..48446eab 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -379,6 +379,7 @@
 <translation id="1339009753652684748">Piekļūt Asistentam, kad sakāt: “Ok Google.” Lai taupītu akumulatora enerģiju, izvēlieties vienumu “Ieslēgts (ieteicams)”. Asistents reaģēs tikai tad, kad ierīce būs pievienota strāvas avotam vai kad tiks veikta tās uzlāde.</translation>
 <translation id="13392265090583506">Pieejamības iestatījumi</translation>
 <translation id="1340527397989195812">Dublējiet multividi no savas ierīces, izmantojot lietotni “Faili”.</translation>
+<translation id="1341701348342335220">Lieliski!</translation>
 <translation id="1341871421050612057">Nevar sinhronizēt ar kontu <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Piešķiriet Linux lietotnēm atļauju piekļūt USB ierīcēm. Pēc USB ierīces noņemšanas operētājsistēmā Linux netiks saglabāti šīs ierīces dati.</translation>
 <translation id="1343920184519992513">Atsākt darbu no vietas, kur to beidzāt, un atvērt konkrētu lapu kopu</translation>
@@ -3626,6 +3627,7 @@
 <translation id="4232375817808480934">Kerberos konfigurēšana</translation>
 <translation id="4235965441080806197">Atcelt pierakstīšanos</translation>
 <translation id="4236163961381003811">Atklāt vairāk paplašinājumu</translation>
+<translation id="4237282663517880406">Rādīt Google diska ieteikumus</translation>
 <translation id="4241182343707213132">Restartēšana, lai atjauninātu organizācijas lietotnes</translation>
 <translation id="4242145785130247982">Vairāku klienta sertifikātu lietošana netiek atbalstīta</translation>
 <translation id="4242533952199664413">Atvērt iestatījumus</translation>
@@ -4441,7 +4443,6 @@
 <translation id="4977942889532008999">Piekļuves apstiprināšana</translation>
 <translation id="4980805016576257426">Šis paplašinājums satur ļaunprātīgu programmatūru.</translation>
 <translation id="4981449534399733132">Lai notīrītu pārlūkošanas datus no visām savām sinhronizētajām ierīcēm un Google konta, <ph name="BEGIN_LINK" />pierakstieties<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Turpiniet iesākto jebkurā ierīcē</translation>
 <translation id="4986706507552097681">Jebkurā laikā iestatījumos varat izvēlēties, ko sinhronizēt. Google var personalizēt pakalpojumu Meklēšana un citus pakalpojumus, ņemot vērā jūsu vēsturi.</translation>
 <translation id="4986728572522335985">Tas izdzēsīs visus drošības atslēgas datus, ieskaitot tās PIN</translation>
 <translation id="4988526792673242964">Lapas</translation>
@@ -4558,7 +4559,6 @@
 <translation id="5097349930204431044">Jūsu apmeklētās vietnes var izsecināt, kas jums patīk, un ieteikt reklāmas, kamēr turpināt pārlūkošanu</translation>
 <translation id="5097649414558628673">Rīks: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automātiska noklikšķināšana, kad kursors apstājas</translation>
-<translation id="5101683448725092498">Satura dublēšana</translation>
 <translation id="5101839224773798795">Automātiski noklikšķināt, kad kursors apstājas</translation>
 <translation id="5106350808162641062">Noņemt</translation>
 <translation id="510695978163689362">Lietotāja <ph name="USER_EMAIL" /> konts tiek pārvaldīts lietotnē Family Link. Varat pievienot mācību iestādes kontus, lai piekļūtu mācību iestādes resursiem, pat ja ir spēkā vecāku uzraudzība.</translation>
@@ -5122,7 +5122,6 @@
 <translation id="5623842676595125836">Žurnāls</translation>
 <translation id="5624120631404540903">Pārvaldīt paroles</translation>
 <translation id="5625225435499354052">Rediģēt pakalpojumā Google Pay</translation>
-<translation id="5625631605902707678">Darbs vairākās ierīcēs</translation>
 <translation id="5626134646977739690">Nosaukums:</translation>
 <translation id="5627086634964711283">Tas nosaka arī to, kāda lapa tiks rādīta, kad noklikšķināsiet uz pogas “Sākums”.</translation>
 <translation id="5627676517703583263">Vieda pārlūkošana ar Chrome</translation>
@@ -5234,7 +5233,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Šie dati vai jūsu ierīce neatbilst dažām jūsu organizācijas drošības politikām. Sazinieties ar administratoru, lai noskaidrotu, kādas problēmas jānovērš.}=1{Šis fails vai jūsu ierīce neatbilst dažām jūsu organizācijas drošības politikām. Sazinieties ar administratoru, lai noskaidrotu, kādas problēmas jānovērš.}zero{Šie faili neatbilst dažām jūsu organizācijas drošības politikām. Sazinieties ar administratoru, lai noskaidrotu, kādas problēmas jānovērš.}one{Šie faili neatbilst dažām jūsu organizācijas drošības politikām. Sazinieties ar administratoru, lai noskaidrotu, kādas problēmas jānovērš.}other{Šie faili neatbilst dažām jūsu organizācijas drošības politikām. Sazinieties ar administratoru, lai noskaidrotu, kādas problēmas jānovērš.}}</translation>
 <translation id="5736796278325406685">Lūdzu, ievadiet derīgu lietotājvārdu.</translation>
 <translation id="5738093759615225354">Šī piekļuves atslēga jums ir nepieciešama, lai pierakstītos datorā.</translation>
-<translation id="5738329404678738022">Grāmatzīmju un citu datu saglabāšana, izmantojot sinhronizāciju</translation>
 <translation id="5739017626473506901">Pierakstieties, lai palīdzētu lietotājam <ph name="USER_NAME" /> pievienot mācību iestādes kontu</translation>
 <translation id="5739235828260127894">Tiek gaidīta verifikācija. <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation>
 <translation id="5739458112391494395">Ļoti liels</translation>
@@ -5256,7 +5254,6 @@
 <translation id="5757375109985023827">Atlasiet cilni, kuru priekšskatīt</translation>
 <translation id="5758631781033351321">Šeit varēsiet skatīt savu lasīšanas sarakstu</translation>
 <translation id="5759728514498647443">Dokumenti, kurus sūtāt drukāšanai, izmantojot lietotni <ph name="APP_NAME" />, var tikt lasīti lietotnē <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Pierakstieties, lai iegūtu vairāk priekšrocību</translation>
 <translation id="5762787084360227629">Ievadīt Google konta informāciju</translation>
 <translation id="5763751966069581670">Nav atrasta neviena USB ierīce</translation>
 <translation id="5764483294734785780">S&amp;aglabāt audio kā...</translation>
@@ -7797,7 +7794,6 @@
 <translation id="8059417245945632445">&amp;Pārbaudīt ierīces</translation>
 <translation id="8059456211585183827">Nav pieejams neviens printeris, ko saglabāt.</translation>
 <translation id="8061091456562007989">Atjaunot iepriekšējos iestatījumus</translation>
-<translation id="8061965471006133016">Papildu aizsardzība parolēm un citiem datiem</translation>
 <translation id="8061970399284390013">Pareizrakstības un gramatikas pārbaude</translation>
 <translation id="8061991877177392872">Šķiet, ka jau esat iestatījis funkciju Voice Match savam Asistentam citā ierīcē. Šie iepriekšējie ieraksti tika izmantoti balss modeļa izveidei šajā ierīcē.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{Viena papīra lapa}zero{{COUNT} papīra lapu}one{{COUNT} papīra lapa}other{{COUNT} papīra lapas}}</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 1c819dd..1b1c6b6 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -380,6 +380,7 @@
 <translation id="1339009753652684748">Пристапувајте до вашиот „Помошник“ кога ќе изговорите „Ok Google“. За да заштедите батерија, изберете „Вклучено (препорачано)“. Вашиот „Помошник“ ќе одговара само кога уредот е приклучен на струја или кога се полни.</translation>
 <translation id="13392265090583506">Пристапност</translation>
 <translation id="1340527397989195812">Направете резервни копии на медиумите од уредот со користење на апликацијата Датотеки.</translation>
+<translation id="1341701348342335220">Одлично!</translation>
 <translation id="1341871421050612057">Не може да се синхронизира со <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Дајте им дозвола на апликациите на Linux да пристапуваат до USB-уреди. Linux нема да го запомни USB-уредот откако ќе се отстрани.</translation>
 <translation id="1343920184519992513">Продолжете каде што застанавте и отворете конкретен комплет страници</translation>
@@ -3640,6 +3641,7 @@
 <translation id="4232375817808480934">Конфигурирајте го Kerberos</translation>
 <translation id="4235965441080806197">Откажи најавување</translation>
 <translation id="4236163961381003811">Откријте други екстензии</translation>
+<translation id="4237282663517880406">Прикажи предлози од Google Drive</translation>
 <translation id="4241182343707213132">Рестартирајте за да се ажурираат апликациите на организацијата</translation>
 <translation id="4242145785130247982">Не се поддржани повеќе клиентски сертификати</translation>
 <translation id="4242533952199664413">Отвори ги поставките</translation>
@@ -4456,7 +4458,6 @@
 <translation id="4977942889532008999">Потврди пристап</translation>
 <translation id="4980805016576257426">Екстензијата содржи злонамерен софтвер.</translation>
 <translation id="4981449534399733132">За да ги избришете податоците од прелистувањето од сите ваши синхронизирани уреди и од сметката на Google, <ph name="BEGIN_LINK" />најавете се<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Продолжете од каде што сте застанале од кој било уред</translation>
 <translation id="4986706507552097681">Секогаш може да изберете што да синхронизирате во „Поставки“. Google може да ги персонализира „Пребарување“ и другите услуги според вашата историја.</translation>
 <translation id="4986728572522335985">Ова ќе ги избрише сите податоци на безбедносниот клуч, вклучувајќи го и неговиот PIN</translation>
 <translation id="4988526792673242964">Страници</translation>
@@ -4573,7 +4574,6 @@
 <translation id="5097349930204431044">Сајтовите што ги посетувате може да одредат што ви се допаѓа и потоа да ви предлагаат реклами кога ќе продолжите со прелистувањето</translation>
 <translation id="5097649414558628673">Алатка: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Автоматски кликнувај кога курсорот ќе застане</translation>
-<translation id="5101683448725092498">Направете бекап од вашите работи</translation>
 <translation id="5101839224773798795">Кликни автоматски кога покажувачот ќе запре</translation>
 <translation id="5106350808162641062">Отстрани</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> е под надзор на Family Link. Може да додадете училишни сметки за пристап до училишни ресурси со родителски надзор.</translation>
@@ -5139,7 +5139,6 @@
 <translation id="5623842676595125836">Дневник</translation>
 <translation id="5624120631404540903">Управувај со лозинки</translation>
 <translation id="5625225435499354052">Изменете во Google Pay</translation>
-<translation id="5625631605902707678">На уреди</translation>
 <translation id="5626134646977739690">Име:</translation>
 <translation id="5627086634964711283">Контролира и која страница се прикажува кога ќе кликнете на копчето Почеток.</translation>
 <translation id="5627676517703583263">Прелистувајте паметно со Chrome</translation>
@@ -5251,7 +5250,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Податоциве или вашиот уред не исполнува некои од правилата за безбедност на вашата организација. Проверете со администраторот околу тоа што треба да се коригира.}=1{Датотекава или вашиот уред не исполнува некои од правилата за безбедност на вашата организација. Проверете со администраторот околу тоа што треба да се коригира.}one{Датотекиве не исполнуваат некои од правилата за безбедност на вашата организација. Проверете со администраторот околу тоа што треба да се коригира.}other{Датотекивте не исполнуваат некои од правилата за безбедност на вашата организација. Проверете со администраторот околу тоа што треба да се коригира.}}</translation>
 <translation id="5736796278325406685">Внесете важечко корисничко име</translation>
 <translation id="5738093759615225354">Овој криптографски клуч ви е потребен за најавување на вашиот компјутер</translation>
-<translation id="5738329404678738022">Зачувувајте ги обележувачите и друго со синхронизација</translation>
 <translation id="5739017626473506901">Најавете се за да му помогнете на корисникот <ph name="USER_NAME" /> да додаде училишна сметка</translation>
 <translation id="5739235828260127894">Се чека потврда. <ph name="LINK_BEGIN" />Дознајте повеќе<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Многу голем</translation>
@@ -5273,7 +5271,6 @@
 <translation id="5757375109985023827">Изберете картичка за да ја прегледате</translation>
 <translation id="5758631781033351321">Списокот за читање ќе го најдете тука</translation>
 <translation id="5759728514498647443">Документите што сте ги испратиле за печатење преку <ph name="APP_NAME" /> може да се читаат од <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Најавете се за други придобивки</translation>
 <translation id="5762787084360227629">Внесете податоци за сметката на Google</translation>
 <translation id="5763751966069581670">Нема пронајдени USB-уреди</translation>
 <translation id="5764483294734785780">За&amp;чувај аудио како...</translation>
@@ -7813,7 +7810,6 @@
 <translation id="8059417245945632445">&amp;Провери уреди</translation>
 <translation id="8059456211585183827">Нема достапни печатачи за зачувување.</translation>
 <translation id="8061091456562007989">Врати како што беше</translation>
-<translation id="8061965471006133016">Дополнителна заштита на вашите лозинки и друго</translation>
 <translation id="8061970399284390013">Проверка на правопис и граматика</translation>
 <translation id="8061991877177392872">Се чини дека веќе сте ја поставиле Voice Match за вашиот „Помошник на Google“ на друг уред. Претходните снимки се користеа за да се направи гласовниот модел за уредов.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 лист хартија}one{{COUNT} лист хартија}other{{COUNT} листови хартија}}</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 9c99750b..e74905c 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -4269,6 +4269,7 @@
 <translation id="4824037980212326045">Linux ബാക്കപ്പെടുത്ത് പുനഃസ്ഥാപിക്കൽ</translation>
 <translation id="4824958205181053313">സമന്വയം റദ്ദാക്കണോ?</translation>
 <translation id="4825532258163983651">പാസ്‌കീ ഇല്ലാതാക്കാനാകുന്നില്ല</translation>
+<translation id="4827283332383516812">കാർഡ് ഇല്ലാതാക്കുക</translation>
 <translation id="4827675678516992122">കണക്റ്റ് ചെയ്യാനായില്ല</translation>
 <translation id="4827784381479890589">Chrome ബ്രൗസറിൽ, മെച്ചപ്പെടുത്തിയ സ്പെൽ ചെക്ക് (സ്‌പെല്ലിംഗ് നിർദ്ദേശങ്ങൾക്ക് ടെക്‌സ്റ്റ് Google-ന് അയയ്‌ക്കുന്നു)</translation>
 <translation id="4827904420700932487">ഈ ചിത്രത്തിന് QR കോഡ് സൃഷ്‌ടിക്കുക</translation>
@@ -4444,7 +4445,6 @@
 <translation id="4977942889532008999">ആക്‌സസ് സ്ഥിരീകരിക്കുക</translation>
 <translation id="4980805016576257426">ഈ വിപുലീകരണത്തിൽ മാൽവെയർ അടങ്ങിയിരിക്കുന്നു.</translation>
 <translation id="4981449534399733132">നിങ്ങളുടെ സമന്വയിപ്പിച്ച എല്ലാ ഉപകരണങ്ങളിൽ നിന്നും Google അക്കൗണ്ടിൽ നിന്നും ബ്രൗസിംഗ് ഡാറ്റ മായ്ക്കാൻ<ph name="BEGIN_LINK" />സൈൻ ഇൻ ചെയ്യുക<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">ഏത് ഉപകരണത്തിലും നിങ്ങൾ നിർത്തിയ ഇടത്ത് നിന്ന് വീണ്ടും തുടങ്ങുക</translation>
 <translation id="4986706507552097681">എന്തൊക്കെ സമന്വയിപ്പിക്കണമെന്ന് നിങ്ങൾക്ക് എല്ലായ്‌പ്പോഴും ക്രമീകരണത്തിൽ തിരഞ്ഞെടുക്കാം. നിങ്ങളുടെ ചരിത്രം അടിസ്ഥാനമാക്കി Search-ഉം മറ്റ് സേവനങ്ങളും Google വ്യക്തിപരമാക്കിയേക്കാം.</translation>
 <translation id="4986728572522335985">സുരക്ഷാ കീയിലെ പിൻ ഉൾപ്പെടെയുള്ള എല്ലാ ഡാറ്റയും ഇത് ഇല്ലാതാക്കും</translation>
 <translation id="4988526792673242964">പേജുകള്‍</translation>
@@ -4561,7 +4561,6 @@
 <translation id="5097349930204431044">നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകൾക്ക് നിങ്ങൾക്ക് ഇഷ്ടമുള്ളതെന്തെന്ന് നിർണ്ണയിക്കാനും ബ്രൗസ് ചെയ്യുന്നത് തുടരുന്നതിനിടെ പരസ്യങ്ങൾ നിർദ്ദേശിക്കാനുമാകും</translation>
 <translation id="5097649414558628673">ടൂൾ: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">കഴ്‌സർ നിർത്തുമ്പോൾ സ്വയമേവ ക്ലിക്ക് ചെയ്യുക</translation>
-<translation id="5101683448725092498">നിങ്ങളുടെ ഫയലുകൾ ബാക്കപ്പ് ചെയ്യുക</translation>
 <translation id="5101839224773798795">കഴ്‌സർ നിൽക്കുമ്പോൾ സ്വയമേവ ക്ലിക്ക് ചെയ്യുക</translation>
 <translation id="5106350808162641062">നീക്കം ചെയ്യുക</translation>
 <translation id="510695978163689362">Family Link, <ph name="USER_EMAIL" /> എന്ന അക്കൗണ്ടിന്റെ മേൽനോട്ടം വഹിക്കുന്നു. രക്ഷാകർതൃ മേൽനോട്ടത്തിൽ സ്‌കൂൾ വിഭവങ്ങൾ ആക്സസ് ചെയ്യുന്നതിന് നിങ്ങൾക്ക് സ്‌കൂൾ അക്കൗണ്ടുകൾ ചേർക്കാനാകും.</translation>
@@ -5127,7 +5126,6 @@
 <translation id="5623842676595125836">ലോഗ്</translation>
 <translation id="5624120631404540903">പാസ്‌വേഡുകൾ നിയന്ത്രിക്കുക</translation>
 <translation id="5625225435499354052">Google Pay-യിൽ എഡിറ്റ് ചെയ്യുക</translation>
-<translation id="5625631605902707678">ഉപകരണങ്ങളിൽ ഉടനീളം</translation>
 <translation id="5626134646977739690">നാമം:</translation>
 <translation id="5627086634964711283">നിങ്ങൾ ഹോം ബട്ടൺ ക്ലിക്ക് ചെയ്യുമ്പോൾ ദൃശ്യമാകുന്ന പേജും ഇത് നിയന്ത്രിക്കുന്നു.</translation>
 <translation id="5627676517703583263">Chrome ഉപയോഗിച്ച് സ്‌മാർട്ടായി ബ്രൗസ് ചെയ്യുക</translation>
@@ -5240,7 +5238,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ഈ ഡാറ്റയോ നിങ്ങളുടെ ഉപകരണമോ നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ ചില സുരക്ഷാ നയങ്ങൾ പാലിക്കുന്നില്ല. എന്താണ് പരിഹരിക്കേണ്ടതെന്ന് നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെട്ട് പരിശോധിക്കുക.}=1{ഈ ഫയലോ നിങ്ങളുടെ ഉപകരണമോ നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ ചില സുരക്ഷാ നയങ്ങൾ പാലിക്കുന്നില്ല. എന്താണ് പരിഹരിക്കേണ്ടതെന്ന് നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെട്ട് പരിശോധിക്കുക.}other{ഈ ഫയലുകൾ നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ ചില സുരക്ഷാ നയങ്ങൾ സ്ഥാപിക്കുന്നില്ല. എന്താണ് പരിഹരിക്കേണ്ടതെന്ന് നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെട്ട് പരിശോധിക്കുക.}}</translation>
 <translation id="5736796278325406685">ശരിയായ ഉപയോക്തൃനാമം നൽകുക</translation>
 <translation id="5738093759615225354">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലേക്ക് സൈൻ ഇൻ ചെയ്യാൻ ഈ പാസ്‌കീ ആവശ്യമാണ്</translation>
-<translation id="5738329404678738022">സമന്വയിപ്പിക്കൽ ഉപയോഗിച്ച് നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകളും മറ്റും സംഭരിക്കുക</translation>
 <translation id="5739017626473506901">സ്‌കൂൾ അക്കൗണ്ട് ചേർക്കുന്നതിന് <ph name="USER_NAME" /> എന്നയാളെ സഹായിക്കാൻ സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="5739235828260127894">പരിശോധിച്ചുറപ്പിക്കാൻ കാത്തിരിക്കുന്നു. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">വളരെ വലുത്</translation>
@@ -5262,7 +5259,6 @@
 <translation id="5757375109985023827">പ്രിവ്യൂ ചെയ്യാൻ ഒരു ടാബ് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="5758631781033351321">നിങ്ങളുടെ വായനാ ലിസ്‌റ്റ് ഇവിടെ കാണാം</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> വഴി പ്രിന്‍റ് ചെയ്യാൻ നിങ്ങൾ അയയ്‌ക്കുന്ന പ്രമാണങ്ങളെ <ph name="APP_NAME" /> എന്നതിന് വായിക്കാനാകുന്നു.</translation>
-<translation id="5760508342220592715">കൂടുതൽ ആനുകൂല്യങ്ങൾക്ക് സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="5762787084360227629">Google അക്കൗണ്ട് വിവരങ്ങൾ നൽകുക</translation>
 <translation id="5763751966069581670">USB ഉപകരണങ്ങളൊന്നും കണ്ടില്ല</translation>
 <translation id="5764483294734785780">ഓഡിയോ ഇതുപോലെ സം&amp;രക്ഷിക്കുക...</translation>
@@ -5298,6 +5294,7 @@
 <translation id="5792295754950501287"><ph name="CARD_DESCRIPTION" /> എന്നതിനുള്ള കൂടുതൽ പ്രവർത്തനങ്ങൾ</translation>
 <translation id="5792728279623964091">നിങ്ങളുടെ പവർ ബട്ടൺ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="5792874008054171483"><ph name="SITE_NAME" /> എന്നതിനുള്ള കൂടുതൽ പ്രവർത്തനങ്ങൾ</translation>
+<translation id="5793317771769868848">ഈ ഉപകരണത്തിൽ നിന്ന് ഈ പേയ്‌മെന്റ് രീതി ഇല്ലാതാക്കും</translation>
 <translation id="5793339252089865437">മൊബൈൽ നെറ്റ്‌വർക്ക് ഉപയോഗിച്ച് അ‌പ്‌ഡേറ്റ് ഡൗൺലോഡ് ചെയ്‌താൽ, അത് അധിക നിരക്കുകൾക്കിടയാക്കും.</translation>
 <translation id="5793420564274426163">ജോടിയാക്കൽ സ്ഥിരീകരണം</translation>
 <translation id="5793430094159150686">നിങ്ങളുടെ പാസ്‌വേഡ് മാറ്റിയിരിക്കുന്നു. ലോക്കൽ ഡാറ്റ വീണ്ടെടുക്കാൻ നിങ്ങളുടെ പഴയ പാസ്‌വേഡ് നൽകണം,</translation>
@@ -7277,6 +7274,7 @@
 <translation id="7609148976235050828">ഇന്റർനെറ്റ് കണക്‌റ്റ് ചെയ്‌ത ശേഷം വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="7612401678989660900">മൈക്രോഫോൺ അനുമതിയുള്ള ആപ്പുകൾക്കും വെബ്സൈറ്റുകൾക്കും ആക്‌സസ് അനുവദിക്കുക</translation>
 <translation id="7612655942094160088">കണക്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ഫോണിന്റെ ഫീച്ചറുകൾ പ്രവർത്തനക്ഷമമാക്കി.</translation>
+<translation id="7612989789287281429">നിങ്ങളെ സൈൻ ഇൻ ചെയ്യിക്കുന്നു…</translation>
 <translation id="7614260613810441905">ഏതെങ്കിലും സൈറ്റിന് നിങ്ങളുടെ ഉപകരണത്തിലെ ഫയലുകളോ ഫോൾഡറുകളോ എഡിറ്റ് ചെയ്യണമെങ്കിൽ നിങ്ങളോട് അനുമതി ചോദിക്കുക (ശുപാർശ ചെയ്യുന്നത്)</translation>
 <translation id="761530003705945209">Google ഡ്രൈവിലേക്ക് ബാക്കപ്പെടുക്കുക. ഏത് സമയത്തും ഡാറ്റ എളുപ്പത്തിൽ പുനഃസ്ഥാപിക്കുകയോ ഉപകരണം മാറുകയോ ചെയ്യുക. നിങ്ങളുടെ ബാക്കപ്പിൽ ആപ്പ് ഡാറ്റയും ഉൾപ്പെടുന്നു. നിങ്ങളുടെ ബാക്കപ്പുകൾ Google-ലേക്ക് അപ്‌ലോഡ് ചെയ്‌ത് Google അക്കൗണ്ട് പാസ്‌വേഡ് ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്യും.</translation>
 <translation id="7615365294369022248">അക്കൗണ്ട് ചേർക്കുന്നതിൽ പിശകുണ്ടായി</translation>
@@ -7806,7 +7804,6 @@
 <translation id="8059417245945632445">&amp;ഉപകരണങ്ങൾ പരിശോധിക്കുക</translation>
 <translation id="8059456211585183827">സംരക്ഷിക്കുന്നതിന് പ്രിന്ററുകളൊന്നും ലഭ്യമല്ല.</translation>
 <translation id="8061091456562007989">പഴയതിലേക്ക് മാറ്റുക</translation>
-<translation id="8061965471006133016">നിങ്ങളുടെ പാസ്‌വേഡുകൾക്കും മറ്റും അധിക പരിരക്ഷ</translation>
 <translation id="8061970399284390013">അക്ഷരപ്പിശകും വ്യാകരണവും പരിശോധിക്കൽ</translation>
 <translation id="8061991877177392872">നിങ്ങൾ ഇതിനകം തന്നെ മറ്റൊരു ഉപകരണത്തിൽ Assistant-നൊപ്പം Voice Match സജ്ജീകരിച്ചിട്ടുണ്ടെന്ന് തോന്നുന്നു. ഈ ഉപകരണത്തിൽ ശബ്‌ദ മോഡൽ തയ്യാറാക്കുന്നതിന് ഈ പഴയ റെക്കോർഡിംഗുകൾ ഉപയോഗിച്ചു.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ഒരു ഷീറ്റ് പേപ്പർ}other{{COUNT} ഷീറ്റ് പേപ്പർ}}</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index d3a0484..7f75a020 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -4452,7 +4452,6 @@
 <translation id="4977942889532008999">Нэвтрэлтийг баталгаажуулах</translation>
 <translation id="4980805016576257426">Энэ өргөтгөл нь хортой код агуулсан байна.</translation>
 <translation id="4981449534399733132">Хөтчийн өгөгдлийг синк хийсэн бүх төхөөрөмж болон Google Бүртгэлээсээ устгахын тулд <ph name="BEGIN_LINK" />нэвтэрнэ үү<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Зогсоосон хэсгээсээ дурын төхөөрөмжөөс үргэлжлүүлээрэй</translation>
 <translation id="4986706507552097681">Та синк хийх зүйлээ тохиргооноос хүссэн үедээ сонгох боломжтой. Google таны түүхэд тулгуурлан Хайлт болон бусад үйлчилгээг хувийн болгож магадгүй.</translation>
 <translation id="4986728572522335985">Энэ нь аюулгүй байдлын түлхүүрийн ПИН зэрэг бүх өгөгдлийг устгана</translation>
 <translation id="4988526792673242964">Хуудас</translation>
@@ -4569,7 +4568,6 @@
 <translation id="5097349930204431044">Таны зочилсон сайтууд таны юунд дуртайг тодорхойлж, цааш тасралтгүй үзэх үед зар санал болгох боломжтой</translation>
 <translation id="5097649414558628673">Хэрэгсэл: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Курсорыг зогссон үед автоматаар товших</translation>
-<translation id="5101683448725092498">Зүйлсээ хуулбарлах</translation>
 <translation id="5101839224773798795">Курсор зогссон үед автоматаар товших</translation>
 <translation id="5106350808162641062">Хасах</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" />-г Family Link-р хянадаг. Та эцэг эхийн хяналттайгаар сургуулийн нөөцөд хандахын тулд сургуулийн бүртгэл нэмж болно.</translation>
@@ -5136,7 +5134,6 @@
 <translation id="5623842676595125836">Нэвтрэх</translation>
 <translation id="5624120631404540903">Нууц үгийг удирдах</translation>
 <translation id="5625225435499354052">Google Pay-д засах</translation>
-<translation id="5625631605902707678">Төхөөрөмжүүд дээр</translation>
 <translation id="5626134646977739690">Нэр:</translation>
 <translation id="5627086634964711283">Энэ нь мөн таныг Home товчин дээр дарах үед гарч ирдэг хуудсыг хянаж байдаг.</translation>
 <translation id="5627676517703583263">Chrome-р ухаалаг хайгаарай</translation>
@@ -5248,7 +5245,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Энэ өгөгдөл эсвэл таны төхөөрөмж байгууллагын тань аюулгүй байдлын зарим бодлогод нийцэхгүй байна. Юуг засах шаардлагатай талаар админаасаа тодруулна уу.}=1{Энэ файл эсвэл таны төхөөрөмж байгууллагын тань аюулгүй байдлын зарим бодлогод нийцэхгүй байна. Юуг засах шаардлагатай талаар админаасаа тодруулна уу.}other{Эдгээр файл танай байгууллагын аюулгүй байдлын зарим бодлогод нийцэхгүй байна. Юуг засах шаардлагатай талаар админаасаа тодруулна уу.}}</translation>
 <translation id="5736796278325406685">Хэрэглэгчийн нэрийг зөв оруулна уу</translation>
 <translation id="5738093759615225354">Энэ нууц үг компьютертоо нэвтрэхэд тань хэрэгтэй</translation>
-<translation id="5738329404678738022">Синкийг ашиглан хавчуургаа хадгалж, илүү ихийг хийгээрэй</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" />-д сургуулийн бүртгэл нэмэхэд нь туслахын тулд нэвтэрнэ үү</translation>
 <translation id="5739235828260127894">Баталгаажуулалтыг хүлээж байна. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Маш том</translation>
@@ -5270,7 +5266,6 @@
 <translation id="5757375109985023827">Урьдчилан үзэх табыг сонгоно уу</translation>
 <translation id="5758631781033351321">Та унших жагсаалтаа эндээс олох болно</translation>
 <translation id="5759728514498647443">Таны <ph name="APP_NAME" />-аар дамжуулан хэвлэхээр илгээсэн бичиг баримтуудыг <ph name="APP_NAME" />-аар уншиж болно.</translation>
-<translation id="5760508342220592715">Илүү их үр өгөөж авах бол нэвтэрнэ үү</translation>
 <translation id="5762787084360227629">Google Бүртгэлийн мэдээллийг оруулах</translation>
 <translation id="5763751966069581670">USB төхөөрөмж олдсонгүй</translation>
 <translation id="5764483294734785780">Аудиог ... гэх хадгалах</translation>
@@ -7805,7 +7800,6 @@
 <translation id="8059417245945632445">&amp; Төхөөрөмжүүдийг хянан, шалгах</translation>
 <translation id="8059456211585183827">Хадгалах боломжтой хэвлэгч байхгүй байна.</translation>
 <translation id="8061091456562007989">Үүнийг буцааж өөрчлөх</translation>
-<translation id="8061965471006133016">Таны нууц үг болон бусад зүйлийн нэмэлт хамгаалалт</translation>
 <translation id="8061970399284390013">Зөв бичгийн болон дүрмийн алдаа шалгах</translation>
 <translation id="8061991877177392872">Та өөр төхөөрөмж дээр Voice Match-г аль хэдийн Туслахаараа тохируулсан бололтой. Эдгээр өмнөх бичлэгийг энэ төхөөрөмжид дуу хоолойн загвар үүсгэхэд ашигласан.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 хуудас цаас}other{{COUNT} хуудас цаас}}</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index b36289e..88a8d32 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -379,6 +379,7 @@
 <translation id="1339009753652684748">तुम्ही "Ok Google" म्हणता तेव्हा Assistant अ‍ॅक्सेस करा. बॅटरी वाचवण्यासाठी, “सुरू करा (शिफारस केलेले)” हे निवडा. तुमचे डिव्हाइस प्लग इन केले असेल किंवा चार्ज होत असेल तेव्हाच Assistant प्रतिसाद देईल.</translation>
 <translation id="13392265090583506">A11y</translation>
 <translation id="1340527397989195812">Files अ‍ॅप वापरून डिव्हाइसवरील मीडियाचा बॅकअप घ्या.</translation>
+<translation id="1341701348342335220">चांगल्या प्रकारे पूर्ण केले आहे!</translation>
 <translation id="1341871421050612057"><ph name="USERNAME" /> या खात्यासह सिंक करू शकत नाही</translation>
 <translation id="1343865611738742294">USB डिव्हाइस ॲक्सेस करण्यासाठी Linux ला परवानगी द्या. USB डिव्हाइस काढून टाकल्यानंतर Linux ते लक्षात ठेवणार नाही.</translation>
 <translation id="1343920184519992513">तुम्ही सोडले होते तेथून पुढे सुरू ठेवा आणि पेजचा विशिष्ट संच उघडा</translation>
@@ -3636,6 +3637,7 @@
 <translation id="4232375817808480934">Kerberos कॉंफिगर करा</translation>
 <translation id="4235965441080806197">साइन इन रद्द करा</translation>
 <translation id="4236163961381003811">आणखी एक्स्टेंशन शोधा</translation>
+<translation id="4237282663517880406">Google Drive सूचना दाखवा</translation>
 <translation id="4241182343707213132">संस्थेची अ‍ॅप अपडेट करण्यासाठी रीस्टार्ट करा</translation>
 <translation id="4242145785130247982">एकाहून अधिक क्लायंट सर्टिफिकेटना सपोर्ट करत नाही</translation>
 <translation id="4242533952199664413">सेटिंग्ज उघडा</translation>
@@ -4452,7 +4454,6 @@
 <translation id="4977942889532008999">ॲक्सेस निश्चित करा</translation>
 <translation id="4980805016576257426">या एक्स्टेंशनमध्ये मालवेअर आहे.</translation>
 <translation id="4981449534399733132">तुमच्या सिंक केलेल्या सर्व डिव्हाइसमधून आणि तुमच्या Google खात्यामधून ब्राउझ केलेला डेटा साफ करण्यासाठी, <ph name="BEGIN_LINK" />साइन इन करा<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">कोणत्याही डिव्हाइसवर तुम्ही जेथे सोडले तेथून पुढे सुरू करा</translation>
 <translation id="4986706507552097681">तुम्ही काय सिंक करायचे हे सेटिंग्जमध्ये कधीही निवडू शकता. Google तुमच्या इतिहासाच्या आधारे Search आणि इतर सेवा पर्सनलाइझ करू शकते.</translation>
 <translation id="4986728572522335985">यामुळे सिक्युरिटी कीवरील सर्व डेटा, तिच्या पिनसह, हटवला जाईल</translation>
 <translation id="4988526792673242964">पेज</translation>
@@ -4569,7 +4570,6 @@
 <translation id="5097349930204431044">तुम्ही भेट देता त्या साइट तुम्हाला काय आवडते ते निर्धारित करू शकतात आणि त्यानंतर तुम्ही ब्राउझ करत असताना जाहिराती सुचवू शकतात</translation>
 <translation id="5097649414558628673">टूल: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">कर्सर थांबल्यावर आपोआप क्लिक करा</translation>
-<translation id="5101683448725092498">तुमच्या आशयाचा बॅक अप घ्या</translation>
 <translation id="5101839224773798795">कर्सर थांबल्यावर आपोआप क्लिक करा</translation>
 <translation id="5106350808162641062">काढून टाका</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> हा Family Link द्वारे पर्यवेक्षित केला जातो. पालक पर्यवेक्षणासह शाळेचे स्रोत अ‍ॅक्सेस करण्यासाठी तुम्ही शाळेची खाती जोडू शकता.</translation>
@@ -5135,7 +5135,6 @@
 <translation id="5623842676595125836">लॉग</translation>
 <translation id="5624120631404540903">पासवर्ड व्यवस्थापित करा</translation>
 <translation id="5625225435499354052">Google Pay मध्ये संपादित करा</translation>
-<translation id="5625631605902707678">सर्व डिव्हाइसवर</translation>
 <translation id="5626134646977739690">नाव:</translation>
 <translation id="5627086634964711283">तुम्ही होम बटण क्लिक करता तेव्हा कोणते पेज दर्शविले जाते हेदेखील हे नियंत्रित करते.</translation>
 <translation id="5627676517703583263">Chromeसह स्मार्ट ब्राउझ करा</translation>
@@ -5247,7 +5246,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{हा डेटा किंवा तुमचे डिव्हाइस हे तुमच्या संस्थेच्या काही सुरक्षा धोरणांची पूर्तता करत नाहीत. कशाचे निराकरण करण्याची आवश्यकता आहे हे तपासण्यासाठी तुमच्या ॲडमिनशी संपर्क साधा.}=1{ही फाइल किंवा तुमचे डिव्हाइस हे तुमच्या संस्थेच्या काही सुरक्षा धोरणांची पूर्तता करत नाहीत. कशाचे निराकरण करण्याची आवश्यकता आहे हे तपासण्यासाठी तुमच्या ॲडमिनशी संपर्क साधा.}other{या फाइल तुमच्या संस्थेच्या काही सुरक्षा धोरणांची पूर्तता करत नाहीत. कशाचे निराकरण करण्याची आवश्यकता आहे हे तपासण्यासाठी तुमच्या ॲडमिनशी संपर्क साधा.}}</translation>
 <translation id="5736796278325406685">कृपया एक वैध वापरकर्ता नाव एंटर करा</translation>
 <translation id="5738093759615225354">तुम्हाला तुमच्या कॉंप्युटरवर साइन इन करण्यासाठी ही पासकी आवश्यक आहे</translation>
-<translation id="5738329404678738022">सिंक वापरून तुमचे बुकमार्क आणि आणखी बऱ्याच गोष्टी स्टोअर करा</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> यांना शाळेच्या खात्यामध्ये जोडण्यात मदत करण्यासाठी साइन इन करा</translation>
 <translation id="5739235828260127894">पडताळणीसाठी वाट पाहत आहे. <ph name="LINK_BEGIN" />अधिक जाणून घ्या.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">खूप मोठा</translation>
@@ -5269,7 +5267,6 @@
 <translation id="5757375109985023827">पूर्वावलोकन करण्यासाठी टॅब निवडा</translation>
 <translation id="5758631781033351321">तुमची वाचन सूची तुम्हाला येथे सापडेल</translation>
 <translation id="5759728514498647443">तुम्ही <ph name="APP_NAME" /> द्वारे प्रिंट करण्यासाठी पाठविलेले दस्तऐवज <ph name="APP_NAME" /> च्या साहाय्याने वाचले जाऊ शकतात.</translation>
-<translation id="5760508342220592715">आणखी फायद्यांसाठी साइन इन करा</translation>
 <translation id="5762787084360227629">Google खाते माहिती एंटर करा</translation>
 <translation id="5763751966069581670">कोणतेही USB डिव्हाइस सापडले नाहीत</translation>
 <translation id="5764483294734785780">म्हणून ऑडिओ ज&amp;तन करा...</translation>
@@ -7807,7 +7804,6 @@
 <translation id="8059417245945632445">&amp;डिव्हाइसेसचा निरीक्षण करा</translation>
 <translation id="8059456211585183827">सेव्ह करण्यासाठी कोणतेही प्रिंटर उपलब्ध नाहीत.</translation>
 <translation id="8061091456562007989">ते पहिल्यासारखे करा</translation>
-<translation id="8061965471006133016">तुमच्या पासवर्ड आणि आणखी बऱ्याच गोष्टींसाठी अतिरिक्त संरक्षण</translation>
 <translation id="8061970399284390013">शुद्धलेखन आणि व्याकरण तपासणी</translation>
 <translation id="8061991877177392872">तुम्ही Assistant सोबत Voice Match दुसर्‍या डिव्हाइसवर आधीच सेट केले आहे असे दिसते. या डिव्हाइसवर व्हॉइस मॉडेल तयार करण्यासाठी ही मागील रेकॉर्डिंग वापरली गेली.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{कागदाचे एक पत्रक}other{कागदाची {COUNT} पत्रके}}</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index af017de..8aceec1 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Protokol Pengangkutan Hiperteks (HTTPS)</translation>
 <translation id="1059944192885972544"><ph name="NUM" /> Tab untuk '<ph name="SEARCH_TEXT" />' Ditemukan</translation>
 <translation id="1060292118287751956">Menentukan kekerapan skrin dikemas kini</translation>
+<translation id="1060570945511946595">Urus tiket</translation>
 <translation id="1061130374843955397">Selamat datang ke <ph name="DEVICE_TYPE" /> anda</translation>
 <translation id="1061373870045429865">Buat Kod QR untuk Pautan ini</translation>
 <translation id="1061904396131502319">Masa rehat hampir tiba</translation>
@@ -1126,6 +1127,7 @@
 <translation id="1975841812214822307">Alih keluar...</translation>
 <translation id="1976150099241323601">Log masuk ke Peranti Keselamatan</translation>
 <translation id="1977965994116744507">Rapatkan telefon anda untuk membuka kunci <ph name="DEVICE_TYPE" /> anda</translation>
+<translation id="1978666928180318515">Alih keluar Bruschetta</translation>
 <translation id="1979095679518582070">Tindakan mematikan ciri ini tidak menjejaskan keupayaan peranti ini untuk menghantar maklumat yang diperlukan untuk perkhidmatan penting seperti kemas kini sistem dan keselamatan.</translation>
 <translation id="1979280758666859181">Anda sedang beralih kepada saluran dengan versi <ph name="PRODUCT_NAME" /> yang lebih lama. Perubahan saluran akan dilaksanakan apabila versi saluran sepadan dengan versi yang sedang terpasang pada peranti anda.</translation>
 <translation id="197989455406964291">KDC tidak menyokong jenis penyulitan</translation>
@@ -1932,6 +1934,7 @@
 <translation id="2672142220933875349">Fail crx rosak, pemunggahan gagal.</translation>
 <translation id="2673135533890720193">Baca sejarah penyemakan anda</translation>
 <translation id="2674764818721168631">Mati</translation>
+<translation id="2675570801872027281">Ralat semasa mengalih keluar Bruschetta. Sila cuba lagi.</translation>
 <translation id="2676492189600898281">Berikan maklum balas Autolengkap</translation>
 <translation id="2678063897982469759">Dayakan semula</translation>
 <translation id="2678100101831051676">Tidak dapat menghantar.</translation>
@@ -2930,6 +2933,7 @@
 <translation id="3593965109698325041">Kekangan Nama Sijil</translation>
 <translation id="3596012367874587041">Tetapan apl</translation>
 <translation id="3596414637720633074">Sekat kuki pihak ketiga dalam Inkognito</translation>
+<translation id="3598010454707842106">Klik “Sesuaikan Chrome”</translation>
 <translation id="3599221874935822507">Ditinggikan</translation>
 <translation id="3600051066689725006">Maklumat permintaan web</translation>
 <translation id="360180734785106144">Tawarkan ciri baharu apabila tersedia</translation>
@@ -3928,6 +3932,7 @@
 <translation id="4497145443434063861">PC dan Chromecast menggunakan rangkaian Wi-Fi yang berlainan (contohnya 2.4GHz
     lwn. 5GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> telah ranap</translation>
+<translation id="4500647907053779331">&amp;Terjemahkan pilihan kepada <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Ikon tanda seru</translation>
 <translation id="4501530680793980440">Sahkan Pengalihan Keluar</translation>
 <translation id="4502423230170890588">Alih keluar daripada peranti ini</translation>
@@ -3958,6 +3963,7 @@
 <translation id="4522890784888918985">Akaun anak tidak disokong</translation>
 <translation id="4523876148417776526">Senarai laman XML belum diambil.</translation>
 <translation id="4524832533047962394">Mod pendaftaran yang diberikan tidak disokong oleh versi sistem pengendalian ini. Sila pastikan anda menjalankan versi terbaharu.</translation>
+<translation id="4526051299161934899">Kumpulan tab disimpan yang tersembunyi</translation>
 <translation id="4526853756266614740">Pilih imej untuk serta-merta menggunakan tema</translation>
 <translation id="452750746583162491">Semak data anda yang disegerak</translation>
 <translation id="4527929807707405172">Dayakan penatalan terbalik. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
@@ -4282,6 +4288,7 @@
 <translation id="4824037980212326045">Sandaran dan pemulihan Linux</translation>
 <translation id="4824958205181053313">Batalkan penyegerakan?</translation>
 <translation id="4825532258163983651">Tidak dapat memadamkan kunci laluan</translation>
+<translation id="4827283332383516812">Padamkan kad</translation>
 <translation id="4827675678516992122">Tidak dapat menyambung</translation>
 <translation id="4827784381479890589">Semak ejaan yang dipertingkatkan dalam penyemak imbas Chrome (teks dihantar kepada Google untuk mendapatkan cadangan ejaan)</translation>
 <translation id="4827904420700932487">Buat Kod QR untuk Imej ini</translation>
@@ -4457,7 +4464,6 @@
 <translation id="4977942889532008999">Sahkan Akses</translation>
 <translation id="4980805016576257426">Sambungan ini mengandungi perisian hasad.</translation>
 <translation id="4981449534399733132">Untuk mengosongkan data semakan imbas daripada semua peranti tersegerak dan Akaun Google anda, <ph name="BEGIN_LINK" />log masuk<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Sambung semula dari tempat anda berhenti pada mana-mana peranti</translation>
 <translation id="4986706507552097681">Anda boleh memilih item yang hendak disegerakkan dalam tetapan pada bila-bila masa. Google mungkin memeribadikan Search dan perkhidmatan lain berdasarkan sejarah anda.</translation>
 <translation id="4986728572522335985">Tindakan ini akan memadamkan semua data pada kunci keselamatan, termasuk PIN kunci keselamatan</translation>
 <translation id="4988526792673242964">Halaman</translation>
@@ -4574,7 +4580,6 @@
 <translation id="5097349930204431044">Laman yang anda lawati boleh menentukan perkara yang anda sukai dan mencadangkan iklan sambil anda meneruskan penyemakan imbas</translation>
 <translation id="5097649414558628673">Alat: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Klik secara automatik apabila kursor berhenti</translation>
-<translation id="5101683448725092498">Sandarkan bahan anda</translation>
 <translation id="5101839224773798795">Klik secara automatik apabila kursor berhenti</translation>
 <translation id="5106350808162641062">Alih keluar</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> diawasi oleh Family Link. Anda boleh menambah akaun sekolah untuk mengakses sumber sekolah dengan pengawasan ibu bapa.</translation>
@@ -5140,7 +5145,6 @@
 <translation id="5623842676595125836">Log</translation>
 <translation id="5624120631404540903">Urus kata laluan</translation>
 <translation id="5625225435499354052">Edit dalam Google Pay</translation>
-<translation id="5625631605902707678">Merentas peranti</translation>
 <translation id="5626134646977739690">Nama:</translation>
 <translation id="5627086634964711283">Sambungan turut mengawal halaman yang ditunjukkan apabila anda mengklik butang Laman Utama.</translation>
 <translation id="5627676517703583263">Semak imbas dengan bijak menggunakan Chrome</translation>
@@ -5252,7 +5256,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Data ini atau peranti anda tidak memenuhi beberapa dasar keselamatan organisasi anda. Semak dengan pentadbir anda tentang perkara yang perlu dibetulkan.}=1{Fail ini atau peranti anda tidak memenuhi beberapa dasar keselamatan organisasi anda. Semak dengan pentadbir anda tentang perkara yang perlu dibetulkan.}other{Fail ini tidak memenuhi beberapa dasar keselamatan organisasi anda. Semak dengan pentadbir anda tentang perkara yang perlu dibetulkan.}}</translation>
 <translation id="5736796278325406685">Sila masukkan nama pengguna yang sah</translation>
 <translation id="5738093759615225354">Anda memerlukan kunci laluan ini untuk log masuk ke komputer anda</translation>
-<translation id="5738329404678738022">Simpan penanda halaman anda dan pelbagai lagi dengan penyegerakan</translation>
 <translation id="5739017626473506901">Log masuk untuk membantu <ph name="USER_NAME" /> menambah akaun sekolah</translation>
 <translation id="5739235828260127894">Menunggu pengesahan. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Sangat besar</translation>
@@ -5274,7 +5277,6 @@
 <translation id="5757375109985023827">Pilih tab untuk melihat pratonton</translation>
 <translation id="5758631781033351321">Anda dapat menemukan senarai bacaan anda di sini</translation>
 <translation id="5759728514498647443">Dokumen yang anda hantar untuk dicetak melalui <ph name="APP_NAME" /> boleh dibaca oleh <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Log masuk untuk mendapatkan lebih banyak manfaat</translation>
 <translation id="5762787084360227629">Masukkan maklumat Google Account anda</translation>
 <translation id="5763751966069581670">Tiada peranti USB ditemui</translation>
 <translation id="5764483294734785780">Si&amp;mpan audio sebagai...</translation>
@@ -5310,6 +5312,7 @@
 <translation id="5792295754950501287">Lagi tindakan untuk <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Sila ketik butang kuasa anda</translation>
 <translation id="5792874008054171483">Lagi tindakan untuk <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Kaedah pembayaran ini akan dipadamkan daripada peranti ini</translation>
 <translation id="5793339252089865437">Jika anda memuat turun kemas kini melalui rangkaian mudah alih, anda mungkin akan dikenakan caj lebihan.</translation>
 <translation id="5793420564274426163">Pengesahan Gandingan</translation>
 <translation id="5793430094159150686">Kata laluan anda telah ditukar. Untuk memulihkan data setempat anda, anda perlu memasukkan kata laluan lama anda.</translation>
@@ -5745,6 +5748,7 @@
 <translation id="617213288191670920">Tiada bahasa ditambah</translation>
 <translation id="6173623053897475761">Taipkan PIN anda sekali lagi</translation>
 <translation id="6175314957787328458">Microsoft Domain GUID</translation>
+<translation id="6177412385419165772">Mengalih keluar...</translation>
 <translation id="6178664161104547336">Pilih sijil</translation>
 <translation id="6178682841350631965">Data log masuk anda telah dikemas kini</translation>
 <translation id="6180510783007738939">Alat Garisan</translation>
@@ -6221,6 +6225,7 @@
 <translation id="6619801788773578757">Tambahkan aplikasi kios</translation>
 <translation id="6619990499523117484">Sahkan PIN anda</translation>
 <translation id="6620254580880484313">Nama bekas</translation>
+<translation id="6620927550847360014">Alih keluar Bruschetta daripada <ph name="DEVICE_TYPE" /> anda?</translation>
 <translation id="6621391692573306628">Untuk menghantar tab ini ke peranti lain, log masuk ke Chrome pada kedua-dua peranti</translation>
 <translation id="6622980291894852883">Terus menyekat imej</translation>
 <translation id="6624036901798307345">Dalam mod tablet, ketik butang bar alat pengira tab untuk membuka jalur tab baharu yang memaparkan lakaran kecil setiap tab.</translation>
@@ -6438,6 +6443,7 @@
 <translation id="6818547713623251698">Lihat foto, media, pemberitahuan dan apl telefon anda</translation>
 <translation id="6818802132960437751">Perlindungan virus terbina dalam</translation>
 <translation id="6818920801736417483">Simpan kata laluan?</translation>
+<translation id="6820079682647046800">Pengesahan Kerberos gagal</translation>
 <translation id="6823174134746916417">Ketik-untuk-klik pad sentuh</translation>
 <translation id="6824564591481349393">Salin &amp;Alamat E-mel</translation>
 <translation id="6824584962142919697">&amp;Periksa unsur</translation>
@@ -6592,6 +6598,7 @@
 <translation id="6955698182324067397">Anda mendayakan ciri penyahpepijatan Chrome OS yang akan menetapkan daemon sshd dan mendayakan pengebutan dari pemacu USB.</translation>
 <translation id="6955893174999506273">Tetapkan 1 lagi suis</translation>
 <translation id="6957044667612803194">Kunci keselamatan ini tidak menyokong PIN</translation>
+<translation id="6960133692707095572">Lawat tanpa tiket</translation>
 <translation id="6960507406838246615">Memerlukan kemas kini Linux</translation>
 <translation id="6960648667961844909">Tidak dapat memuat turun fail pertuturan <ph name="LANGUAGE" />. Muat turun akan cuba dilakukan kemudian. Pertuturan dihantar kepada Google untuk diproses sehingga muat turun selesai.</translation>
 <translation id="696103774840402661">Semua fail dan data setempat untuk semua pengguna pada <ph name="DEVICE_TYPE" /> ini telah dipadamkan secara kekal.</translation>
@@ -7284,6 +7291,7 @@
 <translation id="7609148976235050828">Sila sambung ke Internet dan cuba lagi.</translation>
 <translation id="7612401678989660900">Benarkan akses untuk semua apl dan laman web dengan kebenaran mikrofon</translation>
 <translation id="7612655942094160088">Dayakan ciri telefon yang disambungkan.</translation>
+<translation id="7612989789287281429">Anda sedang log masuk…</translation>
 <translation id="7614260613810441905">Tanya apabila tapak mahu mengedit fail atau folder pada peranti anda (disyorkan)</translation>
 <translation id="761530003705945209">Sandarkan pada Google Drive. Pulihkan data atau tukar peranti anda dengan mudah pada bila-bila masa. Sandaran anda merangkumi data apl. Sandaran anda dimuat naik pada Google dan disulitkan menggunakan kata laluan Akaun Google anda.</translation>
 <translation id="7615365294369022248">Ralat berlaku semasa menambah akaun</translation>
@@ -7813,7 +7821,6 @@
 <translation id="8059417245945632445">&amp;Periksa peranti</translation>
 <translation id="8059456211585183827">Tiada pencetak tersedia untuk disimpan.</translation>
 <translation id="8061091456562007989">Tukar kepada asal</translation>
-<translation id="8061965471006133016">Perlindungan tambahan untuk kata laluan anda dan pelbagai lagi</translation>
 <translation id="8061970399284390013">Semakan ejaan dan tatabahasa</translation>
 <translation id="8061991877177392872">Nampaknya anda telah pun menyediakan Voice Match dengan Assistant pada peranti lain. Rakaman terdahulu ini telah digunakan untuk membuat model suara pada peranti ini.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 helai kertas}other{{COUNT} helai kertas}}</translation>
@@ -8054,6 +8061,7 @@
 <translation id="8272443605911821513">Urus sambungan anda dengan mengklik Sambungan dalam menu "Lagi alat".</translation>
 <translation id="8272786333453048167">Benarkan sekali lagi</translation>
 <translation id="8273905181216423293">Muat turun sekarang</translation>
+<translation id="827488840488530039">Laman yang cuba anda lawati tidak dapat mengesahkan tiket Kerberos anda</translation>
 <translation id="8274921654076766238">Penggadang mengikut fokus papan kekunci</translation>
 <translation id="8274924778568117936">Jangan matikan atau menutup <ph name="DEVICE_TYPE" /> anda sehingga kemas kini selesai. <ph name="DEVICE_TYPE" /> anda akan dimulakan semula selepas pemasangan selesai.</translation>
 <translation id="8275038454117074363">Import</translation>
@@ -8501,6 +8509,7 @@
 <translation id="869884720829132584">Menu aplikasi</translation>
 <translation id="869891660844655955">Tarikh tamat tempoh</translation>
 <translation id="8699188901396699995">PPD untuk <ph name="PRINTER_NAME" /></translation>
+<translation id="8702278591052316269">Menu mengandungi kumpulan tab disimpan yang tersembunyi</translation>
 <translation id="8702825062053163569"><ph name="DEVICE_TYPE" /> anda telah dikunci.</translation>
 <translation id="8703346390800944767">Langkau Iklan</translation>
 <translation id="8705331520020532516">Nombor Siri</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index afc528c1..157446d 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">ဟိုက်ပါတက်စ် ပို့ဆောင်ရေး ပရိုတိုကော (HTTPS)</translation>
 <translation id="1059944192885972544">'<ph name="SEARCH_TEXT" />' အတွက် တဘ် <ph name="NUM" /> ခု တွေ့သည်</translation>
 <translation id="1060292118287751956">ဖန်သားပြင်အပ်ဒိတ်လုပ်သည့် ကြိမ်နှုန်းကို သတ်မှတ်ပေးသည်</translation>
+<translation id="1060570945511946595">တိုကင်များ စီမံရန်</translation>
 <translation id="1061130374843955397">သင့် <ph name="DEVICE_TYPE" /> က ကြိုဆိုပါသည်</translation>
 <translation id="1061373870045429865">ဤလင့်ခ်အတွက် QR ကုဒ် ပြုလုပ်ရန်</translation>
 <translation id="1061904396131502319">ခေတ္တနားချိန် ရောက်တော့မည်</translation>
@@ -1124,6 +1125,7 @@
 <translation id="1975841812214822307">ဖယ်ရှားရန်</translation>
 <translation id="1976150099241323601">လုံခြုံရေး ကိရိယာ ထဲကို လက်မှတ်ထိုး ဝင်ရန်</translation>
 <translation id="1977965994116744507">သင်၏ <ph name="DEVICE_TYPE" /> ကို လော့ခ်ဖွင့်ရန် သင့်ဖုန်းကို နီးကပ်စွာထားပါ။</translation>
+<translation id="1978666928180318515">Bruschetta ဖယ်ရှားရန်</translation>
 <translation id="1979095679518582070">ဤဝန်ဆောင်မှုကို ပိတ်ခြင်းအားဖြင့် စနစ်အပ်ဒိတ်များနှင့် လုံခြုံရေးကဲ့သို့သော အရေးကြီးသည့် အချက်အလက်များကို ဤစက်ပစ္စည်းက ပို့ခြင်းမပို့ခြင်းအပေါ် သက်ရောက်မှု မရှိပါ။</translation>
 <translation id="1979280758666859181">သင်သည် <ph name="PRODUCT_NAME" />၏ ပိုဟောင်းသော ဗားရှင်း ရှိနေသည့် ချာနယ်သို့ ပြောင်းနေသည်။ ချာနယ်၏ ဗားရှင်းမှာ သင့် ကိရိယာ ပေါ်မှာ လက်ရှိ အချိန်တွင် ရှိနေသည့် ဗားရှင်းနှင့် တိုက်ဆိုင်မှသာ ချာနယ် ပြောင်းလဲမှု အတည် ဖြစ်လာမည်။</translation>
 <translation id="197989455406964291">KDC က အသွင်ဝှက်သည့် ပုံစံကို မပံ့ပိုးပါ</translation>
@@ -1930,6 +1932,7 @@
 <translation id="2672142220933875349">ဆိုးရွားသော crx ဖိုင်၊ ရှင်းလင်းခြင်း မအောင်မြင်ပါ။</translation>
 <translation id="2673135533890720193">သင်၏ ဘရောင်ဇာ မှတ်တမ်းကို ဖတ်ကြည့်ရန်</translation>
 <translation id="2674764818721168631">ပိတ်ရန်</translation>
+<translation id="2675570801872027281">Bruschetta ဖယ်ရှားရာတွင် အမှားဖြစ်သွားသည်။ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="2676492189600898281">‘အော်တိုဖြည့် အကြံပြုချက်’ ပေးရန်</translation>
 <translation id="2678063897982469759">ပြန်ဖွင့်ထားရန်</translation>
 <translation id="2678100101831051676">ကာစ်လုပ်၍မရပါ။</translation>
@@ -2928,6 +2931,7 @@
 <translation id="3593965109698325041">လက်မှတ် အမည် ကန့်သတ်ချက်များ</translation>
 <translation id="3596012367874587041">အက်ပ်ဆက်တင်များ</translation>
 <translation id="3596414637720633074">'ရုပ်ဖျက်' မုဒ်တွင် ပြင်ပကုမ္ပဏီ၏ ကွတ်ကီးများကို ပိတ်ပါ</translation>
+<translation id="3598010454707842106">“Chrome ကို စိတ်ကြိုက်ပြင်ရန်” နှိပ်ပါ</translation>
 <translation id="3599221874935822507">စာလုံးကြွ ပြုလုပ်ထားသည်</translation>
 <translation id="3600051066689725006">ဝဘ်တောင်းဆိုမှု အချက်အလက်</translation>
 <translation id="360180734785106144">ဝန်ဆောင်မှုအသစ်များ ရရှိပါက ကမ်းလှမ်းပါ</translation>
@@ -3925,6 +3929,7 @@
 <translation id="4497145443434063861">PC နှင့် Chromecast သည် မတူညီသော Wi-Fi ကွန်ရက်များတွင် ရှိသည် (ဥပမာ ၂.၄ GHz
     နှင့် ၅ GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ရပ်တန့်သွားသည်</translation>
+<translation id="4500647907053779331">&amp;မှတ်ထားသည်ကို <ph name="LANGUAGE" /> သို့ဘာသာပြန်ရန်</translation>
 <translation id="450099669180426158">အာမေဍိတ်သံ သင်္ကေတ အိုင်ကွန်</translation>
 <translation id="4501530680793980440">ဖယ်ရှားမှု အတည်ပြုရန်</translation>
 <translation id="4502423230170890588">ဤစက်မှဖယ်ရှားရန်</translation>
@@ -3955,6 +3960,7 @@
 <translation id="4522890784888918985">ကလေးအကောင့်များကို ပံ့ပိုးမထားပါ</translation>
 <translation id="4523876148417776526">XML ဝဘ်ဆိုက်စာရင်းများကို မရယူရသေးပါ။</translation>
 <translation id="4524832533047962394">အသုံးပြုထားသည့် စာရင်းသွင်းခြင်းမုဒ်ကို ဤလည်ပတ်မှုစနစ်ဗားရှင်းက ပံ့ပိုးမထားပါ။ နောက်ဆုံးဗားရှင်းကို အသုံးပြုနေခြင်းရှိမရှိ သေချာစစ်ဆေးပါ။</translation>
+<translation id="4526051299161934899">ဖျောက်ထားသည့် သိမ်းထားသော တဘ်အုပ်စုများ</translation>
 <translation id="4526853756266614740">အပြင်အဆင် ချက်ချင်းထည့်သွင်းရန် ပုံရွေးနိုင်သည်</translation>
 <translation id="452750746583162491">သင်စင့်ခ်လုပ်ထားသည့် ဒေတာများကို ပြန်စစ်ခြင်း</translation>
 <translation id="4527929807707405172">နောက်ပြန်လှိမ့်ခြင်း ဖွင့်ပါ။ <ph name="LINK_BEGIN" />ပိုမိုလေ့လာရန်<ph name="LINK_END" /></translation>
@@ -4279,6 +4285,7 @@
 <translation id="4824037980212326045">Linux အရန်ကူးခြင်းနှင့် ပြန်လည်ရယူခြင်း</translation>
 <translation id="4824958205181053313">စင့်ခ်လုပ်ခြင်းကို ပယ်ဖျက်လိုပါသလား။</translation>
 <translation id="4825532258163983651">လျှို့ဝှက်ကီးကို ဖျက်၍မရပါ</translation>
+<translation id="4827283332383516812">ကတ်ကို ဖျက်ရန်</translation>
 <translation id="4827675678516992122">ချိတ်ဆက်၍ မရပါ</translation>
 <translation id="4827784381479890589">Chrome ဘရောင်ဇာတွင် စာလုံးပေါင်းစစ်ဆေးခြင်း အဆင့်မြှင့်တင်ထားသည် (စာလုံးပေါင်း အကြံပြုချက်များအတွက် စာသားကို Google သို့ ပို့သည်)</translation>
 <translation id="4827904420700932487">ဤ 'ပုံ' အတွက် QR ကုဒ် ပြုလုပ်ရန်</translation>
@@ -4454,7 +4461,6 @@
 <translation id="4977942889532008999">အသုံးပြုရန် အတည်ပြုသည်</translation>
 <translation id="4980805016576257426">ဤနောက်ဆက်တွဲတွင် အန္တရာယ်ရှိသည့်ဆော့ဖ်ဝဲ ပါဝင်ပါသည်။</translation>
 <translation id="4981449534399733132">ဖွင့်ကြည့်ထားသည့်မှတ်တမ်းဒေတာများကို သင်စင့်ခ်လုပ်ထားသော စက်အားလုံးနှင့် သင့် Google အကောင့်မှ ရှင်းထုတ်ရန် <ph name="BEGIN_LINK" />လက်မှတ်ထိုးဝင်ပါ<ph name="END_LINK" />။</translation>
-<translation id="4982111327868342436">မည်သည့်စက်တွင်မဆို ထားခဲ့သည့်နေရာမှ ပြန်စနိုင်သည်</translation>
 <translation id="4986706507552097681">စင့်ခ်လုပ်မည့်အရာကို ဆက်တင်များတွင် အချိန်မရွေး ရွေးချယ်နိုင်သည်။ Google က Search နှင့် အခြားဝန်ဆောင်မှုများကို သင့်မှတ်တမ်းပေါ်မူတည်၍ ပုဂ္ဂိုလ်ရေးသီးသန့် ပြုလုပ်နိုင်သည်။</translation>
 <translation id="4986728572522335985">ဤသို့ပြုလုပ်ခြင်းက ၎င်း၏ပင်နံပါတ်အပါအဝင် လုံခြုံရေးကီးရှိ ဒေတာအားလုံးကို ဖျက်လိုက်ပါမည်။</translation>
 <translation id="4988526792673242964">စာမျက်နှာများ</translation>
@@ -4571,7 +4577,6 @@
 <translation id="5097349930204431044">ဝဘ်ဆိုက်များက သင်နှစ်သက်သည့်အရာကို သိရှိနိုင်ပြီး သင်ဆက်လက်၍ ကြည့်ရှုသည်နှင့်အမျှ ကြော်ငြာများ အကြံပြုနိုင်သည်</translation>
 <translation id="5097649414558628673">ကိရိယာ - <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ကာဆာရပ်သည့်အခါ အလိုအလျောက် နှိပ်ရန်</translation>
-<translation id="5101683448725092498">သင်၏အရာများကို အရန်သိမ်းခြင်း</translation>
 <translation id="5101839224773798795">ကာဆာရပ်သွားသည့်အခါ အလိုအလျောက် နှိပ်ရန်</translation>
 <translation id="5106350808162641062">ဖယ်ရှားရန်</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> ကို Family Link က ကြီးကြပ်သည်။ မိဘအုပ်ထိန်းမှုဖြင့် ကျောင်းရင်းမြစ်များ ဝင်ကြည့်ရန် ကျောင်းအကောင့်များ ထည့်နိုင်သည်။</translation>
@@ -5138,7 +5143,6 @@
 <translation id="5623842676595125836">မှတ်တမ်း</translation>
 <translation id="5624120631404540903">စကားဝှက်များကို စီမံကွပ်ကဲရန်</translation>
 <translation id="5625225435499354052">Google Pay တွင် တည်းဖြတ်ရန်</translation>
-<translation id="5625631605902707678">စက်များကြားတွင်</translation>
 <translation id="5626134646977739690">အမည်:</translation>
 <translation id="5627086634964711283">သင် မူလစာမျက်နှာခလုတ်ကို နှိပ်သည့်အခါတွင် ၎င်းသည် မည်သည့်စာမျက်နှာပြသမည်ကိုလည်း ထိန်းချုပ်ပါသည်။</translation>
 <translation id="5627676517703583263">Chrome ကို အသုံးပြု၍ ဝဘ်ဆိုက်များကို ပါးပါးနပ်နပ် ဖွင့်ကြည့်လိုက်ပါ</translation>
@@ -5250,7 +5254,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ဤဒေတာ (သို့) စက်သည် သင့်အဖွဲ့အစည်း၏ လုံခြုံရေးမူဝါဒအချို့နှင့် မကိုက်ညီပါ။ ပြုပြင်ရန်လိုအပ်သည်များကို သင့်စီမံခန့်ခွဲသူနှင့် စစ်ဆေးပါ။}=1{ဤဖိုင် (သို့) စက်သည် သင့်အဖွဲ့အစည်း၏ လုံခြုံရေးမူဝါဒအချို့နှင့် မကိုက်ညီပါ။ ပြုပြင်ရန်လိုအပ်သည်များကို သင့်စီမံခန့်ခွဲသူနှင့် စစ်ဆေးပါ။}other{ဤဖိုင်များသည် သင့်အဖွဲ့အစည်း၏ လုံခြုံရေးမူဝါဒအချို့နှင့် မကိုက်ညီပါ။ ပြုပြင်ရန်လိုအပ်သည်များကို သင့်စီမံခန့်ခွဲသူနှင့် စစ်ဆေးပါ။}}</translation>
 <translation id="5736796278325406685">မှန်ကန်သော အသုံးပြုသူအမည်ကို ထည့်သွင်းပါ</translation>
 <translation id="5738093759615225354">သင့်ကွန်ပျူတာသို့ လက်မှတ်ထိုးဝင်ရန် ဤလျှို့ဝှက်ကီး လိုအပ်သည်</translation>
-<translation id="5738329404678738022">သင့်လိပ်စာ စသည်တို့ကို စင့်ခ်လုပ်ခြင်းဖြင့် သိမ်းနိုင်သည်</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> ကျောင်းအကောင့်ထည့်ရာတွင် ကူညီရန် လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="5739235828260127894">စစ်ဆေးအတည်ပြုချက် စောင့်နေသည်။ <ph name="LINK_BEGIN" />ပိုမို လေ့လာရန်<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">အလွန်ကြီး</translation>
@@ -5272,7 +5275,6 @@
 <translation id="5757375109985023827">အစမ်းကြည့်ရန် တဘ်ရွေးပါ</translation>
 <translation id="5758631781033351321">သင့်ဖတ်ရန်စာရင်းကို ဤနေရာတွင် ပြပါမည်</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> မှတစ်ဆင့် ပုံနှိပ်ထုတ်မည့် စာရွက်စာတမ်းများအား <ph name="APP_NAME" /> ဖြင့် ဖတ်နိုင်သည်။</translation>
-<translation id="5760508342220592715">နောက်ထပ်အကျိုးခံစားခွင့်အတွက် လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="5762787084360227629">Google Account အချက်အလက် ထည့်ရန်</translation>
 <translation id="5763751966069581670">မည်သည့် USB စက်ပစ္စည်းကိုမျှ မတွေ့ပါ</translation>
 <translation id="5764483294734785780">အသံကို သိမ်း&amp;ဆည်းရန်...</translation>
@@ -5308,6 +5310,7 @@
 <translation id="5792295754950501287"><ph name="CARD_DESCRIPTION" /> အတွက် နောက်ထပ်လုပ်ဆောင်ချက်များ</translation>
 <translation id="5792728279623964091">သင့်ဖွင့်ပိတ်ခလုတ်ကို တို့ပါ</translation>
 <translation id="5792874008054171483"><ph name="SITE_NAME" /> အတွက် နောက်ထပ်လုပ်ဆောင်ချက်များ</translation>
+<translation id="5793317771769868848">ဤငွေပေးချေနည်းလမ်းကို ယခုစက်မှ ဖျက်လိုက်မည်</translation>
 <translation id="5793339252089865437">အပ်ဒိတ်ကို သင့်မိုဘိုင်းကွန်ရက်မှတစ်ဆင့် ဒေါင်းလုဒ်လုပ်လျှင် ကျသင့်ငွေများ အများအပြားပေးရနိုင်ပါသည်။</translation>
 <translation id="5793420564274426163">တွဲချိတ်ရန် အတည်ပြုချက်</translation>
 <translation id="5793430094159150686">သင့်စကားဝှက် ပြောင်းထားသည်။ စက်တွင်းဒေတာကို ပြန်ယူရန် စကားဝှက်အဟောင်း ထည့်ရမည်။</translation>
@@ -5741,6 +5744,7 @@
 <translation id="617213288191670920">ဘာသာစကား ထည့်မထားပါ</translation>
 <translation id="6173623053897475761">သင်၏ 'ပင်နံပါတ်' ကို ထပ်မံထည့်သွင်းပါ</translation>
 <translation id="6175314957787328458">Microsoft ဒိုမိန်း GUID</translation>
+<translation id="6177412385419165772">ဖယ်ရှားနေသည်…</translation>
 <translation id="6178664161104547336">လက်မှတ်တစ်ခု ရွေးရန်</translation>
 <translation id="6178682841350631965">သင့်လက်မှတ်ထိုးဝင်ခြင်းဆိုင်ရာ ဒေတာကို အပ်ဒိတ်လုပ်ထားသည်</translation>
 <translation id="6180510783007738939">မျဉ်းဆွဲ တူးလ်</translation>
@@ -6216,6 +6220,7 @@
 <translation id="6619801788773578757">kiosk အပလီကေးရှင်းကို ထည့်ရန်−</translation>
 <translation id="6619990499523117484">သင့်ပင်နံပါတ်ကို အတည်ပြုပါ</translation>
 <translation id="6620254580880484313">ကွန်တိန်နာအမည်</translation>
+<translation id="6620927550847360014">သင့် <ph name="DEVICE_TYPE" /> မှ Bruschetta ကို ဖယ်ရှားမလား။</translation>
 <translation id="6621391692573306628">အခြားစက်သို့ ဤတဘ်ကို ပို့ရန် နှစ်စက်လုံးတွင် Chrome သို့ လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="6622980291894852883">ပုံများကို ပိတ်ဆို့မှု ဆက်လုပ်ရန်</translation>
 <translation id="6624036901798307345">တက်ဘလက်မုဒ်တွင် တဘ်တစ်ခုစီ၏ ပုံသေးများကို ပြသပေးသည့် တဘ်ဘားတန်းအသစ်ကို ဖွင့်ရန် တဘ်ရေတွက်မှုပြ ကိရိယာဘား ခလုတ်ကို တို့ပါ။</translation>
@@ -6433,6 +6438,7 @@
 <translation id="6818547713623251698">သင့်ဖုန်း၏ ဓာတ်ပုံ၊ မီဒီယာ၊ အကြောင်းကြားချက်နှင့် အက်ပ်များကို ကြည့်နိုင်သည်</translation>
 <translation id="6818802132960437751">အသင့်ပါ ဗိုင်းရပ်စ်ကာကွယ်ရေး</translation>
 <translation id="6818920801736417483">စကားဝှက်များကို သိမ်းမလား။</translation>
+<translation id="6820079682647046800">Kerberos အထောက်အထားစိစစ်၍ မရပါ</translation>
 <translation id="6823174134746916417">တာ့ချ်ပက် နှိပ်ရန်အတွက် တို့ရန်</translation>
 <translation id="6824564591481349393">အီးမေးလ် လိပ်စာ &amp;ကူးယူရန်</translation>
 <translation id="6824584962142919697">&amp;စာမျက်နှာအတွင်းရှိ အရာများကို စစ်ဆေးရန်</translation>
@@ -6587,6 +6593,7 @@
 <translation id="6955698182324067397">ChromeOS အမှားရှာပြင်သည့် ဝန်ဆောင်မှုများကို ဖွင့်ခြင်းဖြင့် ၎င်းသည် sshd နောက်ခံပရိုဂရမ်ကို စနစ်ထည့်သွင်းမည်ဖြစ်ပြီး USB ဒရိုက်ဗ်များမှ စနစ်စတင်ခြင်းကို ဖွင့်ပေးပါမည်။</translation>
 <translation id="6955893174999506273">နောက်ထပ် အသွင်တူခလုတ် 1 ခု သတ်မှတ်ရန်</translation>
 <translation id="6957044667612803194">ဤလုံခြုံရေးကီးက ပင်နံပါတ်များကို မပံ့ပိုးပါ</translation>
+<translation id="6960133692707095572">တိုကင်မပါဘဲ ဝင်ကြည့်ရန်</translation>
 <translation id="6960507406838246615">Linux အပ်ဒိတ် လိုအပ်သည်</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> စကားသံဖိုင်များကို ဒေါင်းလုဒ်လုပ်၍ မရပါ။ နောက်မှ ဒေါင်းလုဒ်လုပ်ပါမည်။ စကားသံကို စီမံလုပ်ဆောင်ရန် ဒေါင်းလုဒ်လုပ်မှု မပြီးမချင်း Google သို့ ပို့ပါမည်။</translation>
 <translation id="696103774840402661">ဤ <ph name="DEVICE_TYPE" /> ပေါ်ရှိ အသုံးပြုသူအားလုံးအတွက် ဖိုင်နှင့် စက်တွင်းဒေတာအားလုံးကို အပြီးဖျက်ပါမည်။</translation>
@@ -7279,6 +7286,7 @@
 <translation id="7609148976235050828">အင်တာနက် ချိတ်ပြီး ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="7612401678989660900">မိုက်ခရိုဖုန်းခွင့်ပြုချက်ပါသည့် အက်ပ်နှင့် ဝဘ်ဆိုက်များကို သုံးခွင့်ပြုရန်</translation>
 <translation id="7612655942094160088">ချိတ်ဆက်ထားသော ဖုန်းဝန်ဆောင်မှုများ ဖွင့်ရန်။</translation>
+<translation id="7612989789287281429">လက်မှတ်ထိုးဝင်နေသည်…</translation>
 <translation id="7614260613810441905">ဝဘ်ဆိုက်က သင့်စက်ပစ္စည်းပေါ်ရှိ ဖိုင် သို့မဟုတ် ဖိုင်တွဲများကို တည်းဖြတ်လိုသည့်အခါ မေးပါ (အကြံပြုထားသည်)</translation>
 <translation id="761530003705945209">Google Drive သို့ မိတ္တူကူးရန်။ သင်၏ ဒေတာများကို အလွယ်တကူ ပြန်ယူပါ သို့မဟုတ် စက်ပစ္စည်းကို အချိန်မရွေး ပြောင်းပါ။ သင်၏ မိတ္တူတွင် အက်ပ်ဒေတာများ ပါဝင်သည်။ သင်၏ မိတ္တူများကို Google သို့ အပ်လုဒ်လုပ်ထားပြီး သင့် Google Account စကားဝှက်သုံး၍ အသွင်ဝှက်ထားသည်။</translation>
 <translation id="7615365294369022248">အကောင့်ထည့်ရာတွင် အမှားဖြစ်သွားသည်</translation>
@@ -7807,7 +7815,6 @@
 <translation id="8059417245945632445">&amp;စက်ပစ္စည်းများ စစ်ဆေးရန်</translation>
 <translation id="8059456211585183827">သိမ်းဆည်းရန် ပုံနှိပ်စက်တစ်ခုမျှ မရှိပါ။</translation>
 <translation id="8061091456562007989">ပြန်ပြောင်းရန်</translation>
-<translation id="8061965471006133016">သင့်စကားဝှက် စသည်ကို ထပ်ဆောင်းကာကွယ်ခြင်း</translation>
 <translation id="8061970399284390013">စာလုံးပေါင်းနှင့် သဒ္ဒါစစ်ဆေးမှု</translation>
 <translation id="8061991877177392872">နောက်စက်တစ်ခုတွင် Assistant သုံး၍ Voice Match ကို စနစ်ထည့်သွင်းပြီးပုံ ရပါသည်။ ဤစက်တွင် အသံနမူနာပြုလုပ်ရန် ယခင်အသံသွင်းချက်များကို အသုံးပြုထားသည်။</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{စာရွက် 1 ရွက်}other{စာရွက် {COUNT} ရွက်}}</translation>
@@ -8048,6 +8055,7 @@
 <translation id="8272443605911821513">"နောက်ထပ် ကိရိယာများ" မီနူးထဲမှာ တိုးချဲ့မှုများကို ကလစ်လျက် သင်၏ တိုးချဲ့မှုများကို စီမံကွပ်ကဲပါ။</translation>
 <translation id="8272786333453048167">ခွင့်ပြုချက်ပြန်ပေးရန်</translation>
 <translation id="8273905181216423293">ယခုဒေါင်းလုဒ်လုပ်ရန်</translation>
+<translation id="827488840488530039">သင်ဝင်ကြည့်ရန် ကြိုးစားနေသည့် စာမျက်နှာက သင့် Kerberos တိုကင်ကို အတည်ပြု၍မရပါ</translation>
 <translation id="8274921654076766238">စာရိုက်သည့်အတိုင်း မှန်ဘီလူးက လိုက်ပြသည်</translation>
 <translation id="8274924778568117936">အပ်ဒိတ်မပြီးဘဲနှင့် သင်၏ <ph name="DEVICE_TYPE" /> ကို မပိတ်ပါနှင့်။ ထည့်သွင်းမှုပြီးစီးသည့်အခါ <ph name="DEVICE_TYPE" /> သည် ပြန်လည်စတင်ပါလိမ့်မည်။</translation>
 <translation id="8275038454117074363">တင်သွင်းရန်</translation>
@@ -8494,6 +8502,7 @@
 <translation id="869884720829132584">အပလီကေးရှင်း မီနူး</translation>
 <translation id="869891660844655955">သက်တမ်း ကုန်ဆုံးရက်</translation>
 <translation id="8699188901396699995"><ph name="PRINTER_NAME" /> အတွက် PPD</translation>
+<translation id="8702278591052316269">ဖျောက်ထားသည့် သိမ်းထားသော တဘ်အုပ်စုများပါသည့် မီနူး</translation>
 <translation id="8702825062053163569">သင်၏ <ph name="DEVICE_TYPE" /> ကို လော့ခ်ချထားပါသည်။</translation>
 <translation id="8703346390800944767">ကြော်ငြာကို ကျော်ရန်</translation>
 <translation id="8705331520020532516">နံပါတ်စဉ်</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 50c23413..42a317b 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">हाइपरटेक्स्ट ट्रान्स्पोर्ट प्रोटोकोल (HTTPS)</translation>
 <translation id="1059944192885972544">'<ph name="SEARCH_TEXT" />' खोज्दा <ph name="NUM" /> वटा ट्याब भेटिए</translation>
 <translation id="1060292118287751956">यसले स्क्रिन अपडेट हुने फ्रिक्वेन्सी निर्धारण गर्छ</translation>
+<translation id="1060570945511946595">टिकटहरू व्यवस्थापन गर्नुहोस्</translation>
 <translation id="1061130374843955397">तपाईंको <ph name="DEVICE_TYPE" /> मा स्वागत छ</translation>
 <translation id="1061373870045429865">यो लिंकको QR कोड बनाउनुहोस्</translation>
 <translation id="1061904396131502319">विश्राम लिने समय हुनै लाग्यो</translation>
@@ -1111,6 +1112,7 @@
 <translation id="1975841812214822307">हटाउनुहोस्...</translation>
 <translation id="1976150099241323601">सुरक्षा यन्त्रमा साइन इन गर्नुहोस्</translation>
 <translation id="1977965994116744507">आफ्नो <ph name="DEVICE_TYPE" /> अनलक गर्न तपाईं फोनलाई अझ नजिक ल्याउनुहोस्‌।</translation>
+<translation id="1978666928180318515">Bruschetta अनइन्स्टल गर्नुहोस्</translation>
 <translation id="1979095679518582070">यो सुविधा निष्क्रिय पार्नुले सिस्टम अपडेट र सुरक्षा जस्ता अत्यावश्यक सेवाहरूलाई आवश्यक पर्ने जानकारी पठाउने यस यन्त्रको क्षमतालाई असर गर्दैन।</translation>
 <translation id="1979280758666859181">तपाइँले <ph name="PRODUCT_NAME" /> को पुरानो संस्करण भएको च्यानलमा परिवर्नत गर्दै हुनुहुन्छ। तपाइँ यन्त्रमा हालै स्थपित संस्करणसँग च्यानल संस्करण मेल खायो पछि च्यानल परिवर्तन लागू हुनेछ।</translation>
 <translation id="197989455406964291">KDC ले इन्क्रिप्सनको यो प्रकारलाई समर्थन गर्दैन</translation>
@@ -1914,6 +1916,7 @@
 <translation id="2672142220933875349">खराब सिआरएक्स फाइल, अनप्याक गर्न असफल भयो।</translation>
 <translation id="2673135533890720193">तपाईंको ब्राउजिङ इतिहास पढ्नुहोस्</translation>
 <translation id="2674764818721168631">निष्क्रिय छ</translation>
+<translation id="2675570801872027281">Bruschetta अनइन्स्टल गर्ने क्रममा कुनै त्रुटि भयो। कृपया फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="2676492189600898281">अटोफिलका बारेमा प्रतिक्रिया दिनुहोस्</translation>
 <translation id="2678063897982469759">पुन: सक्षम गर्नुहोस्</translation>
 <translation id="2678100101831051676">कास्ट गर्न सकिएन।</translation>
@@ -2913,6 +2916,7 @@
 <translation id="3593965109698325041">प्रमाणपत्र नाम अवरोध</translation>
 <translation id="3596012367874587041">एपका सेटिङ</translation>
 <translation id="3596414637720633074">इन्कोग्निटो मोडमा तेस्रो पक्षीय कुकीहरूमाथि रोक लगाउनुहोस्</translation>
+<translation id="3598010454707842106">“Chrome कस्टमाइज गर्नुहोस्” मा क्लिक गर्नुहोस्</translation>
 <translation id="3599221874935822507">उठेको</translation>
 <translation id="3600051066689725006">वेबको अनुरोधसम्बन्धी जानकारी</translation>
 <translation id="360180734785106144">नयाँ सुविधाहरू उपलब्ध भएपछि प्रस्ताव गर्नुहोस्</translation>
@@ -3909,6 +3913,7 @@
 <translation id="4495419450179050807">यो पेजमा नदेखाउनुहोस्</translation>
 <translation id="4497145443434063861">कम्प्युटर र Chromecast बेग्लाबेग्लै Wi-Fi नेटवर्कहरू (जस्तै: २.४ GHz र ५ GHz) मा कनेक्ट गरिएका छन्</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> क्र्यास भएको छ</translation>
+<translation id="4500647907053779331">चयन गरिएको टेक्स्ट <ph name="LANGUAGE" /> भाषामा अनुवाद गरियोस्</translation>
 <translation id="450099669180426158">विस्मयादिबोधक चिन्ह प्रतिमा</translation>
 <translation id="4501530680793980440">हटाउने कार्य पक्का गर्नुहोस्</translation>
 <translation id="4502423230170890588">यो यन्त्रबाट हटाउनुहोस्</translation>
@@ -4263,6 +4268,7 @@
 <translation id="4824037980212326045">Linux को ब्याकअप तथा पुनर्स्थापना</translation>
 <translation id="4824958205181053313">सिंक रद्द गर्ने हो?</translation>
 <translation id="4825532258163983651">पासकी मेटाउन सकिएन</translation>
+<translation id="4827283332383516812">कार्ड मेटाउनुहोस्</translation>
 <translation id="4827675678516992122">जडान गर्न सकिएन</translation>
 <translation id="4827784381479890589">Chrome ब्राउजरमा परिष्कृत हिज्जे जाँच (हिज्जेसम्बन्धी सुझावहरू प्रदान गर्न टाइप गरिने पाठ Google मा पठाइन्छ)</translation>
 <translation id="4827904420700932487">यो छविको लागि QR कोड सिर्जना गर्नुहोस्</translation>
@@ -4438,7 +4444,6 @@
 <translation id="4977942889532008999">पहुँच यकिन गर्नुहोस्</translation>
 <translation id="4980805016576257426">यस विस्तारमा मालवेयर छ।</translation>
 <translation id="4981449534399733132">तपाईंका सिंक गरिएका सबै यन्त्र र Google खाताबाट ब्राउजिङ डेटा खाली गर्न <ph name="BEGIN_LINK" />साइन इन गर्नुहोस्<ph name="END_LINK" />।</translation>
-<translation id="4982111327868342436">आफूले काम गर्दा गर्दै जहाँनेर छाडेको हो पछि जुनसुकै डिभाइसमा त्यहीँबाट काम सुरु गर्नुहोस्</translation>
 <translation id="4986706507552097681">तपाईं जुनसुकै बेला सेटिङमा गई कुन-कुन डेटा सिंक गर्ने भन्ने कुरा छनौट गर्न सक्नुहुन्छ। Google ले तपाईंले विगतमा हेरेका वेबपेजका आधारमा Search र अन्य सेवाहरू पर्सनलाइज गर्न सक्छ।</translation>
 <translation id="4986728572522335985">यसले सुरक्षा साँचोको PIN सहित यसमा रहेको सबै डेटा मेटाउने छ</translation>
 <translation id="4988526792673242964">पृष्ठहरू</translation>
@@ -4555,7 +4560,6 @@
 <translation id="5097349930204431044">तपाईंले खोल्ने साइटहरूले तपाईंलाई मन पर्ने कुराहरू निर्धारण गरी तपाईंले ब्राउज गर्ने क्रममा तपाईंको रुचिअनुसारका विज्ञापन देखाउन सक्छन्</translation>
 <translation id="5097649414558628673">टुल: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">कर्सर रोकिँदा स्वतः क्लिक गरियोस्</translation>
-<translation id="5101683448725092498">आफ्ना सामग्री ब्याकअप गर्नुहोस्</translation>
 <translation id="5101839224773798795">कर्सर रोकिँदा स्वतः क्लिक गर्नुहोस्</translation>
 <translation id="5106350808162641062">हटाउनुहोस्</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> Family Link मार्फत सुपरिवेक्षण गरिएको छ। अभिभावकको निगरानीमा विद्यालयका स्रोत साधन प्रयोग गर्न तिमी विद्यालयका खाता थप्न सक्छौ।</translation>
@@ -5121,7 +5125,6 @@
 <translation id="5623842676595125836">लग</translation>
 <translation id="5624120631404540903">पासवर्डहरू व्यवस्थापन गर्नुहोस्</translation>
 <translation id="5625225435499354052">Google Pay मा गई जानकारी परिवर्तन गर्नुहोस्</translation>
-<translation id="5625631605902707678">सबै डिभाइसहरूमा</translation>
 <translation id="5626134646977739690">नाम:</translation>
 <translation id="5627086634964711283">यसले तपाईंले होम बटनमा क्लिक गर्दा कुन पाना देखाउने भनी नियन्त्रण गर्छ ।</translation>
 <translation id="5627676517703583263">Chrome मार्फत स्मार्ट तरिकाले ब्राउज गर्नुहोस्</translation>
@@ -5233,7 +5236,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{यो डेटा वा तपाईंको डिभाइसले तपाईंको सङ्गठनका सुरक्षासम्बन्धी केही नीतिहरूको पालना गरेको छैन। आफ्ना एड्मिनलाई सम्पर्क गरेर कुन कुन समस्या समाधान गर्नु पर्छ भन्ने कुरा थाहा पाउनुहोस्।}=1{यो फाइल वा तपाईंको डिभाइसले तपाईंको सङ्गठनका सुरक्षासम्बन्धी केही नीतिहरूको पालना गरेको छैन। आफ्ना एड्मिनलाई सम्पर्क गरेर कुन कुन समस्या समाधान गर्नु पर्छ भन्ने कुरा थाहा पाउनुहोस्।}other{यी फाइलहरूले तपाईंको सङ्गठनका सुरक्षासम्बन्धी केही नीतिहरूको पालना गरेका छैनन्। आफ्ना एड्मिनलाई सम्पर्क गरेर कुन कुन समस्या समाधान गर्नु पर्छ भन्ने कुरा थाहा पाउनुहोस्।}}</translation>
 <translation id="5736796278325406685">कृपया एउटा मान्य प्रयोगकर्ता नाम थप्नुहोस्</translation>
 <translation id="5738093759615225354">तपाईंसँग यो पासकी छ भने मात्र तपाईं आफ्नो कम्प्युटरमा साइन इन गर्न सक्नुहुन्छ</translation>
-<translation id="5738329404678738022">सिंक गर्ने सुविधाका सहायताले आफ्ना बुकमार्क र थप कुराहरू सेभ गर्नुहोस्</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> लाई विद्यालयको खाता थप्न मद्दत गर्न साइन इन गर्नुहोस्</translation>
 <translation id="5739235828260127894">पुष्टिका लागि प्रतीक्षा गर्दै। <ph name="LINK_BEGIN" />थप जान्नुहोस्।<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">धेरै ठुलो</translation>
@@ -5255,7 +5257,6 @@
 <translation id="5757375109985023827">प्रिभ्यू हेर्न कुनै ट्याब चयन गर्नुहोस्</translation>
 <translation id="5758631781033351321">तपाईंको अध्ययन सूची यहाँ देखिने छ</translation>
 <translation id="5759728514498647443">तपाईँले प्रिन्टमा <ph name="APP_NAME" /> मार्फत पठाउने कागजातहरू <ph name="APP_NAME" /> द्वारा पढ्न सकिन्छ।</translation>
-<translation id="5760508342220592715">थप लाभहरू प्राप्त गर्न साइन इन गर्नुहोस्</translation>
 <translation id="5762787084360227629">Google खातासम्बन्धी जानकारी हाल्नुहोस्</translation>
 <translation id="5763751966069581670">कुनै USB यन्त्र भेटिएन</translation>
 <translation id="5764483294734785780">यस रूपमा अडियो ब&amp;चत गर्नुहोस्...</translation>
@@ -5291,6 +5292,7 @@
 <translation id="5792295754950501287"><ph name="CARD_DESCRIPTION" /> का सम्बन्धमा गर्न सकिने थप कारबाहीहरू</translation>
 <translation id="5792728279623964091">कृपया आफ्नो पावर बटनमा ट्याप गर्नुहोस्</translation>
 <translation id="5792874008054171483"><ph name="SITE_NAME" /> का सम्बन्धमा गर्न सकिने थप कारबाहीहरू</translation>
+<translation id="5793317771769868848">यो डिभाइसबाट यो भुक्तानी विधि हटाइने छ</translation>
 <translation id="5793339252089865437">तपाईंले अद्यावधिक डाउनलोड गर्दा आफ्नो मोबाइल नेटवर्कमार्फत गर्नुभयो भने अधिक शुल्क लाग्न सक्छ।</translation>
 <translation id="5793420564274426163">कनेक्ट भएको कुराको पुष्टि</translation>
 <translation id="5793430094159150686">तपाईंको पासवर्ड बदलिएको छ। तपाईं आफ्नो लोकल डेटा रिस्टोर गर्न चाहनुहुन्छ भने तपाईंले आफ्नो पुरानो पासवर्ड हाल्नु पर्ने हुन्छ।</translation>
@@ -5725,6 +5727,7 @@
 <translation id="617213288191670920">कुनै पनि भाषा थपिएको छैन</translation>
 <translation id="6173623053897475761">आफ्नो PIN फेरि टाइप गर्नुहोस्</translation>
 <translation id="6175314957787328458">Microsoft डोमेन GUID</translation>
+<translation id="6177412385419165772">अनइन्स्टल गरिँदै छ...</translation>
 <translation id="6178664161104547336">एक प्रमाणपत्र चयन गर्नुहोस्</translation>
 <translation id="6178682841350631965">तपाईंको साइन इन डेटा परिवर्तन गरियो</translation>
 <translation id="6180510783007738939">रेखा बनाउने टुल</translation>
@@ -6201,6 +6204,7 @@
 <translation id="6619801788773578757">kiosk एप थप्नुहोस्</translation>
 <translation id="6619990499523117484">आफ्नो PIN को पुष्टि गर्नुहोस्</translation>
 <translation id="6620254580880484313">कन्टेनरको नाम</translation>
+<translation id="6620927550847360014">तपाईंको <ph name="DEVICE_TYPE" /> बाट Bruschetta अनइन्स्टल गर्ने हो?</translation>
 <translation id="6621391692573306628">तपाईं यो ट्याब अर्को डिभाइसमा पठाउन चाहनुहुन्छ भने दुवै डिभाइसमा Chrome मा साइन इन गर्नुहोस्</translation>
 <translation id="6622980291894852883">तस्वीरहरूलाई ब्लक गर्न जारी राख्नुहोस्</translation>
 <translation id="6624036901798307345">ट्याब्लेट मोडमा भएका बेला प्रत्येक ट्याबको थम्बनेल देखाउने नयाँ ट्याब स्ट्रिप खोल्न ट्याबको सङ्ख्या गन्ने टुलबारको बटनमा ट्याप गर्नुहोस्।</translation>
@@ -6418,6 +6422,7 @@
 <translation id="6818547713623251698">आफ्नो फोनका फोटो, मिडिया, सूचना तथा एपहरू हेर्नुहोस्</translation>
 <translation id="6818802132960437751">अन्तर्निर्मित भाइरस प्रोटेक्सन</translation>
 <translation id="6818920801736417483">पासवर्डहरू सेभ गर्ने हो?</translation>
+<translation id="6820079682647046800">Kerberos प्रमाणीकरण गर्न सकिएन</translation>
 <translation id="6823174134746916417">टचप्याडको क्लिक गर्न ट्याप गर्नुहोस् नामक सुविधा</translation>
 <translation id="6824564591481349393">&amp;इमेल ठेगाना कपी गर्नुहोस्</translation>
 <translation id="6824584962142919697">तत्त्वहरूको निरीक्षण गर्नुहोस्</translation>
@@ -6572,6 +6577,7 @@
 <translation id="6955698182324067397">तपाईं ChromeOS का डिबग गर्ने सुविधाहरू अन गर्दै हुनुहुन्छ। ती सुविधा अन भएपछि sshd daemon सेटअप हुने छ र USB ड्राइभबाट बुट गर्ने सुविधा अन हुने छ।</translation>
 <translation id="6955893174999506273">अरू एउटा स्विच असाइन गर्नुहोस्</translation>
 <translation id="6957044667612803194">यस सुरक्षा साँचोमा PIN हरू सेट गर्न मिल्दैन</translation>
+<translation id="6960133692707095572">टिकटविनै हेर्नुहोस्</translation>
 <translation id="6960507406838246615">Linux अपडेट गर्न आवश्यक छ</translation>
 <translation id="6960648667961844909"><ph name="LANGUAGE" /> भाषाका वाक् पहिचानसम्बन्धी फाइलहरू डाउनलोड गर्न सकिएन। पछि डाउनलोड गर्ने प्रयास गरिने छ। डाउनलोड गर्ने कार्य पूरा नहुँदासम्म बोलिएको कुरा प्रोसेस गर्नका निम्ति Google मा पठाइन्छ।</translation>
 <translation id="696103774840402661">यो <ph name="DEVICE_TYPE" /> का सबै प्रयोगकर्ताका सबै फाइल तथा स्थानीय डेटा सदाका लागि मेटाइएका छन्।</translation>
@@ -7264,6 +7270,7 @@
 <translation id="7609148976235050828">कृपया इन्टरनेटमा जडान गरी फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="7612401678989660900">माइक्रोफोन प्रयोग गर्ने अनुमति चाहिने एप तथा वेबसाइटहरूलाई माइक्रोफोन प्रयोग गर्ने अनुमति दिनुहोस्</translation>
 <translation id="7612655942094160088">कनेक्ट गरिएको फोनका सुविधाहरू सक्षम पार्नुहोस्।</translation>
+<translation id="7612989789287281429">साइन इन गरिँदै छ…</translation>
 <translation id="7614260613810441905">कुनै साइटले तपाईंको डिभाइसका फाइल वा फोल्डरहरू सम्पादन गर्न खोज्दा सोध्नुहोस् (सिफारिस गरिएको)</translation>
 <translation id="761530003705945209">Google ड्राइभमा ब्याकअप गर्नुहोस् जुनसुकै बेला सजिलैसँग आफ्नो डेटा पुनर्स्थापना गर्नुहोस् वा यन्त्र बदल्नुहोस्। तपाईंको ब्याकअपमा एपको डेटा समावेश हुन्छ। तपाईंका ब्याकअपहरू Google मा अपलोड गरी तपाईंको Google खाताको पासवर्ड प्रयोग गरेर इन्क्रिप्ट गरिन्छन्।</translation>
 <translation id="7615365294369022248">खाता थप्ने क्रममा कुनै त्रुटि भयो</translation>
@@ -7792,7 +7799,6 @@
 <translation id="8059417245945632445">यन्त्रहरू &amp;निरीक्षण गर्नुहोस्</translation>
 <translation id="8059456211585183827">सुरक्षित गर्नका लागि कुनै पनि प्रिन्टर उपलब्ध छैन।</translation>
 <translation id="8061091456562007989">यसलाई परिवर्तन गरी पहिलेको जस्तै बनाउनुहोस्</translation>
-<translation id="8061965471006133016">तपाईंका पासवर्ड र थप कुराहरूका लागि थप सुरक्षा</translation>
 <translation id="8061970399284390013">हिज्जे तथा व्याकरणको जाँच</translation>
 <translation id="8061991877177392872">तपाईंले आफ्नो सहायकमार्फत अर्को यन्त्रमा Voice Match सेटअप गरिसक्नुभएको छ जस्तो देखिन्छ। यो डिभाइसमा आवाजको मोडेल बनाउनका लागि ती पहिलेका रेकर्डिङहरू प्रयोग गरिएका छन्।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{कागजको एउटा पाना}other{कागजका {COUNT} वटा पाना}}</translation>
@@ -8033,6 +8039,7 @@
 <translation id="8272443605911821513">"थप उपकरण" मेनुमा एक्सटेन्सन क्लिक गरेर तपाईंको एक्सटेन्सनहरूको प्रबन्ध मिलाउनुहोस्।</translation>
 <translation id="8272786333453048167">फेरि अनुमति दिनुहोस्</translation>
 <translation id="8273905181216423293">अहिले नै डाउनलोड गर्नुहोस्</translation>
+<translation id="827488840488530039">तपाईंले हेर्न खोज्नुभएको पेजले तपाईंको Kerberos टिकट पुष्टि गर्न सकेन</translation>
 <translation id="8274921654076766238">म्याग्निफायर किबोर्डको फोकससँगै सर्छ</translation>
 <translation id="8274924778568117936">अद्यावधिक पूरा नहुन्जेल आफ्नो <ph name="DEVICE_TYPE" /> लाई निष्क्रिय नपार्नुहोस् वा बन्द नगर्नुहोस्‌। स्थापना सम्पन्न भएपछि तपाईंको <ph name="DEVICE_TYPE" /> पुनः सुरु हुनेछ।</translation>
 <translation id="8275038454117074363">आयात गर्नुहोस्</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index ece8139f..d59273d2 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation>
 <translation id="1059944192885972544"><ph name="NUM" /> tabbladen gevonden voor '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="1060292118287751956">Bepaalt de frequentie waarmee het scherm wordt geüpdatet</translation>
+<translation id="1060570945511946595">Tickets beheren</translation>
 <translation id="1061130374843955397">Welkom bij je <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">QR-code maken voor deze link</translation>
 <translation id="1061904396131502319">Bijna tijd voor pauze</translation>
@@ -1114,6 +1115,7 @@
 <translation id="1975841812214822307">Verwijderen...</translation>
 <translation id="1976150099241323601">Inloggen bij beveiligingsapparaat</translation>
 <translation id="1977965994116744507">Plaats je telefoon dichterbij om je <ph name="DEVICE_TYPE" /> te ontgrendelen.</translation>
+<translation id="1978666928180318515">Bruschetta verwijderen</translation>
 <translation id="1979095679518582070">Als je deze functie uitzet, heeft dit geen gevolgen voor de mogelijkheid van dit apparaat om de informatie te sturen die nodig is voor essentiële services zoals systeemupdates en beveiliging.</translation>
 <translation id="1979280758666859181">Je wijzigt naar een kanaal met een oudere versie van <ph name="PRODUCT_NAME" />. De wijziging van kanaal wordt toegepast wanneer de versie van het kanaal overeenkomt met de versie die momenteel op het apparaat is geïnstalleerd.</translation>
 <translation id="197989455406964291">KDC ondersteunt versleutelingstype niet</translation>
@@ -1917,6 +1919,7 @@
 <translation id="2672142220933875349">Beschadigd crx-bestand, uitpakken mislukt.</translation>
 <translation id="2673135533890720193">Je browsegeschiedenis lezen</translation>
 <translation id="2674764818721168631">Uit</translation>
+<translation id="2675570801872027281">Fout bij het verwijderen van Bruschetta. Probeer het opnieuw.</translation>
 <translation id="2676492189600898281">Feedback geven over automatisch invullen</translation>
 <translation id="2678063897982469759">Opnieuw aanzetten</translation>
 <translation id="2678100101831051676">Kan niet casten.</translation>
@@ -2915,6 +2918,7 @@
 <translation id="3593965109698325041">Naambeperkingen voor certificaten</translation>
 <translation id="3596012367874587041">App-instellingen</translation>
 <translation id="3596414637720633074">Cookies van derden blokkeren in incognitomodus</translation>
+<translation id="3598010454707842106">Klik op Chrome aanpassen</translation>
 <translation id="3599221874935822507">Verhoogd</translation>
 <translation id="3600051066689725006">Informatie over webverzoek</translation>
 <translation id="360180734785106144">je nieuwe functies aan te bieden zodra deze beschikbaar komen</translation>
@@ -3911,6 +3915,7 @@
 <translation id="4495419450179050807">Niet op deze pagina bekijken</translation>
 <translation id="4497145443434063861">Pc en Chromecast op verschillende wifi-netwerken (bijvoorbeeld 2,4 GHz en 5 GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> is gecrasht</translation>
+<translation id="4500647907053779331">&amp;Selectie vertalen naar het <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Uitroeptekenpictogram</translation>
 <translation id="4501530680793980440">Verwijderen bevestigen</translation>
 <translation id="4502423230170890588">Verwijderen van dit apparaat</translation>
@@ -4439,7 +4444,6 @@
 <translation id="4977942889532008999">Toegang bevestigen</translation>
 <translation id="4980805016576257426">Deze extensie bevat malware.</translation>
 <translation id="4981449534399733132">Als je browsegegevens wilt wissen van al je gesynchroniseerde apparaten en je Google-account, <ph name="BEGIN_LINK" />log je in<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Ga op elk apparaat verder waar je gebleven was</translation>
 <translation id="4986706507552097681">Je kunt altijd in de instellingen bepalen wat je wilt synchroniseren. Google kan Zoeken en andere services personaliseren op basis van je geschiedenis.</translation>
 <translation id="4986728572522335985">Hierdoor worden alle gegevens op de beveiligingssleutel, waaronder de pincode, verwijderd.</translation>
 <translation id="4988526792673242964">Pagina's</translation>
@@ -4556,7 +4560,6 @@
 <translation id="5097349930204431044">Sites die je bezoekt, kunnen vaststellen wat je leuk vindt en daarna advertenties voorstellen terwijl je verder browset</translation>
 <translation id="5097649414558628673">Tool: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automatisch klikken als de cursor stopt</translation>
-<translation id="5101683448725092498">Back-up maken</translation>
 <translation id="5101839224773798795">Automatisch klikken wanneer de muisaanwijzer stopt</translation>
 <translation id="5106350808162641062">Verwijderen</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> staat onder toezicht van Family Link. Je kunt schoolaccounts toevoegen om toegang tot hulpbronnen van school te krijgen met ouderlijk toezicht.</translation>
@@ -5120,7 +5123,6 @@
 <translation id="5623842676595125836">Logboek</translation>
 <translation id="5624120631404540903">Wachtwoorden beheren</translation>
 <translation id="5625225435499354052">Bewerken in Google Pay</translation>
-<translation id="5625631605902707678">Op alle apparaten</translation>
 <translation id="5626134646977739690">Naam:</translation>
 <translation id="5627086634964711283">Hiermee wordt ook gecontroleerd welke pagina wordt getoond wanneer je op de Homepage-knop klikt.</translation>
 <translation id="5627676517703583263">Slim browsen met Chrome</translation>
@@ -5232,7 +5234,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Deze gegevens of je apparaat voldoen niet aan het beveiligingsbeleid van je organisatie. Neem contact op met je beheerder over wat moet worden opgelost.}=1{Dit bestand of je apparaat voldoet niet aan het beveiligingsbeleid van je organisatie. Neem contact op met je beheerder over wat moet worden opgelost.}other{Deze bestanden voldoen niet aan het beveiligingsbeleid van je organisatie. Neem contact op met je beheerder over wat moet worden opgelost.}}</translation>
 <translation id="5736796278325406685">Geef een geldige gebruikersnaam op</translation>
 <translation id="5738093759615225354">Je hebt deze toegangscode nodig om in te loggen op je computer</translation>
-<translation id="5738329404678738022">Sla je bookmarks en meer op met synchronisatie</translation>
 <translation id="5739017626473506901">Log in om <ph name="USER_NAME" /> te helpen een schoolaccount toe te voegen</translation>
 <translation id="5739235828260127894">Wachten op verificatie. <ph name="LINK_BEGIN" />Meer informatie.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Zeer groot</translation>
@@ -5254,7 +5255,6 @@
 <translation id="5757375109985023827">Selecteer een tabblad om een voorbeeld te bekijken</translation>
 <translation id="5758631781033351321">Hier vind je je leeslijst</translation>
 <translation id="5759728514498647443">Documenten die je via <ph name="APP_NAME" /> verzendt om af te drukken, kunnen door <ph name="APP_NAME" /> worden gelezen.</translation>
-<translation id="5760508342220592715">Inloggen voor meer voordelen</translation>
 <translation id="5762787084360227629">Google-accountgegevens opgeven</translation>
 <translation id="5763751966069581670">Geen USB-apparaten gevonden</translation>
 <translation id="5764483294734785780">Audio op&amp;slaan als...</translation>
@@ -5723,6 +5723,7 @@
 <translation id="617213288191670920">Geen talen toegevoegd</translation>
 <translation id="6173623053897475761">Typ je pincode nog een keer</translation>
 <translation id="6175314957787328458">Microsoft-domein-GUID</translation>
+<translation id="6177412385419165772">Verwijderen...</translation>
 <translation id="6178664161104547336">Een certificaat selecteren</translation>
 <translation id="6178682841350631965">Je inloggegevens zijn geüpdatet</translation>
 <translation id="6180510783007738939">Tool Lijn</translation>
@@ -6199,6 +6200,7 @@
 <translation id="6619801788773578757">Kiosk-app toevoegen</translation>
 <translation id="6619990499523117484">Je pincode bevestigen</translation>
 <translation id="6620254580880484313">Containernaam</translation>
+<translation id="6620927550847360014">Bruschetta verwijderen van je <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Als je dit tabblad naar een ander apparaat wilt sturen, log je op beide apparaten in bij Chrome</translation>
 <translation id="6622980291894852883">Afbeeldingen blijven blokkeren</translation>
 <translation id="6624036901798307345">Tik in de tabletmodus op de werkbalkknop met de tabbladteller om de tabbladstrook te openen. Je ziet dan miniaturen van alle tabbladen.</translation>
@@ -6416,6 +6418,7 @@
 <translation id="6818547713623251698">Foto's, media, meldingen en apps van je telefoon bekijken</translation>
 <translation id="6818802132960437751">Ingebouwde virusbeveiliging</translation>
 <translation id="6818920801736417483">Wachtwoorden opslaan?</translation>
+<translation id="6820079682647046800">Kerberos-verificatie mislukt</translation>
 <translation id="6823174134746916417">Tikken-om-te-klikken voor touchpad</translation>
 <translation id="6824564591481349393">&amp;E-mailadres kopiëren</translation>
 <translation id="6824584962142919697">Elementen &amp;inspecteren</translation>
@@ -6569,6 +6572,7 @@
 <translation id="6955698182324067397">Je zet foutopsporingsfuncties aan voor Chrome OS, waarmee de sshd daemon wordt ingesteld en opstarten vanaf USB-stations mogelijk wordt.</translation>
 <translation id="6955893174999506273">Nog 1 schakelaar toewijzen</translation>
 <translation id="6957044667612803194">Deze beveiligingssleutel ondersteunt geen pincodes</translation>
+<translation id="6960133692707095572">Bezoeken zonder ticket</translation>
 <translation id="6960507406838246615">Linux-update vereist</translation>
 <translation id="6960648667961844909">Kan spraakbestanden in het <ph name="LANGUAGE" /> niet downloaden. Download wordt later geprobeerd. Spraak wordt naar Google gestuurd voor verwerking totdat de download klaar is.</translation>
 <translation id="696103774840402661">Alle bestanden en lokale gegevens voor alle gebruikers op deze <ph name="DEVICE_TYPE" /> zijn definitief verwijderd.</translation>
@@ -7788,7 +7792,6 @@
 <translation id="8059417245945632445">Apparaten &amp;inspecteren</translation>
 <translation id="8059456211585183827">Er kunnen geen printers worden opgeslagen.</translation>
 <translation id="8061091456562007989">Wijziging ongedaan maken</translation>
-<translation id="8061965471006133016">Extra beveiliging voor je wachtwoorden en meer</translation>
 <translation id="8061970399284390013">Spelling- en grammaticacontrole</translation>
 <translation id="8061991877177392872">Zoe te zien heb je Voice Match al ingesteld voor de Assistent op een ander apparaat. De eerdere opnamen daarvan zijn gebruikt om een spraakmodel op dit apparaat te maken.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 vel papier}other{{COUNT} vellen papier}}</translation>
@@ -8029,6 +8032,7 @@
 <translation id="8272443605911821513">Beheer je extensies door op 'Extensies' te klikken in het menu 'Meer tools'.</translation>
 <translation id="8272786333453048167">Opnieuw toestaan</translation>
 <translation id="8273905181216423293">Nu downloaden</translation>
+<translation id="827488840488530039">De pagina die je wilt bezoeken, kan je Kerberos-tickets niet verifiëren</translation>
 <translation id="8274921654076766238">Vergrootglas volgt toetsenbordfocus</translation>
 <translation id="8274924778568117936">Je mag je <ph name="DEVICE_TYPE" /> niet uitzetten of sluiten totdat de update is voltooid. Je <ph name="DEVICE_TYPE" /> wordt opnieuw opgestart nadat de installatie is voltooid.</translation>
 <translation id="8275038454117074363">Importeren</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index c7c44386..9263594 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Protokoll for sikker hypertekstoverføring (HTTPS)</translation>
 <translation id="1059944192885972544">Fant <ph name="NUM" /> faner for «<ph name="SEARCH_TEXT" />»</translation>
 <translation id="1060292118287751956">Bestemmer frekvensen for skjermoppdateringer</translation>
+<translation id="1060570945511946595">Administrer saker</translation>
 <translation id="1061130374843955397">Velkommen til <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Opprett en QR-kode for denne linken</translation>
 <translation id="1061904396131502319">Snart tid for en pause</translation>
@@ -1120,6 +1121,7 @@
 <translation id="1975841812214822307">Fjern</translation>
 <translation id="1976150099241323601">Logg på sikkerhetsenhet</translation>
 <translation id="1977965994116744507">Hold telefonen nærmere for å låse opp <ph name="DEVICE_TYPE" />-enheten.</translation>
+<translation id="1978666928180318515">Fjern Bruschetta</translation>
 <translation id="1979095679518582070">Enhetens evne til å sende informasjonen som kreves for nødvendige tjenester, for eksempel systemoppdateringer og sikkerhet, påvirkes ikke hvis du slår av denne funksjonen.</translation>
 <translation id="1979280758666859181">Du endrer til en kanal med en eldre versjon av <ph name="PRODUCT_NAME" />. Kanalendringen trer i kraft når kanalversjonen samsvarer med versjonen som allerede er installert på enheten din.</translation>
 <translation id="197989455406964291">KDC støtter ikke krypteringstypen</translation>
@@ -1926,6 +1928,7 @@
 <translation id="2672142220933875349">Skadet crx-fil. Kunne ikke pakke den ut.</translation>
 <translation id="2673135533890720193">lese nettleserloggen din</translation>
 <translation id="2674764818721168631">Av</translation>
+<translation id="2675570801872027281">Feil ved fjerning av Bruschetta. Prøv igjen.</translation>
 <translation id="2676492189600898281">Gi tilbakemelding om autofyll</translation>
 <translation id="2678063897982469759">Aktiver på nytt</translation>
 <translation id="2678100101831051676">Kan ikke caste.</translation>
@@ -2924,6 +2927,7 @@
 <translation id="3593965109698325041">Begrensninger for sertifikatnavn</translation>
 <translation id="3596012367874587041">Appinnstillinger</translation>
 <translation id="3596414637720633074">Blokkér informasjonskapsler fra tredjepart i inkognitomodus</translation>
+<translation id="3598010454707842106">Klikk på «Tilpass Chrome»</translation>
 <translation id="3599221874935822507">Hevet</translation>
 <translation id="3600051066689725006">Informasjon om nettforespørsel</translation>
 <translation id="360180734785106144">tilby nye funksjoner etter hvert som de blir tilgjengelige</translation>
@@ -3919,6 +3923,7 @@
 <translation id="4495419450179050807">Ikke vis på denne siden</translation>
 <translation id="4497145443434063861">PC og Chromecast på ulike Wifi-nettverk (f.eks. 2,4 GHz og 5 GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> har krasjet</translation>
+<translation id="4500647907053779331">&amp;Oversett den markerte teksten til <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Utropstegnikon</translation>
 <translation id="4501530680793980440">Bekreftelse av fjerning</translation>
 <translation id="4502423230170890588">Fjern fra denne enheten</translation>
@@ -4274,6 +4279,7 @@
 <translation id="4824037980212326045">Linux-sikkerhetskopiering og -gjenoppretting</translation>
 <translation id="4824958205181053313">Vil du avbryte synkroniseringen?</translation>
 <translation id="4825532258163983651">Kan ikke slette tilgangsnøkkelen</translation>
+<translation id="4827283332383516812">Slett kortet</translation>
 <translation id="4827675678516992122">Kan ikke koble til</translation>
 <translation id="4827784381479890589">Forbedret stavekontroll i Chrome-nettleseren (teksten sendes til Google for staveforslag)</translation>
 <translation id="4827904420700932487">Opprett en QR-kode for dette bildet</translation>
@@ -4449,7 +4455,6 @@
 <translation id="4977942889532008999">Bekreft tilgangen</translation>
 <translation id="4980805016576257426">Denne utvidelsen inneholder skadelig programvare.</translation>
 <translation id="4981449534399733132">For å slette nettlesingsdata på alle synkroniserte enheter og Google-kontoen din må du <ph name="BEGIN_LINK" />logge på<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Fortsett der du slapp – på hvilken som helst enhet.</translation>
 <translation id="4986706507552097681">Du kan når som helst velge hva du vil synkronisere, i innstillingene. Google kan gi Søk og andre tjenester personlig preg basert på loggen din.</translation>
 <translation id="4986728572522335985">Dette fører til at alle dataene på sikkerhetsnøkkelen, inkludert PIN-koden, blir slettet</translation>
 <translation id="4988526792673242964">Sider</translation>
@@ -4566,7 +4571,6 @@
 <translation id="5097349930204431044">Nettstedene du besøker, kan bestemme hva du liker, og deretter foreslå annonser ved kontinuerlig lesing</translation>
 <translation id="5097649414558628673">Verktøy: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Klikk automatisk når markøren stanser</translation>
-<translation id="5101683448725092498">Sikkerhetskopier tingene dine</translation>
 <translation id="5101839224773798795">Klikk automatisk når pekeren stopper</translation>
 <translation id="5106350808162641062">Fjern</translation>
 <translation id="510695978163689362">Family Link har tilsyn med <ph name="USER_EMAIL" />. Du kan legge til skolekontoer for å få tilgang til skoleressurser med foreldretilsyn.</translation>
@@ -5131,7 +5135,6 @@
 <translation id="5623842676595125836">Logg</translation>
 <translation id="5624120631404540903">Administrer passord</translation>
 <translation id="5625225435499354052">Rediger i Google Pay</translation>
-<translation id="5625631605902707678">På alle enheter</translation>
 <translation id="5626134646977739690">Navn:</translation>
 <translation id="5627086634964711283">Den styrer også hvilken side som vises når du klikker på Startside-knappen.</translation>
 <translation id="5627676517703583263">Surf smart med Chrome</translation>
@@ -5243,7 +5246,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Disse dataene eller enheten din oppfyller ikke alle sikkerhetsreglene til organisasjonen din. Snakk med administratoren din om hva som må fikses.}=1{Denne filen eller enheten din oppfyller ikke alle sikkerhetsreglene til organisasjonen din. Snakk med administratoren din om hva som må fikses.}other{Disse filene oppfyller ikke alle sikkerhetsreglene til organisasjonen din. Snakk med administratoren din om hva som må fikses.}}</translation>
 <translation id="5736796278325406685">Skriv inn et gyldig brukernavn</translation>
 <translation id="5738093759615225354">Du trenger denne tilgangsnøkkelen for å logge på datamaskinen din</translation>
-<translation id="5738329404678738022">Lagre bokmerkene dine med mer ved hjelp av synkronisering</translation>
 <translation id="5739017626473506901">Logg på for å hjelpe <ph name="USER_NAME" /> med å legge til en skolekonto</translation>
 <translation id="5739235828260127894">Venter på bekreftelse. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Veldig stor</translation>
@@ -5265,7 +5267,6 @@
 <translation id="5757375109985023827">Velg fanen du vil forhåndsvise</translation>
 <translation id="5758631781033351321">Her finner du leselisten din</translation>
 <translation id="5759728514498647443">Dokumenter du sender til utskrift via <ph name="APP_NAME" />, kan leses av <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Logg på for å få flere fordeler</translation>
 <translation id="5762787084360227629">Oppgi Google-kontoinformasjon</translation>
 <translation id="5763751966069581670">Fant ingen USB-enheter</translation>
 <translation id="5764483294734785780">La&amp;gre lyd som</translation>
@@ -5301,6 +5302,7 @@
 <translation id="5792295754950501287">Flere handlinger for <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Trykk på av/på-knappen</translation>
 <translation id="5792874008054171483">Flere handlinger for <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Denne betalingsmåten blir slettet fra denne enheten</translation>
 <translation id="5793339252089865437">Hvis du laster ned oppdateringen via mobilnettverket ditt, kan det føre til ekstrakostnader.</translation>
 <translation id="5793420564274426163">Bekreftelse på sammenkobling</translation>
 <translation id="5793430094159150686">Passordet er endret. For å gjenopprette de lokale dataene dine må du skrive inn det gamle passordet ditt.</translation>
@@ -5736,6 +5738,7 @@
 <translation id="617213288191670920">Ingen språk er lagt til</translation>
 <translation id="6173623053897475761">Skriv inn PIN-koden din igjen</translation>
 <translation id="6175314957787328458">Microsoft domeneguide</translation>
+<translation id="6177412385419165772">Fjerner …</translation>
 <translation id="6178664161104547336">Velg et sertifikat</translation>
 <translation id="6178682841350631965">Påloggingsinformasjonen ble oppdatert</translation>
 <translation id="6180510783007738939">Linjeverktøy</translation>
@@ -6212,6 +6215,7 @@
 <translation id="6619801788773578757">Legg til kioskapp</translation>
 <translation id="6619990499523117484">Bekreft PIN-koden din</translation>
 <translation id="6620254580880484313">Navnet på beholderen</translation>
+<translation id="6620927550847360014">Vil du fjerne Bruschetta fra <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">For å sende denne fanen til en annen enhet, logg på Chrome på begge enhetene</translation>
 <translation id="6622980291894852883">Fortsett blokkering av bilder</translation>
 <translation id="6624036901798307345">I nettbrettmodus kan du trykke på fanetellerknappen på verktøyraden for å åpne den nye faneraden som viser miniatyrbilder av alle fanene.</translation>
@@ -6429,6 +6433,7 @@
 <translation id="6818547713623251698">Se bildene, mediene, varslene og appene på telefonen din</translation>
 <translation id="6818802132960437751">Innebygd virusbeskyttelse</translation>
 <translation id="6818920801736417483">Vil du lagre passord?</translation>
+<translation id="6820079682647046800">Kerberos-autentisering mislyktes</translation>
 <translation id="6823174134746916417">Berøringsklikk på styreflaten</translation>
 <translation id="6824564591481349393">Kopier &amp;e-postadresse</translation>
 <translation id="6824584962142919697">&amp;Undersøk elementer</translation>
@@ -6583,6 +6588,7 @@
 <translation id="6955698182324067397">Du er i ferd med å slå på ChromeOS-feilsøkingsfunksjoner som kommer til å konfigurere sshd daemon og muliggjøre oppstart fra USB-stasjoner.</translation>
 <translation id="6955893174999506273">Tilordne én bryter til</translation>
 <translation id="6957044667612803194">Denne sikkerhetsnøkkelen støtter ikke PIN-koder</translation>
+<translation id="6960133692707095572">Besøk uten noen sak</translation>
 <translation id="6960507406838246615">Linux-oppdatering kreves</translation>
 <translation id="6960648667961844909">Kunne ikke laste ned talefiler for <ph name="LANGUAGE" />. Vi forsøker å laste ned filene senere. Tale blir sendt til Google for behandling frem til nedlastingen er fullført.</translation>
 <translation id="696103774840402661">Alle filer og lokale data for alle brukerne på denne <ph name="DEVICE_TYPE" />-enheten er slettet permanent.</translation>
@@ -7275,6 +7281,7 @@
 <translation id="7609148976235050828">Koble til Internett og prøv på nytt.</translation>
 <translation id="7612401678989660900">Bruk mikrofontillatelsen for å gi apper og nettsteder tilgang til mikrofonen</translation>
 <translation id="7612655942094160088">Slå på funksjoner for tilkoblet telefon.</translation>
+<translation id="7612989789287281429">Logger på …</translation>
 <translation id="7614260613810441905">Spør når nettsteder vil redigere filer eller mapper på enheten (anbefales)</translation>
 <translation id="761530003705945209">Sikkerhetskopiér til Google Disk. Gjenopprett dataene dine enkelt eller bytt enhet når som helst. Sikkerhetskopien din inkluderer appdata. Sikkerhetskopiene dine lastes opp til Google og krypteres med passordet til Google-kontoen din.</translation>
 <translation id="7615365294369022248">Det oppsto en feil da en konto skulle legges til</translation>
@@ -7804,7 +7811,6 @@
 <translation id="8059417245945632445">&amp;Inspiser enheter</translation>
 <translation id="8059456211585183827">Det er ingen skrivere tilgjengelig for lagring.</translation>
 <translation id="8061091456562007989">Endre tilbake</translation>
-<translation id="8061965471006133016">Ekstra beskyttelse for passordene dine med mer</translation>
 <translation id="8061970399284390013">Stave- og grammatikkontroll</translation>
 <translation id="8061991877177392872">Det ser ut til at du allerede har konfigurert Voice Match med assistenten din på en annen enhet. Disse tidligere opptakene ble brukt til å lage en stemmemodell på denne enheten.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 ark}other{{COUNT} ark}}</translation>
@@ -8045,6 +8051,7 @@
 <translation id="8272443605911821513">Administrer utvidelsene dine ved å klikke på Utvidelser i Flere verktøy-menyen.</translation>
 <translation id="8272786333453048167">Tillat igjen</translation>
 <translation id="8273905181216423293">Last ned nå</translation>
+<translation id="827488840488530039">Siden du prøver å besøke, kunne ikke bekrefte Kerberos-sakene dine</translation>
 <translation id="8274921654076766238">Lupen følger tastaturets fokus</translation>
 <translation id="8274924778568117936">Du må ikke slå av eller lukke <ph name="DEVICE_TYPE" />-enheten din før oppdateringen er ferdig. <ph name="DEVICE_TYPE" />-enheten starter på nytt når installasjonen er ferdig.</translation>
 <translation id="8275038454117074363">Importér</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index e96fe3ff..594c4a7 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -4439,7 +4439,6 @@
 <translation id="4977942889532008999">ଆକ୍ସେସ୍ ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation>
 <translation id="4980805016576257426">ଏହି ଏକ୍ସଟେନ୍‌ସନ୍‌ରେ ମାଲ୍‌ୱେର୍‌ ଅଛି।</translation>
 <translation id="4981449534399733132">ସିଙ୍କ୍ ହୋଇଥିବା ଆପଣଙ୍କର ସମସ୍ତ ଡିଭାଇସ୍ ଏବଂ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରୁ ବ୍ରାଉଜିଂ ଡାଟା ଖାଲି କରିବାକୁ, <ph name="BEGIN_LINK" />ସାଇନ୍ ଇନ୍ କରନ୍ତୁ<ph name="END_LINK" />।</translation>
-<translation id="4982111327868342436">ଯେ କୌଣସି ଡିଭାଇସରେ ଆପଣ ଯେଉଁଠି ଛାଡ଼ିଥିଲେ ସେଠାରୁ ପୁଣି ଆରମ୍ଭ କରନ୍ତୁ</translation>
 <translation id="4986706507552097681">ସେଟିଂସରେ କଣ ସିଙ୍କ କରିବାକୁ ହେବ ତାହା ଆପଣ ସର୍ବଦା ବାଛି ପାରିବେ। Google ଆପଣଙ୍କ ଇତିହାସ ଆଧାରରେ Search ଏବଂ ଅନ୍ୟ ସେବାଗୁଡ଼ିକୁ ପର୍ସନାଲାଇଜ କରିପାରେ।</translation>
 <translation id="4986728572522335985">ଏହା ସୁରକ୍ଷା କୀ’ର PIN ସମେତ ଏଥିରେ ଥିବା ସମସ୍ତ ଡାଟା ଡିଲିଟ୍ କରିଦେବ</translation>
 <translation id="4988526792673242964">ପୃଷ୍ଠାଗୁଡ଼ିକ</translation>
@@ -4556,7 +4555,6 @@
 <translation id="5097349930204431044">ଆପଣ ଭିଜିଟ କରୁଥିବା ସାଇଟଗୁଡ଼ିକ ଆପଣ ଯାହା ପସନ୍ଦ କରନ୍ତି ତାହା ସ୍ଥିର କରିପାରିବ ଏବଂ ତା'ପରେ ଆପଣ ବ୍ରାଉଜ କରିବା ଜାରି ରଖିଲେ ବିଜ୍ଞାପନଗୁଡ଼ିକ ପରାମର୍ଶ ଦେଇପାରିବ</translation>
 <translation id="5097649414558628673">ଟୁଲ୍: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">କର୍ସର୍ ମୁଭ୍ ହେବା ବନ୍ଦ ହେଲେ ସ୍ୱଚାଳିତ ଭାବେ କ୍ଲିକ୍ କରନ୍ତୁ</translation>
-<translation id="5101683448725092498">ଆପଣଙ୍କ ଡାଟାର ବେକଅପ ନିଅନ୍ତୁ</translation>
 <translation id="5101839224773798795">କର୍ସର୍ ବନ୍ଦ ଦେବା ସମୟରେ ସ୍ୱଚାଳିତ ଭାବେ କ୍ଲିକ୍ କରିଥାଏ</translation>
 <translation id="5106350808162641062">କାଢ଼ି ଦିଅନ୍ତୁ</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> Family Link ଦ୍ୱାରା ନିରୀକ୍ଷିତ ହେଉଛି। ତୁମେ ସ୍କୁଲର ରିସୋର୍ସଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ବାପାମାଙ୍କ ନିରୀକ୍ଷଣ ସହିତ ସ୍କୁଲ୍ ଆକାଉଣ୍ଟଗୁଡ଼ିକୁ ଯୋଗ କରିପାରିବ।</translation>
@@ -5120,7 +5118,6 @@
 <translation id="5623842676595125836">ଲଗ୍‌</translation>
 <translation id="5624120631404540903">ପାସ୍‌ୱର୍ଡଗୁଡ଼ିକୁ ପରିଚାଳନା କରନ୍ତୁ</translation>
 <translation id="5625225435499354052">Google Payରେ ଏଡିଟ କରନ୍ତୁ</translation>
-<translation id="5625631605902707678">ସମଗ୍ର ଡିଭାଇସରେ</translation>
 <translation id="5626134646977739690">ନାମ:</translation>
 <translation id="5627086634964711283">ଆପଣ ହୋମ୍ ବଟନ୍‍‍ରେ କ୍ଲିକ୍ କରିଲେ କେଉଁ ପୃଷ୍ଠାଟି ଦେଖାଯିବ, ଏହା ତାହା ମଧ୍ୟ ନିୟନ୍ତ୍ରଣ କରେ।</translation>
 <translation id="5627676517703583263">Chromeରେ ସ୍ମାର୍ଟ ପଦ୍ଧତିରେ ବ୍ରାଉଜ୍‍ କରନ୍ତୁ</translation>
@@ -5232,7 +5229,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ଏହି ଡାଟା କିମ୍ବା ଆପଣଙ୍କ ଡିଭାଇସ ଆପଣଙ୍କ ସଂସ୍ଥାର କିଛି ସୁରକ୍ଷା ନୀତିକୁ ପୂରଣ କରୁନାହିଁ। କଣ ସମାଧାନ କରାଯିବା ଆବଶ୍ୟକ ସେ ବିଷୟରେ ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହ ଯାଞ୍ଚ କରନ୍ତୁ।}=1{ଏହି ଫାଇଲ କିମ୍ବା ଆପଣଙ୍କ ଡିଭାଇସ ଆପଣଙ୍କ ସଂସ୍ଥାର କିଛି ସୁରକ୍ଷା ନୀତିକୁ ପୂରଣ କରୁନାହିଁ। କଣ ସମାଧାନ କରାଯିବା ଆବଶ୍ୟକ ସେ ବିଷୟରେ ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହ ଯାଞ୍ଚ କରନ୍ତୁ।}other{ଏହି ଫାଇଲଗୁଡ଼ିକ ଆପଣଙ୍କ ସଂସ୍ଥାର କିଛି ସୁରକ୍ଷା ନୀତିକୁ ପୂରଣ କରୁନାହିଁ। କଣ ସମାଧାନ କରାଯିବା ଆବଶ୍ୟକ ସେ ବିଷୟରେ ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହ ଯାଞ୍ଚ କରନ୍ତୁ।}}</translation>
 <translation id="5736796278325406685">ଦୟାକରି ଏକ ବୈଧ ଉପଯୋଗକର୍ତ୍ତାନାମ ଲେଖନ୍ତୁ</translation>
 <translation id="5738093759615225354">ଆପଣ ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରେ ସାଇନ ଇନ କରିବା ପାଇଁ ଏହି ପାସକୀ ଆବଶ୍ୟକ କରନ୍ତି</translation>
-<translation id="5738329404678738022">ସିଙ୍କ କରି ଆପଣଙ୍କ ବୁକମାର୍କ ଏବଂ ଆହୁରି ଅନେକ କିଛିକୁ ଷ୍ଟୋର କରନ୍ତୁ</translation>
 <translation id="5739017626473506901">ଏକ ସ୍କୁଲ୍ ଆକାଉଣ୍ଟ ଯୋଗ କରିବାରେ <ph name="USER_NAME" />କୁ ସାହାଯ୍ୟ କରିବାକୁ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation>
 <translation id="5739235828260127894">ଯାଞ୍ଚକରଣ ପାଇଁ ଅପେକ୍ଷାରତ। <ph name="LINK_BEGIN" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ବହୁତ ବଡ଼</translation>
@@ -5254,7 +5250,6 @@
 <translation id="5757375109985023827">ପ୍ରିଭ୍ୟୁ କରିବାକୁ ଏକ ଟାବ ଚୟନ କରନ୍ତୁ</translation>
 <translation id="5758631781033351321">ଆପଣ ଏଠାରେ ଆପଣଙ୍କ ପଢ଼ିବା ତାଲିକା ପାଇବେ</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> ମାଧ୍ୟମରେ ପ୍ରିଣ୍ଟ କରିବା ପାଇଁ ଆପଣ ପଠାଇଥିବା ଡକ୍ୟୁମେଣ୍ଟଗୁଡ଼ିକୁ <ph name="APP_NAME" /> ପଢ଼ିପାରେ।</translation>
-<translation id="5760508342220592715">ଅଧିକ ସୁବିଧା ପାଇଁ ସାଇନ ଇନ କରନ୍ତୁ</translation>
 <translation id="5762787084360227629">Google ଆକାଉଣ୍ଟ ସମ୍ବନ୍ଧିତ ସୂଚନା ଲେଖନ୍ତୁ</translation>
 <translation id="5763751966069581670">କୌଣସି USB ଡିଭାଇସ୍ ମିଳିଲା ନାହିଁ</translation>
 <translation id="5764483294734785780">ଅଡିଓ ଏହି ଭାବେ &amp;ସଂଚୟ କରନ୍ତୁ...</translation>
@@ -7792,7 +7787,6 @@
 <translation id="8059417245945632445">&amp;ଡିଭାଇସ୍ ଯାଞ୍ଚ କରନ୍ତୁ</translation>
 <translation id="8059456211585183827">ସେଭ୍‍ କରିବା ପାଇଁ କୌଣସି ପ୍ରିଣ୍ଟର୍‍ ଉପଲବ୍ଧ ନାହିଁ।</translation>
 <translation id="8061091456562007989">ଏହାକୁ ପୂର୍ବ ଭଳି କରନ୍ତୁ</translation>
-<translation id="8061965471006133016">ଆପଣଙ୍କ ପାସୱାର୍ଡ ଏବଂ ଆହୁରି ଅନେକ କିଛି ପାଇଁ ଅତିରିକ୍ତ ସୁରକ୍ଷା</translation>
 <translation id="8061970399284390013">ବନାନ ଓ ବ୍ୟାକରଣ ଯାଞ୍ଚ</translation>
 <translation id="8061991877177392872">ଏପରି ଜଣାପଡ଼ୁଛି ଯେ ଆପଣ ପୂର୍ବରୁ ଅନ୍ୟ ଏକ ଡିଭାଇସରେ ଆପଣଙ୍କର Assistant ସାହାଯ୍ୟରେ Voice Match ସେଟ୍ ଅପ୍ କରିଛନ୍ତି। ଏହି ଡିଭାଇସରେ ଏକ ଭଏସ୍ ମଡେଲ୍ ତିଆରି କରିବାକୁ ଏହି ପୂର୍ବବର୍ତ୍ତୀ ରେକର୍ଡିଂଗୁଡ଼ିକୁ ବ୍ୟବହାର କରାଯାଇଛି।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{କାଗଜର 1ଟି ସିଟ୍}other{କାଗଜର {COUNT}ଟି ସିଟ୍}}</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index cbd3468..0c7cf57 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -4457,7 +4457,6 @@
 <translation id="4977942889532008999">ਪਹੁੰਚ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="4980805016576257426">ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਵਿੱਚ ਮਾਲਵੇਅਰ ਸ਼ਾਮਲ ਹਨ।</translation>
 <translation id="4981449534399733132">ਤੁਹਾਡੇ ਸਾਰੇ ਸਿੰਕ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਅਤੇ ਤੁਹਾਡੇ 'Google ਖਾਤੇ' ਵਿੱਚੋਂ ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟਾ ਕਲੀਅਰ ਕਰਨ ਲਈ, <ph name="BEGIN_LINK" />ਸਾਈਨ-ਇਨ ਕਰੋ<ph name="END_LINK" />।</translation>
-<translation id="4982111327868342436">ਕਿਸੇ ਵੀ ਡੀਵਾਈਸ 'ਤੇ ਉੱਥੋਂ ਹੀ ਸ਼ੁਰੂ ਕਰੋ ਜਿੱਥੇ ਤੁਸੀਂ ਛੱਡਿਆ ਸੀ</translation>
 <translation id="4986706507552097681">ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਕਿਸੇ ਵੀ ਵੇਲੇ ਇਹ ਚੁਣ ਸਕਦੇ ਹੋ ਕਿ ਕੀ ਸਿੰਕ ਕਰਨਾ ਹੈ। Google ਤੁਹਾਡੇ ਇਤਿਹਾਸ ਦੇ ਆਧਾਰ 'ਤੇ Search ਅਤੇ ਹੋਰ ਸੇਵਾਵਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾ ਸਕਦਾ ਹੈ।</translation>
 <translation id="4986728572522335985">ਇੰਝ ਕਰਨ ਨਾਲ ਸੁਰੱਖਿਆ ਕੁੰਜੀ 'ਤੇ ਸਟੋਰ ਕੀਤੇ ਇਸਦੇ ਪਿੰਨ ਸਮੇਤ ਸਾਰਾ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ</translation>
 <translation id="4988526792673242964">ਸਫ਼ੇ</translation>
@@ -4574,7 +4573,6 @@
 <translation id="5097349930204431044">ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੀਆਂ ਜਾਣ ਵਾਲੀਆਂ ਸਾਈਟਾਂ ਤੁਹਾਡੀ ਪਸੰਦ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਫਿਰ ਤੁਹਾਡੇ ਵੱਲੋਂ ਬ੍ਰਾਊਜ਼ ਕਰਨਾ ਜਾਰੀ ਰੱਖਣ 'ਤੇ ਵਿਗਿਆਪਨ ਸੰਬੰਧੀ ਸੁਝਾਅ ਦਿੰਦੀਆਂ ਹਨ</translation>
 <translation id="5097649414558628673">ਟੂਲ: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ਕਰਸਰ ਦੇ ਰੁਕਣ 'ਤੇ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ</translation>
-<translation id="5101683448725092498">ਆਪਣੀ ਸਮੱਗਰੀ ਦਾ ਬੈਕਅੱਪ ਲਓ</translation>
 <translation id="5101839224773798795">ਕਰਸਰ ਦੇ ਰੁਕਣ 'ਤੇ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ</translation>
 <translation id="5106350808162641062">ਹਟਾਓ</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> ਦੀ ਨਿਗਰਾਨੀ Family Link ਵੱਲੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਤੁਸੀਂ ਮਾਪਿਆਂ ਦੀ ਨਿਗਰਾਨੀ ਨਾਲ ਸਕੂਲ ਦੇ ਸਰੋਤਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਸਕੂਲੀ ਖਾਤੇ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ।</translation>
@@ -5140,7 +5138,6 @@
 <translation id="5623842676595125836">ਲੌਗ</translation>
 <translation id="5624120631404540903">ਪਾਸਵਰਡ ਵਿਵਸਥਿਤ ਕਰੋ</translation>
 <translation id="5625225435499354052">Google Pay ਵਿੱਚ ਸੰਪਾਦਨ ਕਰੋ</translation>
-<translation id="5625631605902707678">ਸਾਰੇ ਡੀਵਾਈਸਾਂ 'ਤੇ</translation>
 <translation id="5626134646977739690">ਨਾਮ:</translation>
 <translation id="5627086634964711283">ਇਹ ਇਸ ਨੂੰ ਵੀ ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ ਹੋਮ ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰਦੇ ਹੋ ਤਾਂ ਕਿਹੜਾ ਪੰਨਾ ਦਿਖਾਇਆ ਜਾਵੇ।</translation>
 <translation id="5627676517703583263">Chrome ਦੇ ਨਾਲ ਸਮਾਰਟ ਬ੍ਰਾਊਜ਼ ਕਰੋ</translation>
@@ -5252,7 +5249,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ਇਹ ਡਾਟਾ ਜਾਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਤੁਹਾਡੀ ਸੰਸਥਾ ਦੀਆਂ ਕੁਝ ਸੁਰੱਖਿਆ ਨੀਤੀਆਂ ਦਾ ਪਾਲਣ ਨਹੀਂ ਕਰਦਾ। ਇਹ ਦੇਖਣ ਲਈ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਗੱਲ ਕਰੋ ਕਿ ਕੀ ਠੀਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।}=1{ਇਹ ਫ਼ਾਈਲ ਜਾਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਤੁਹਾਡੀ ਸੰਸਥਾ ਦੀਆਂ ਕੁਝ ਸੁਰੱਖਿਆ ਨੀਤੀਆਂ ਦਾ ਪਾਲਣ ਨਹੀਂ ਕਰਦਾ। ਇਹ ਦੇਖਣ ਲਈ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਗੱਲ ਕਰੋ ਕਿ ਕੀ ਠੀਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।}other{ਇਹ ਫ਼ਾਈਲਾਂ ਤੁਹਾਡੀ ਸੰਸਥਾ ਦੀਆਂ ਕੁਝ ਸੁਰੱਖਿਆ ਨੀਤੀਆਂ ਦਾ ਪਾਲਣ ਨਹੀਂ ਕਰਦੀਆਂ। ਇਹ ਦੇਖਣ ਲਈ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਗੱਲ ਕਰੋ ਕਿ ਕੀ ਠੀਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।}}</translation>
 <translation id="5736796278325406685">ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਵੈਧ ਵਰਤੋਂਕਾਰ ਨਾਮ ਦਾਖਲ ਕਰੋ</translation>
 <translation id="5738093759615225354">ਤੁਹਾਨੂੰ ਆਪਣੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰਨ ਲਈ ਇਸ ਪਾਸਕੀ ਦੀ ਲੋੜ ਹੈ</translation>
-<translation id="5738329404678738022">ਸਿੰਕ ਨਾਲ ਆਪਣੇ ਬੁੱਕਮਾਰਕ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਸਟੋਰ ਕਰੋ</translation>
 <translation id="5739017626473506901">ਸਕੂਲੀ ਖਾਤਾ ਸ਼ਾਮਲ ਕਰਨ ਵਿੱਚ <ph name="USER_NAME" /> ਦੀ ਮਦਦ ਕਰਨ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
 <translation id="5739235828260127894">ਪੁਸ਼ਟੀਕਰਨ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ। <ph name="LINK_BEGIN" />ਹੋਰ ਜਾਣੋ<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ਬਹੁਤ ਵੱਡਾ</translation>
@@ -5274,7 +5270,6 @@
 <translation id="5757375109985023827">ਪੂਰਵ-ਝਲਕ ਦੇਖਣ ਲਈ ਕੋਈ ਟੈਬ ਚੁਣੋ</translation>
 <translation id="5758631781033351321">ਤੁਹਾਨੂੰ ਆਪਣੀ ਪੜ੍ਹਨ-ਸੂਚੀ ਇੱਥੇ ਮਿਲੇਗੀ</translation>
 <translation id="5759728514498647443">ਜੋ ਦਸਤਾਵੇਜ਼ ਤੁਸੀਂ ਪ੍ਰਿੰਟ ਕਰਨ ਲਈ <ph name="APP_NAME" /> ਰਾਹੀਂ ਭੇਜਦੇ ਹੋ, ਉਹ <ph name="APP_NAME" /> ਵੱਲੋਂ ਪੜ੍ਹੇ ਜਾ ਸਕਦੇ ਹਨ।</translation>
-<translation id="5760508342220592715">ਹੋਰ ਲਾਭਾਂ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
 <translation id="5762787084360227629">Google ਖਾਤੇ ਸੰਬੰਧੀ ਜਾਣਕਾਰੀ ਦਾਖਲ ਕਰੋ</translation>
 <translation id="5763751966069581670">ਕੋਈ USB ਡੀਵਾਈਸਾਂ ਨਹੀਂ ਮਿਲੀਆਂ</translation>
 <translation id="5764483294734785780">ਇਸਦੇ ਤੌਰ 'ਤੇ ਆਡੀਓ ਰੱ&amp;ਖਿਅਤ ਕਰੋ...</translation>
@@ -7814,7 +7809,6 @@
 <translation id="8059417245945632445">&amp;ਡਿਵਾਈਸਾਂ ਦੀ ਜਾਂਚ ਕਰੋ</translation>
 <translation id="8059456211585183827">ਰੱਖਿਅਤ ਕਰਨ ਲਈ ਕੋਈ ਪ੍ਰਿੰਟਰ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।</translation>
 <translation id="8061091456562007989">ਇਸਨੂੰ ਵਾਪਸ ਬਦਲੋ</translation>
-<translation id="8061965471006133016">ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਲਈ ਵਾਧੂ ਸੁਰੱਖਿਆ</translation>
 <translation id="8061970399284390013">ਸ਼ਬਦ-ਜੋੜ ਅਤੇ ਵਿਆਕਰਨ ਜਾਂਚ</translation>
 <translation id="8061991877177392872">ਇੰਝ ਲੱਗਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ 'ਤੇ ਆਪਣੀ Assistant ਨਾਲ ਪਹਿਲਾਂ ਹੀ Voice Match ਦਾ ਸੈੱਟਅੱਪ ਕਰ ਲਿਆ ਹੈ। ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਇਹਨਾਂ ਪਿਛਲੀਆਂ ਰਿਕਾਰਡਿੰਗਾਂ ਨੂੰ ਅਵਾਜ਼ੀ ਮਾਡਲ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਗਿਆ ਸੀ।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 ਕਾਗਜ਼ ਦੀ ਸ਼ੀਟ}one{{COUNT} ਕਾਗਜ਼ ਦੀ ਸ਼ੀਟ}other{{COUNT} ਕਾਗਜ਼ ਦੀਆਂ ਸ਼ੀਟਾਂ}}</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 130e163..a72cf05 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -2029,7 +2029,7 @@
 <translation id="2775858145769350417">{NUM_APPS,plural, =1{Usuń 1 nieobsługiwaną aplikację}few{Usuń # nieobsługiwane aplikacje}many{Usuń # nieobsługiwanych aplikacji}other{Usuń # nieobsługiwanej aplikacji}}</translation>
 <translation id="2776560192867872731">Zmień nazwę urządzenia <ph name="DEVICE_NAME" /></translation>
 <translation id="2777251078198759550">Usuń ten kontener</translation>
-<translation id="2777525873368474674">Wklej link do zdjęcia</translation>
+<translation id="2777525873368474674">Wklej link do obrazu</translation>
 <translation id="2778471504622896352">Dodaj aplikacje zdalne do Menu z aplikacjami w ChromeOS</translation>
 <translation id="2781120507965857989">Włącz synchronizację, aby mieć dostęp do zakładek, haseł, historii i innych danych na tym urządzeniu i na pozostałych zsynchronizowanych urządzeniach. Google może korzystać z Twojej historii, żeby personalizować wyniki wyszukiwania i działanie innych usług Google.</translation>
 <translation id="2781692009645368755">Google Pay</translation>
@@ -4433,7 +4433,6 @@
 <translation id="4977942889532008999">Potwierdź dostęp</translation>
 <translation id="4980805016576257426">To rozszerzenie zawiera złośliwe oprogramowanie.</translation>
 <translation id="4981449534399733132">Aby wyczyścić dane przeglądania ze wszystkich zsynchronizowanych urządzeń i z konta Google, <ph name="BEGIN_LINK" />zaloguj się<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Wznów od tego samego miejsca na dowolnym urządzeniu</translation>
 <translation id="4986706507552097681">W ustawieniach możesz wybrać, co chcesz synchronizować. Google może korzystać z Twojej historii, aby dostosowywać działanie wyszukiwarki i innych usług.</translation>
 <translation id="4986728572522335985">Spowoduje to usunięcie z klucza bezpieczeństwa wszystkich danych, w tym kodu PIN</translation>
 <translation id="4988526792673242964">Strony</translation>
@@ -4550,7 +4549,6 @@
 <translation id="5097349930204431044">Odwiedzane witryny mogą określać, czym się interesujesz, a potem sugerować reklamy w trakcie przeglądania</translation>
 <translation id="5097649414558628673">Narzędzie: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Klikaj automatycznie, kiedy kursor się zatrzymuje</translation>
-<translation id="5101683448725092498">Utwórz kopię zapasową swoich danych</translation>
 <translation id="5101839224773798795">Automatyczne kliknięcie po zatrzymaniu kursora</translation>
 <translation id="5106350808162641062">Usuń</translation>
 <translation id="510695978163689362">Użytkownik <ph name="USER_EMAIL" /> jest nadzorowany przez Family Link. Możesz dodać konta szkolne umożliwiające dostęp do zasobów szkolnych pod nadzorem rodzicielskim.</translation>
@@ -5115,7 +5113,6 @@
 <translation id="5623842676595125836">Dziennik</translation>
 <translation id="5624120631404540903">Zarządzaj hasłami</translation>
 <translation id="5625225435499354052">Edytuj w Google Pay</translation>
-<translation id="5625631605902707678">Na różnych urządzeniach</translation>
 <translation id="5626134646977739690">Nazwa:</translation>
 <translation id="5627086634964711283">Kontroluje także to, jaka strona wyświetla się po kliknięciu przycisku strony głównej.</translation>
 <translation id="5627676517703583263">Przeglądaj inteligentnie z Chrome</translation>
@@ -5227,7 +5224,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Te dane lub Twoje urządzenie nie są zgodne z niektórymi zasadami bezpieczeństwa obowiązującymi w Twojej organizacji. Zapytaj administratora, co trzeba poprawić.}=1{Ten plik lub Twoje urządzenie nie są zgodne z niektórymi zasadami bezpieczeństwa obowiązującymi w Twojej organizacji. Zapytaj administratora, co trzeba poprawić.}few{Te pliki nie są zgodne z niektórymi zasadami bezpieczeństwa obowiązującymi w Twojej organizacji. Zapytaj administratora, co trzeba poprawić.}many{Te pliki nie są zgodne z niektórymi zasadami bezpieczeństwa obowiązującymi w Twojej organizacji. Zapytaj administratora, co trzeba poprawić.}other{Te pliki nie są zgodne z niektórymi zasadami bezpieczeństwa obowiązującymi w Twojej organizacji. Zapytaj administratora, co trzeba poprawić.}}</translation>
 <translation id="5736796278325406685">Wpisz prawidłową nazwę użytkownika</translation>
 <translation id="5738093759615225354">Ten klucz jest potrzebny do zalogowania się na komputerze</translation>
-<translation id="5738329404678738022">Zapisuj m.in. swoje zakładki dzięki synchronizacji</translation>
 <translation id="5739017626473506901">Zaloguj się, by pomóc użytkownikowi <ph name="USER_NAME" /> w dodawaniu konta szkolnego</translation>
 <translation id="5739235828260127894">Czekam na weryfikację. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Bardzo duży</translation>
@@ -5249,7 +5245,6 @@
 <translation id="5757375109985023827">Wybierz kartę, aby zobaczyć jej podgląd</translation>
 <translation id="5758631781033351321">Znajdziesz tu swoją listę Do przeczytania</translation>
 <translation id="5759728514498647443">Dokumenty wysłane do drukowania z aplikacji <ph name="APP_NAME" /> można odczytać w aplikacji <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Zaloguj się, aby otrzymać dodatkowe korzyści</translation>
 <translation id="5762787084360227629">Wpisz informacje o koncie Google</translation>
 <translation id="5763751966069581670">Nie znaleziono urządzeń USB</translation>
 <translation id="5764483294734785780">Za&amp;pisz element audio jako...</translation>
@@ -7794,7 +7789,6 @@
 <translation id="8059417245945632445">&amp;Sprawdź urządzenia</translation>
 <translation id="8059456211585183827">Nie ma dostępnych drukarek do zapisania.</translation>
 <translation id="8061091456562007989">Cofnij zmiany</translation>
-<translation id="8061965471006133016">Dodatkowa ochrona haseł i inne funkcje</translation>
 <translation id="8061970399284390013">Sprawdzanie pisowni i gramatyki</translation>
 <translation id="8061991877177392872">Wygląda na to, że Asystent zna już Twój głos z innego urządzenia, na którym masz ustawioną funkcję Voice Match. Zapisane tam nagrania zostały użyte do utworzenia modelu głosu na tym urządzeniu.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 kartka}few{{COUNT} kartki}many{{COUNT} kartek}other{{COUNT} kartki}}</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 061c62af..adb27d6 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Protocolo de transporte de hipertexto seguro (HTTPS)</translation>
 <translation id="1059944192885972544"><ph name="NUM" /> guias encontradas para "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="1060292118287751956">Determina a frequência com que a tela é atualizada</translation>
+<translation id="1060570945511946595">Gerenciar tíquetes</translation>
 <translation id="1061130374843955397">Este é seu <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Criar um código QR para este link</translation>
 <translation id="1061904396131502319">Está quase na hora de fazer uma pausa</translation>
@@ -1127,6 +1128,7 @@
 <translation id="1975841812214822307">Remover...</translation>
 <translation id="1976150099241323601">Faça login no dispositivo seguro</translation>
 <translation id="1977965994116744507">Aproxime o smartphone para desbloquear o <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Remover Bruschetta</translation>
 <translation id="1979095679518582070">A desativação desse recurso não afeta a capacidade do dispositivo de enviar as informações necessárias para serviços básicos, como atualizações do sistema e segurança.</translation>
 <translation id="1979280758666859181">Você está mudando para um canal com uma versão mais antiga do <ph name="PRODUCT_NAME" />. A mudança de canal será aplicada quando a versão do canal corresponder à versão instalada atualmente no dispositivo.</translation>
 <translation id="197989455406964291">O KDC não é compatível com esse tipo de criptografia</translation>
@@ -1933,6 +1935,7 @@
 <translation id="2672142220933875349">Arquivo crx defeituoso, a descompactação falhou.</translation>
 <translation id="2673135533890720193">Ler seu histórico de navegação</translation>
 <translation id="2674764818721168631">Desativado</translation>
+<translation id="2675570801872027281">Erro ao remover Bruschetta. Tente de novo.</translation>
 <translation id="2676492189600898281">Enviar feedback sobre o preenchimento automático</translation>
 <translation id="2678063897982469759">Reativar</translation>
 <translation id="2678100101831051676">Falha na transmissão</translation>
@@ -2932,6 +2935,7 @@
 <translation id="3593965109698325041">Restrições de nome do certificado</translation>
 <translation id="3596012367874587041">Configurações do app</translation>
 <translation id="3596414637720633074">Bloquear cookies de terceiros na navegação anônima</translation>
+<translation id="3598010454707842106">Clique em "Personalizar o Chrome".</translation>
 <translation id="3599221874935822507">Em relevo</translation>
 <translation id="3600051066689725006">Informações sobre a solicitação da Web</translation>
 <translation id="360180734785106144">Oferecer novos recursos à medida que sejam disponibilizados</translation>
@@ -3930,6 +3934,7 @@
 <translation id="4497145443434063861">PC e Chromecast em diferentes redes Wi-Fi (por exemplo, 2,4 GHz
     e 5 GHz)</translation>
 <translation id="4500114933761911433">O plug-in <ph name="PLUGIN_NAME" /> falhou</translation>
+<translation id="4500647907053779331">&amp;Traduzir seleção para o <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Ícone de ponto de exclamação</translation>
 <translation id="4501530680793980440">Confirmar remoção</translation>
 <translation id="4502423230170890588">Remover deste dispositivo</translation>
@@ -3960,6 +3965,7 @@
 <translation id="4522890784888918985">Contas de crianças não são compatíveis</translation>
 <translation id="4523876148417776526">Listas de sites XML ainda não foram buscadas.</translation>
 <translation id="4524832533047962394">O modo de inscrição fornecido não é compatível com esta versão do sistema operacional. Verifique se você está executando a versão mais recente.</translation>
+<translation id="4526051299161934899">Grupos de guias salvos ocultos</translation>
 <translation id="4526853756266614740">Escolha uma imagem para aplicar o tema instantaneamente</translation>
 <translation id="452750746583162491">Revisar dados sincronizados</translation>
 <translation id="4527929807707405172">Ativar a rolagem reversa. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
@@ -4459,7 +4465,6 @@
 <translation id="4977942889532008999">Confirmar acesso</translation>
 <translation id="4980805016576257426">Esta extensão contém malware.</translation>
 <translation id="4981449534399733132">Para limpar os dados de navegação de todos os dispositivos sincronizados e da sua Conta do Google, <ph name="BEGIN_LINK" />faça login<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Continue de onde parou em qualquer dispositivo</translation>
 <translation id="4986706507552097681">Nas configurações, é possível escolher a qualquer momento o que é sincronizado. O Google pode personalizar a Pesquisa e outros serviços com base no seu histórico.</translation>
 <translation id="4986728572522335985">Essa ação exclui todos os dados na chave de segurança, inclusive o PIN dela</translation>
 <translation id="4988526792673242964">Páginas</translation>
@@ -4576,7 +4581,6 @@
 <translation id="5097349930204431044">Os sites que você visita podem determinar do que você gosta e sugerir anúncios enquanto continua a navegar</translation>
 <translation id="5097649414558628673">Ferramenta: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Clicar automaticamente quando o cursor parar</translation>
-<translation id="5101683448725092498">Faça backup dos seus dados</translation>
 <translation id="5101839224773798795">Clicar automaticamente quando o cursor parar</translation>
 <translation id="5106350808162641062">Remover</translation>
 <translation id="510695978163689362">A conta <ph name="USER_EMAIL" /> é supervisionada pelo Family Link. Você pode adicionar contas escolares para acessar os recursos da escola com supervisão da família.</translation>
@@ -5143,7 +5147,6 @@
 <translation id="5623842676595125836">Registro</translation>
 <translation id="5624120631404540903">Gerenciar senhas</translation>
 <translation id="5625225435499354052">Editar no Google Pay</translation>
-<translation id="5625631605902707678">Em vários dispositivos</translation>
 <translation id="5626134646977739690">Nome:</translation>
 <translation id="5627086634964711283">Controla também qual página deve ser exibida quando você clica no botão "Página inicial".</translation>
 <translation id="5627676517703583263">Navegue com inteligência com o Chrome</translation>
@@ -5255,7 +5258,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Esses dados ou o dispositivo não atendem a algumas políticas de segurança da sua organização. Verifique com o administrador o que precisa ser corrigido.}=1{Esse arquivo ou o dispositivo não atendem a algumas políticas de segurança da sua organização. Verifique com o administrador o que precisa ser corrigido.}one{Esse arquivo não atende a algumas políticas de segurança da sua organização. Verifique com o administrador o que precisa ser corrigido.}other{Esses arquivos não atendem a algumas políticas de segurança da sua organização. Verifique com o administrador o que precisa ser corrigido.}}</translation>
 <translation id="5736796278325406685">Insira um nome de usuário válido</translation>
 <translation id="5738093759615225354">Essa senha de acesso é necessária para fazer login no seu computador</translation>
-<translation id="5738329404678738022">Armazene seus favoritos e muito mais com a sincronização</translation>
 <translation id="5739017626473506901">Faça login para ajudar <ph name="USER_NAME" /> a adicionar uma conta escolar</translation>
 <translation id="5739235828260127894">Aguardando verificação. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Muito grande</translation>
@@ -5277,7 +5279,6 @@
 <translation id="5757375109985023827">Selecione uma guia para visualizar</translation>
 <translation id="5758631781033351321">Você encontrará sua lista de leituras aqui</translation>
 <translation id="5759728514498647443">Os documentos enviados para impressão pelo <ph name="APP_NAME" /> podem ser lidos pelo <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Faça login para ter mais benefícios</translation>
 <translation id="5762787084360227629">Inserir informações da Conta do Google</translation>
 <translation id="5763751966069581670">Nenhum dispositivo USB encontrado</translation>
 <translation id="5764483294734785780">Sal&amp;var áudio como...</translation>
@@ -5748,6 +5749,7 @@
 <translation id="617213288191670920">Nenhum idioma adicionado</translation>
 <translation id="6173623053897475761">Digite seu PIN novamente</translation>
 <translation id="6175314957787328458">GUID do domínio da Microsoft</translation>
+<translation id="6177412385419165772">Removendo...</translation>
 <translation id="6178664161104547336">Selecione um certificado</translation>
 <translation id="6178682841350631965">Seus dados de login foram atualizados</translation>
 <translation id="6180510783007738939">Ferramenta de linha</translation>
@@ -6226,6 +6228,7 @@
 <translation id="6619801788773578757">Adicionar aplicativo em quiosque</translation>
 <translation id="6619990499523117484">Confirme seu PIN</translation>
 <translation id="6620254580880484313">Nome do contêiner</translation>
+<translation id="6620927550847360014">Remover Bruschetta do seu <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Para enviar esta guia a outro dispositivo, faça login no Chrome nos dois aparelhos</translation>
 <translation id="6622980291894852883">Continuar bloqueando imagens</translation>
 <translation id="6624036901798307345">No modo tablet, toque no botão da barra de ferramentas do contador de guias para abrir a nova barra de guias com miniaturas de cada uma.</translation>
@@ -6443,6 +6446,7 @@
 <translation id="6818547713623251698">Ver os arquivos de mídia, fotos, notificações e apps do smartphone</translation>
 <translation id="6818802132960437751">Proteção antivírus integrada</translation>
 <translation id="6818920801736417483">Salvar senhas?</translation>
+<translation id="6820079682647046800">Falha na autenticação Kerberos</translation>
 <translation id="6823174134746916417">Tocar para clicar no touchpad</translation>
 <translation id="6824564591481349393">Copiar &amp;endereço de e-mail</translation>
 <translation id="6824584962142919697">&amp;Inspecionar elementos</translation>
@@ -6597,6 +6601,7 @@
 <translation id="6955698182324067397">Você está ativando recursos de depuração do ChromeOS que vão definir sshd daemon e permitir a inicialização a partir de drives USB.</translation>
 <translation id="6955893174999506273">Atribuir mais um interruptor</translation>
 <translation id="6957044667612803194">Esta chave de segurança não é compatível com PINs</translation>
+<translation id="6960133692707095572">Visita sem tíquete</translation>
 <translation id="6960507406838246615">É necessário atualizar o Linux</translation>
 <translation id="6960648667961844909">Não foi possível fazer o download dos arquivos de fala em <ph name="LANGUAGE" />. O download será feito mais tarde. A fala será enviada ao Google para processamento até que o download seja concluído.</translation>
 <translation id="696103774840402661">Todos os arquivos e dados locais para todos os usuários neste <ph name="DEVICE_TYPE" /> foram excluídos permanentemente.</translation>
@@ -7818,7 +7823,6 @@
 <translation id="8059417245945632445">&amp;Inspecionar dispositivos</translation>
 <translation id="8059456211585183827">Não há impressoras disponíveis para salvar.</translation>
 <translation id="8061091456562007989">Mudar para configuração anterior</translation>
-<translation id="8061965471006133016">Proteção extra para suas senhas e muito mais</translation>
 <translation id="8061970399284390013">Verificação ortográfica e gramatical</translation>
 <translation id="8061991877177392872">Parece que você já configurou o Voice Match com o Google Assistente em outro dispositivo. As gravações anteriores foram usadas para criar um modelo de voz aqui.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 folha de papel}one{{COUNT} folha de papel}other{{COUNT} folhas de papel}}</translation>
@@ -8059,6 +8063,7 @@
 <translation id="8272443605911821513">Gerencie suas extensões clicando em "Extensões" no menu "Mais ferramentas".</translation>
 <translation id="8272786333453048167">Permitir novamente</translation>
 <translation id="8273905181216423293">Fazer download agora</translation>
+<translation id="827488840488530039">A página que você está tentando acessar não conseguiu verificar seus tíquetes do Kerberos.</translation>
 <translation id="8274921654076766238">A lupa segue o foco do teclado</translation>
 <translation id="8274924778568117936">Não desligue ou feche seu <ph name="DEVICE_TYPE" /> até que a atualização termine. O <ph name="DEVICE_TYPE" /> será reiniciado depois que a instalação for concluída.</translation>
 <translation id="8275038454117074363">Importar</translation>
@@ -8505,6 +8510,7 @@
 <translation id="869884720829132584">Menu Aplicativos</translation>
 <translation id="869891660844655955">Validade</translation>
 <translation id="8699188901396699995">PPD para <ph name="PRINTER_NAME" /></translation>
+<translation id="8702278591052316269">Menu contendo grupos de guias salvos ocultos</translation>
 <translation id="8702825062053163569">Seu <ph name="DEVICE_TYPE" /> foi bloqueado.</translation>
 <translation id="8703346390800944767">Pular anúncio</translation>
 <translation id="8705331520020532516">Número de série</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 0a6ee5b..a352e5d 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -78,7 +78,7 @@
 <translation id="1067661089446014701">Para maior segurança, pode encriptar as palavras-passe no seu dispositivo antes de serem guardadas na sua Conta Google</translation>
 <translation id="1067922213147265141">Outros serviços Google</translation>
 <translation id="106814709658156573">Para configurar a impressão digital, peça à criança para tocar no sensor de impressões digitais no canto inferior esquerdo do teclado. Os dados de impressões digitais da criança são armazenados em segurança e nunca saem do <ph name="DEVICE_TYPE" />.</translation>
-<translation id="1069104208554708737">Esta chave de acesso só é guardada neste dispositivo</translation>
+<translation id="1069104208554708737">Esta token de acesso só é guardada neste dispositivo</translation>
 <translation id="1069355737714877171">Remover perfil do eSIM com o nome <ph name="PROFILE_NAME" /></translation>
 <translation id="1069814191880976658">Escolher um ecrã diferente</translation>
 <translation id="1070377999570795893">Outro programa no computador adicionou uma extensão que pode alterar o funcionamento do Chrome.
@@ -237,7 +237,7 @@
 <translation id="120069043972472860">Impossível de visualizar</translation>
 <translation id="1201402288615127009">Seguinte</translation>
 <translation id="1201564082781748151">É possível restaurar os dados locais caso se esqueça da palavra-passe</translation>
-<translation id="1202116106683864634">Quer mesmo eliminar esta chave de acesso?</translation>
+<translation id="1202116106683864634">Quer mesmo eliminar esta token de acesso?</translation>
 <translation id="1202596434010270079">A aplicação Quiosque foi atualizada. Remova a pen USB.</translation>
 <translation id="120368089816228251">Nota musical</translation>
 <translation id="1203942045716040624">Trabalhador partilhado: <ph name="SCRIPT_URL" /></translation>
@@ -261,7 +261,7 @@
 <translation id="1223484782328004593">A app <ph name="APP_NAME" /> requer uma licença</translation>
 <translation id="1223853788495130632">O gestor recomenda um valor específico para esta definição.</translation>
 <translation id="1225177025209879837">A processar o pedido...</translation>
-<translation id="1227660082540388410">Edite a chave de acesso</translation>
+<translation id="1227660082540388410">Edite a token de acesso</translation>
 <translation id="1227993798763400520">Falha ao transmitir o conteúdo. Tente novamente.</translation>
 <translation id="1230417814058465809">A proteção padrão está ativada. Para desfrutar de ainda mais segurança, utilize a proteção melhorada.</translation>
 <translation id="1231733316453485619">Ativar a sincronização?</translation>
@@ -346,7 +346,7 @@
 <translation id="1306606229401759371">Alterar definições</translation>
 <translation id="1307165550267142340">O PIN foi criado.</translation>
 <translation id="1307431692088049276">Não voltar a perguntar</translation>
-<translation id="1307559529304613120">Ups! O sistema não conseguiu guardar a chave de acesso da API de longo prazo para este dispositivo.</translation>
+<translation id="1307559529304613120">Ups! O sistema não conseguiu guardar a token de acesso da API de longo prazo para este dispositivo.</translation>
 <translation id="131112695174432497">Os dados que afetam a personalização de anúncios são apagados</translation>
 <translation id="1312811472299082263">Crie a partir de um ficheiro de cópia de segurança do Crostini ou de um guia interativo do Ansible</translation>
 <translation id="1313264149528821971">Autorizações <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> e <ph name="PERMISSION_3" /> removidas</translation>
@@ -363,7 +363,7 @@
 <translation id="1324106254079708331">Salvaguarda as Contas Google pessoais de qualquer pessoa em risco de ataques direcionados.</translation>
 <translation id="1327272175893960498">Permissões Kerberos</translation>
 <translation id="1327495825214193325">Para ativar a depuração do adb, tem de reiniciar este <ph name="DEVICE_TYPE" />. A desativação requer a reposição das definições de fábrica.</translation>
-<translation id="1327527584824210101">Use a sua chave de acesso</translation>
+<translation id="1327527584824210101">Use a sua token de acesso</translation>
 <translation id="1327794256477341646">As funcionalidades que precisam da sua localização não funcionam</translation>
 <translation id="1329466763986822896">Melhorar a privacidade desta zona Wi-Fi</translation>
 <translation id="1331977651797684645">Fui eu.</translation>
@@ -742,7 +742,7 @@
 <translation id="1643072738649235303">Assinatura X9.62 ECDSA com SHA-1</translation>
 <translation id="1643921258693943800">Para utilizar a funcionalidade Partilhar na proximidade, ative o Bluetooth e o Wi-Fi.</translation>
 <translation id="1644574205037202324">Histórico</translation>
-<translation id="1644852018355792105">Introduza a chave de acesso Bluetooth para o dispositivo <ph name="DEVICE" /></translation>
+<translation id="1644852018355792105">Introduza a token de acesso Bluetooth para o dispositivo <ph name="DEVICE" /></translation>
 <translation id="1645004815457365098">Fonte desconhecida</translation>
 <translation id="1645516838734033527">Para manter o seu <ph name="DEVICE_TYPE" /> protegido, o Smart Lock requer um bloqueio de ecrã no telemóvel.</translation>
 <translation id="1646982517418478057">Introduza uma palavra-passe para encriptar este certificado</translation>
@@ -813,7 +813,7 @@
 <translation id="1709106626015023981"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (nativa)</translation>
 <translation id="1709217939274742847">Escolha uma permissão para utilizar para a autenticação. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="1709762881904163296">Definições de rede</translation>
-<translation id="1709916727352927457">Elimine a chave de acesso</translation>
+<translation id="1709916727352927457">Elimine a token de acesso</translation>
 <translation id="1709972045049031556">Não é possível partilhar</translation>
 <translation id="1711935594505774770">Esta ação irá limpar todos os dados e cookies armazenados pelo grupo de sites <ph name="SITE_GROUP_NAME" />, por quaisquer sites associados a este e pelas respetivas apps instaladas.</translation>
 <translation id="1714644264617423774">Ativa as funcionalidades de acessibilidade para facilitar a utilização do dispositivo. <ph name="LINK_BEGIN" />Saber mais<ph name="LINK_END" /></translation>
@@ -1086,7 +1086,7 @@
 <translation id="1941995177877935582">Mostrar mapeamento de teclas</translation>
 <translation id="1942128823046546853">Ler e alterar todos os seus dados em todos os Websites</translation>
 <translation id="1944528062465413897">Código de sincronização de Bluetooth:</translation>
-<translation id="1944535645109964458">Nenhuma chave de acesso disponível</translation>
+<translation id="1944535645109964458">Nenhuma token de acesso disponível</translation>
 <translation id="1944921356641260203">Atualização encontrada</translation>
 <translation id="1947136734041527201">Permite-lhe iniciar sessão em Websites com a conta que tem num serviço de identidade</translation>
 <translation id="1949584741547056205">Respostas rápidas</translation>
@@ -1953,7 +1953,7 @@
 <translation id="2710101514844343743">Dados de utilização e diagnósticos</translation>
 <translation id="271033894570825754">Novo</translation>
 <translation id="2711073837061989559">Avaliações</translation>
-<translation id="2712207122921938368">Crie uma chave de acesso noutro dispositivo</translation>
+<translation id="2712207122921938368">Crie uma token de acesso noutro dispositivo</translation>
 <translation id="2713106313042589954">Desligar câmara</translation>
 <translation id="2713444072780614174">Branco</translation>
 <translation id="2714180132046334502">Fundo escuro</translation>
@@ -2074,7 +2074,7 @@
 <translation id="2801954693771979815">Tamanho do ecrã</translation>
 <translation id="2802557211515765772">Não existem impressoras geridas.</translation>
 <translation id="2803313416453193357">Abrir pasta</translation>
-<translation id="2803719750464280163">Confirme que <ph name="PASSKEY" /> é a chave de acesso apresentada no dispositivo Bluetooth <ph name="DEVICE" />.</translation>
+<translation id="2803719750464280163">Confirme que <ph name="PASSKEY" /> é a token de acesso apresentada no dispositivo Bluetooth <ph name="DEVICE" />.</translation>
 <translation id="2804043232879091219">Não foi possível abrir o navegador alternativo.</translation>
 <translation id="2804667941345577550">A sua sessão neste site será terminada, incluindo em separadores abertos.</translation>
 <translation id="2804680522274557040">A câmara está desativada</translation>
@@ -2483,7 +2483,7 @@
 <translation id="3182749001423093222">Verificação ortográfica</translation>
 <translation id="3183139917765991655">Importador de perfis</translation>
 <translation id="3183143381919926261">Redes de dados móveis</translation>
-<translation id="3183613134231754987">Esta chave de acesso só é guardada no Windows Hello. Permanece neste dispositivo após fechar todas as janelas de navegação anónima.</translation>
+<translation id="3183613134231754987">Esta token de acesso só é guardada no Windows Hello. Permanece neste dispositivo após fechar todas as janelas de navegação anónima.</translation>
 <translation id="3183944777708523606">Posicionamento do monitor</translation>
 <translation id="3184536091884214176">Configure ou efetue a gestão de impressoras CUPS. <ph name="LINK_BEGIN" />Saber mais<ph name="LINK_END" /></translation>
 <translation id="3185014249447200271">{NUM_APPS,plural, =1{Esta app está bloqueada}other{Estas apps estão bloqueadas}}</translation>
@@ -2990,7 +2990,7 @@
 <translation id="3654045516529121250">Ler definições de acessibilidade</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{Tem acesso permanente a um ficheiro.}other{Tem acesso permanente a # ficheiros.}}</translation>
 <translation id="3658871634334445293">Aceleração do TrackPoint</translation>
-<translation id="3659550105763988702">Use a sua chave de acesso para a app <ph name="APP_NAME" /></translation>
+<translation id="3659550105763988702">Use a sua token de acesso para a app <ph name="APP_NAME" /></translation>
 <translation id="3659929705630080526">Introduziu um código de acesso incorreto demasiadas vezes. Tente mais tarde</translation>
 <translation id="3660234220361471169">Não fidedigno</translation>
 <translation id="3664511988987167893">Ícone da extensão</translation>
@@ -3186,7 +3186,7 @@
     <ph name="BEGIN_PARAGRAPH2" />Pode iniciar ou parar a autorização destes relatórios a qualquer altura nas definições do dispositivo Chrome. Se for um administrador de domínio, pode alterar esta definição na consola do administrador.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="3819164369574292143">Aumente o zoom para aumentar o tamanho dos itens no ecrã. Use Pesquisa + Ctrl + M para ativar e desativar a lupa. Use Ctrl + Alt + teclas de seta para deslocar o ecrã com o zoom aumentado.</translation>
 <translation id="3819257035322786455">Cópia de segurança</translation>
-<translation id="3819261658055281761">O sistema não conseguiu guardar a chave de acesso da API de longo prazo para este dispositivo.</translation>
+<translation id="3819261658055281761">O sistema não conseguiu guardar a token de acesso da API de longo prazo para este dispositivo.</translation>
 <translation id="3819800052061700452">&amp;Ecrã inteiro</translation>
 <translation id="3820638253182943944">{MUTED_NOTIFICATIONS_COUNT,plural, =1{Mostrar}other{Mostrar tudo}}</translation>
 <translation id="3820749202859700794">SECG de curva elíptica secp521r1 (também denominada NIST P-521)</translation>
@@ -3280,7 +3280,7 @@
 <translation id="3898768766145818464">Reproduzir ou pausar vídeo</translation>
 <translation id="389901847090970821">Selecionar teclado</translation>
 <translation id="3900966090527141178">Exportar palavras-passe</translation>
-<translation id="3902789559055749153">Escolha como quer criar uma chave de acesso para a app <ph name="APP_NAME" /></translation>
+<translation id="3902789559055749153">Escolha como quer criar uma token de acesso para a app <ph name="APP_NAME" /></translation>
 <translation id="3903187154317825986">Teclado incorporado</translation>
 <translation id="3904326018476041253">Serviços de localização</translation>
 <translation id="3905761538810670789">Reparar aplicação</translation>
@@ -3621,7 +3621,7 @@
 <translation id="4217571870635786043">Ditado</translation>
 <translation id="4218081191298393750">Clique no ícone de altifalante para desativar o som deste separador</translation>
 <translation id="4220648711404560261">Ocorreu um erro durante a ativação.</translation>
-<translation id="4223845867739585293">Crie uma chave de acesso</translation>
+<translation id="4223845867739585293">Crie uma token de acesso</translation>
 <translation id="4225397296022057997">Em todos os sites</translation>
 <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Esta extensão não é permitida}other{Estas extensões não são permitidas}}</translation>
 <translation id="4231095370974836764">Instale apps e jogos do Google Play no dispositivo <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
@@ -4272,7 +4272,8 @@
 <translation id="4823484602432206655">Ler e alterar definições do utilizador e do dispositivo</translation>
 <translation id="4824037980212326045">Cópia de segurança e restauro do Linux</translation>
 <translation id="4824958205181053313">Pretende cancelar a sincronização?</translation>
-<translation id="4825532258163983651">Não é possível eliminar a chave de acesso</translation>
+<translation id="4825532258163983651">Não é possível eliminar a token de acesso</translation>
+<translation id="4827283332383516812">Elimine o cartão</translation>
 <translation id="4827675678516992122">Não foi possível ligar</translation>
 <translation id="4827784381479890589">Verificação ortográfica melhorada no navegador Chrome (o texto é enviado à Google para sugestões ortográficas)</translation>
 <translation id="4827904420700932487">Criar código QR para esta imagem</translation>
@@ -4448,7 +4449,6 @@
 <translation id="4977942889532008999">Confirmar acesso</translation>
 <translation id="4980805016576257426">Esta extensão contém um software malicioso.</translation>
 <translation id="4981449534399733132">Para limpar os dados de navegação de todos os seus dispositivos sincronizados e da sua Conta Google, <ph name="BEGIN_LINK" />inicie a sessão<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Retome a partir do ponto em que ficou em qualquer dispositivo</translation>
 <translation id="4986706507552097681">Pode sempre escolher o que quer sincronizar nas definições. A Google pode personalizar a Pesquisa e outros serviços com base no seu histórico.</translation>
 <translation id="4986728572522335985">Isto elimina todos os dados na chave de segurança, incluindo o respetivo PIN</translation>
 <translation id="4988526792673242964">Páginas </translation>
@@ -4565,7 +4565,6 @@
 <translation id="5097349930204431044">Os sites que visita podem determinar o que gosta e, de seguida, sugerir anúncios enquanto continua a navegar</translation>
 <translation id="5097649414558628673">Ferramenta: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Clicar automaticamente quando o cursor para</translation>
-<translation id="5101683448725092498">Faça uma cópia de segurança dos seus itens</translation>
 <translation id="5101839224773798795">Clicar automaticamente quando o cursor parar</translation>
 <translation id="5106350808162641062">Remover</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> é supervisionado pelo Family Link. Pode adicionar contas escolares para aceder aos recursos escolares com supervisão parental.</translation>
@@ -4717,7 +4716,7 @@
 <translation id="5252653240322147470">O PIN deve ter menos de <ph name="MAXIMUM" /> dígitos</translation>
 <translation id="5254368820972107711">Mostrar ficheiros a remover</translation>
 <translation id="52550593576409946">Não foi possível iniciar a app de quiosque.</translation>
-<translation id="5255726914791076208">Ao editar a chave de acesso, a sua conta do serviço <ph name="RP_ID" /> não é alterada</translation>
+<translation id="5255726914791076208">Ao editar a token de acesso, a sua conta do serviço <ph name="RP_ID" /> não é alterada</translation>
 <translation id="5255859108402770436">Iniciar sessão novamente</translation>
 <translation id="52566111838498928">A carregar tipos de letra…</translation>
 <translation id="5256861893479663409">Em todos os sites</translation>
@@ -4760,7 +4759,7 @@
 <translation id="5285635972691565180">Ecrã <ph name="DISPLAY_ID" /></translation>
 <translation id="5286194356314741248">A procurar</translation>
 <translation id="5287425679749926365">As suas contas</translation>
-<translation id="5288106344236929384">Mais ações, opções de chave de acesso para <ph name="USERNAME" /> em <ph name="DOMAIN" /></translation>
+<translation id="5288106344236929384">Mais ações, opções de token de acesso para <ph name="USERNAME" /> em <ph name="DOMAIN" /></translation>
 <translation id="5288678174502918605">Voltar a Abrir o S&amp;eparador Fechado</translation>
 <translation id="52895863590846877">A página não está em <ph name="LANGUAGE" />.</translation>
 <translation id="52912272896845572">O ficheiro de chave privada é inválido.</translation>
@@ -5132,7 +5131,6 @@
 <translation id="5623842676595125836">Registo</translation>
 <translation id="5624120631404540903">Gerir palavras-passe</translation>
 <translation id="5625225435499354052">Editar no Google Pay</translation>
-<translation id="5625631605902707678">Entre dispositivos</translation>
 <translation id="5626134646977739690">Nome:</translation>
 <translation id="5627086634964711283">Também controla a página apresentada quando clica no botão Página Inicial.</translation>
 <translation id="5627676517703583263">Navegue de forma mais inteligente com o Chrome</translation>
@@ -5243,8 +5241,7 @@
 <translation id="5734697361979786483">Adicionar partilha de ficheiros</translation>
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Estes dados ou o dispositivo não cumprem algumas das políticas de segurança da sua organização. Contacte o seu administrador para saber o que é preciso corrigir.}=1{Este ficheiro ou o seu dispositivo não cumpre algumas das políticas de segurança da sua organização. Contacte o seu administrador para saber o que é preciso corrigir.}other{Estes ficheiros não cumprem algumas das políticas de segurança da sua organização. Contacte o seu administrador para saber o que é preciso corrigir.}}</translation>
 <translation id="5736796278325406685">Introduza um nome de utilizador válido</translation>
-<translation id="5738093759615225354">Precisa desta chave de acesso para iniciar sessão no seu computador</translation>
-<translation id="5738329404678738022">Armazene os seus marcadores e muito mais com a sincronização</translation>
+<translation id="5738093759615225354">Precisa desta token de acesso para iniciar sessão no seu computador</translation>
 <translation id="5739017626473506901">Inicie sessão para ajudar <ph name="USER_NAME" /> a adicionar uma conta escolar.</translation>
 <translation id="5739235828260127894">A aguardar a validação. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Muito grande</translation>
@@ -5266,7 +5263,6 @@
 <translation id="5757375109985023827">Selecione um separador para pré-visualizar</translation>
 <translation id="5758631781033351321">A sua lista de leitura será apresentada aqui</translation>
 <translation id="5759728514498647443">Os documentos enviados para impressão através de <ph name="APP_NAME" /> podem ser lidos por <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Inicie sessão para obter mais vantagens</translation>
 <translation id="5762787084360227629">Introduzir informações da Conta Google</translation>
 <translation id="5763751966069581670">Não foram encontrados dispositivos USB</translation>
 <translation id="5764483294734785780">Gua&amp;rdar áudio como...</translation>
@@ -5302,6 +5298,7 @@
 <translation id="5792295754950501287">Mais ações para <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Toque no botão ligar/desligar</translation>
 <translation id="5792874008054171483">Mais ações para <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Este método de pagamento vai ser eliminado deste dispositivo</translation>
 <translation id="5793339252089865437">Transferir a atualização através da sua rede móvel pode resultar em custos adicionais.</translation>
 <translation id="5793420564274426163">Confirmação de sincronização</translation>
 <translation id="5793430094159150686">A sua palavra-passe foi alterada. Para restaurar os dados locais, tem de introduzir a palavra-passe antiga.</translation>
@@ -5354,7 +5351,7 @@
 <translation id="583431638776747">O site não estava disponível</translation>
 <translation id="5834581999798853053">Faltam cerca de <ph name="TIME" /> minutos</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – câmara ou microfone a gravar</translation>
-<translation id="5835625581856809102">Leia este código QR com o dispositivo no qual quer criar uma chave de acesso para a app <ph name="APP_NAME" /></translation>
+<translation id="5835625581856809102">Leia este código QR com o dispositivo no qual quer criar uma token de acesso para a app <ph name="APP_NAME" /></translation>
 <translation id="583673505367439042">Os sites podem solicitar a edição de ficheiros ou de pastas no seu dispositivo</translation>
 <translation id="5836999627049108525">Idioma de Traduzir de</translation>
 <translation id="583756221537636748">Caixa</translation>
@@ -5622,7 +5619,7 @@
 <translation id="6073451960410192870">Parar gravação</translation>
 <translation id="6073903501322152803">Adicionar funcionalidades de acessibilidade</translation>
 <translation id="6075075631258766703">Validar telemóvel</translation>
-<translation id="6075731018162044558">Ups! O sistema não conseguiu obter uma chave de acesso da API de longo prazo para este dispositivo.</translation>
+<translation id="6075731018162044558">Ups! O sistema não conseguiu obter uma token de acesso da API de longo prazo para este dispositivo.</translation>
 <translation id="6075907793831890935">Trocar dados com o dispositivo com o nome  <ph name="HOSTNAME" /></translation>
 <translation id="6076175485108489240">Utilize a localização. Permita que as apps e os serviços com a autorização de acesso à localização utilizem a do seu dispositivo. A Google pode recolher periodicamente dados de localização e utilizar estes dados anonimamente para melhorar a precisão da localização e os serviços baseados na localização. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" />.</translation>
 <translation id="6076491747490570887">Cinzento frio</translation>
@@ -5741,7 +5738,7 @@
 <translation id="6178664161104547336">Selecionar um certificado</translation>
 <translation id="6178682841350631965">Os seus dados de início de sessão foram atualizados</translation>
 <translation id="6180510783007738939">Ferramenta de linha</translation>
-<translation id="6180550893222597997">Que chave de acesso quer usar para a app <ph name="APP_NAME" />?</translation>
+<translation id="6180550893222597997">Que token de acesso quer usar para a app <ph name="APP_NAME" />?</translation>
 <translation id="6181431612547969857">Transferência bloqueada</translation>
 <translation id="6184099524311454384">Pesquisar separadores</translation>
 <translation id="6185132558746749656">Localização do dispositivo</translation>
@@ -6111,7 +6108,7 @@
 <translation id="6532101170117367231">Guardar no Google Drive</translation>
 <translation id="6532106788206463496">Guardar alterações</translation>
 <translation id="6532206849875187177">Segurança e início de sessão</translation>
-<translation id="6532527800157340614">O início de sessão falhou porque não foi possível obter a sua chave de acesso. Verifique a sua ligação de rede e tente novamente.</translation>
+<translation id="6532527800157340614">O início de sessão falhou porque não foi possível obter a sua token de acesso. Verifique a sua ligação de rede e tente novamente.</translation>
 <translation id="6532663472409656417">Inscrito pela empresa</translation>
 <translation id="6533315466883598769">Usar o Google Tradutor</translation>
 <translation id="6535331821390304775">Permitir sempre que <ph name="ORIGIN" /> abra links deste tipo na app associada</translation>
@@ -6570,7 +6567,7 @@
 <translation id="6943060957016121200">Ativar Ligação (à Internet) via telemóvel instantânea</translation>
 <translation id="6943176775188458830">Cancelar impressão</translation>
 <translation id="6943939122536910181">Desligado de <ph name="DEVICE" /></translation>
-<translation id="6944708469742828051">Esta chave de acesso só é guardada no Windows Hello</translation>
+<translation id="6944708469742828051">Esta token de acesso só é guardada no Windows Hello</translation>
 <translation id="6945221475159498467">Selecionar</translation>
 <translation id="694592694773692225">O redirecionamento está bloqueado nesta página.</translation>
 <translation id="6947015141909171112">Está a ver receitas baseadas na sua atividade de pesquisa recente de receitas.
@@ -6837,7 +6834,7 @@
 <translation id="7193051357671784796">Esta aplicação foi adicionada pela sua organização. Reinicie a aplicação para concluir a instalação da mesma.</translation>
 <translation id="7193374945610105795">Sem palavras-passe guardadas para <ph name="ORIGIN" /></translation>
 <translation id="7194873994243265344">A sua organização bloqueou este ficheiro porque está encriptado. Peça ao proprietário para o desencriptar.</translation>
-<translation id="7196272782924897510">Usar uma chave de acesso de outro dispositivo?</translation>
+<translation id="7196272782924897510">Usar uma token de acesso de outro dispositivo?</translation>
 <translation id="7196913789568937443">Faça uma cópia de segurança no Google Drive. Restaure os dados ou mude de dispositivo facilmente em qualquer altura. A 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 sua Conta Google. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" />.</translation>
 <translation id="7197190419934240522">Obtenha a Pesquisa Google e a inteligência da Google sempre que navegar</translation>
 <translation id="719791532916917144">Atalho de teclado</translation>
@@ -7280,6 +7277,7 @@
 <translation id="7609148976235050828">Ligue-se à Internet e tente novamente.</translation>
 <translation id="7612401678989660900">Permitir acesso a apps e Websites com a autorização do microfone</translation>
 <translation id="7612655942094160088">Ativar funcionalidades do telemóvel associado.</translation>
+<translation id="7612989789287281429">A iniciar sessão…</translation>
 <translation id="7614260613810441905">Perguntar quando um site pretender editar ficheiros ou pastas no seu dispositivo (recomendado)</translation>
 <translation id="761530003705945209">Faça uma cópia no Google Drive. Restaure facilmente os seus dados ou troque de dispositivo em qualquer altura. A cópia de segurança inclui os dados de apps. As cópias de segurança são carregadas para a Google e encriptadas com a palavra-passe da sua Conta Google.</translation>
 <translation id="7615365294369022248">Ocorreu um erro ao adicionar uma conta</translation>
@@ -7361,7 +7359,7 @@
 <translation id="7670483791111801022">Legendas</translation>
 <translation id="7671130400130574146">Utilizar os limites e a barra de título do sistema</translation>
 <translation id="767127784612208024">Toque para confirmar a reposição</translation>
-<translation id="7672504401554182757">Escolha que dispositivo tem a chave de acesso para a app <ph name="APP_NAME" /></translation>
+<translation id="7672504401554182757">Escolha que dispositivo tem a token de acesso para a app <ph name="APP_NAME" /></translation>
 <translation id="7672520070349703697"><ph name="HUNG_IFRAME_URL" />, em <ph name="PAGE_TITLE" />.</translation>
 <translation id="7674416868315480713">Desativar todas as portas a serem encaminhadas no Linux</translation>
 <translation id="7674537509496907005"><ph name="APP_COUNT" /> apps</translation>
@@ -7472,7 +7470,7 @@
 <translation id="7766807826975222231">Faça uma visita guiada</translation>
 <translation id="7766838926148951335">Aceitar autorizações</translation>
 <translation id="7767554953520855281">Os detalhes estão ocultos durante a partilha do ecrã</translation>
-<translation id="7767972280546034736">Crie uma chave de acesso para <ph name="APP_NAME" /></translation>
+<translation id="7767972280546034736">Crie uma token de acesso para <ph name="APP_NAME" /></translation>
 <translation id="7768507955883790804">Os sites seguem automaticamente esta definição quando os visita.</translation>
 <translation id="7768526219335215384"><ph name="ORIGIN" /> poderá ver os ficheiros em <ph name="FOLDERNAME" /></translation>
 <translation id="7768770796815395237">Alterar</translation>
@@ -7809,7 +7807,6 @@
 <translation id="8059417245945632445">&amp;Inspecionar dispositivos</translation>
 <translation id="8059456211585183827">Não existem impressoras disponíveis para guardar.</translation>
 <translation id="8061091456562007989">Repor</translation>
-<translation id="8061965471006133016">Proteção adicional para as suas palavras-passe e muito mais</translation>
 <translation id="8061970399284390013">Verificação de ortografia e gramática</translation>
 <translation id="8061991877177392872">Já configurou o Voice Match com o Assistente noutro dispositivo. Estas gravações anteriores foram utilizadas para criar um modelo de voz neste dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 folha de papel}other{{COUNT} folhas de papel}}</translation>
@@ -7969,7 +7966,7 @@
 <translation id="820568752112382238">Sites mais visitados</translation>
 <translation id="8206745257863499010">Bluesy</translation>
 <translation id="8206859287963243715">Telemóvel</translation>
-<translation id="8207404892907560325">Escolha uma chave de acesso</translation>
+<translation id="8207404892907560325">Escolha uma token de acesso</translation>
 <translation id="8208188204689616705">Estes sites estão num grupo definido por <ph name="FPS_OWNER" />. Os sites num grupo podem ver a sua atividade no grupo.</translation>
 <translation id="8208216423136871611">Não guardar</translation>
 <translation id="8210398899759134986">{MUTED_NOTIFICATIONS_COUNT,plural, =1{Nova notificação}other{# novas notificações}}</translation>
@@ -8153,7 +8150,7 @@
 <translation id="8376137163494131156">Diga-nos o que se passa com o Google Cast.</translation>
 <translation id="8376384591331888629">Incluindo cookies de terceiros neste site</translation>
 <translation id="8376451933628734023">Se esta app para a Web estiver a tentar fazer-se passar por uma app diferente, desinstale-a.</translation>
-<translation id="8377625247046155446">Esta chave de acesso só é guardada neste dispositivo. Permanece neste dispositivo após fechar todas as janelas de navegação anónima.</translation>
+<translation id="8377625247046155446">Esta token de acesso só é guardada neste dispositivo. Permanece neste dispositivo após fechar todas as janelas de navegação anónima.</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>
@@ -8526,7 +8523,7 @@
 <translation id="8724859055372736596">Mo&amp;strar numa Pasta</translation>
 <translation id="8725066075913043281">Tentar novamente</translation>
 <translation id="8725178340343806893">Favoritos/Marcadores</translation>
-<translation id="87254326763805752">Confirme a chave de acesso</translation>
+<translation id="87254326763805752">Confirme a token de acesso</translation>
 <translation id="8726206820263995930">Erro ao obter as definições da política do servidor: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="8728351286589123703">As suas autorizações escolhidas serão repostas</translation>
 <translation id="8729133765463465108">Utilizar a câmara para ler o código QR</translation>
@@ -8718,7 +8715,7 @@
 <translation id="8890170499370378450">Pode incorrer em custos de dados móveis</translation>
 <translation id="8890516388109605451">Fontes</translation>
 <translation id="8890529496706615641">Não foi possível mudar o nome do perfil. Tente novamente ou contacte o operador para obter apoio técnico.</translation>
-<translation id="8891996167592415151">Com base na sua interação com um site, como iniciar sessão regularmente numa conta, esse site pode emitir um símbolo de estado privado para o seu navegador. Posteriormente, se outros sites que visitar verificarem e encontrarem um símbolo de estado privado válido, é mais provável que tratem o utilizador como uma pessoa e não como um bot.</translation>
+<translation id="8891996167592415151">Com base na sua interação com um site, como iniciar sessão regularmente numa conta, esse site pode emitir um token de estado privado para o seu navegador. Posteriormente, se outros sites que visitar verificarem e encontrarem um token de estado privado válido, é mais provável que tratem o utilizador como uma pessoa e não como um bot.</translation>
 <translation id="8892168913673237979">Está tudo pronto!</translation>
 <translation id="8893801527741465188">Desinstalação concluída</translation>
 <translation id="8893928184421379330">Lamentamos, não foi possível reconhecer o aparelho <ph name="DEVICE_LABEL" />.</translation>
@@ -8899,7 +8896,7 @@
 <translation id="90528604757378587">A atividade em segundo plano e alguns efeitos visuais, como o deslocamento suave, podem ser limitados.</translation>
 <translation id="9053563360605707198">Imprimir de ambos os lados</translation>
 <translation id="9055636786322918818">Aplicar a encriptação RC4. A utilização desta opção aumenta o seu risco, uma vez que as cifras RC4 são inseguras.</translation>
-<translation id="9056788090206401048">O Bluetooth tem de estar ativado para usar a sua chave de acesso num dispositivo diferente. Pode gerir esta opção em qualquer altura nas definições.</translation>
+<translation id="9056788090206401048">O Bluetooth tem de estar ativado para usar a sua token de acesso num dispositivo diferente. Pode gerir esta opção em qualquer altura nas definições.</translation>
 <translation id="9056810968620647706">Não foram encontradas correspondências.</translation>
 <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> pretende aceder ao seguinte conteúdo:</translation>
 <translation id="9057354806206861646">Programa de atualizações</translation>
@@ -9026,7 +9023,7 @@
       <ph name="LIST_ITEM" />Executar o Diagnóstico de conetividade do Chrome.
     <ph name="END_LIST" /></translation>
 <translation id="916607977885256133">Ecrã no ecrã</translation>
-<translation id="9166253503936244008">Leia este código QR com o dispositivo que tem a chave de acesso que quer usar para a app <ph name="APP_NAME" /></translation>
+<translation id="9166253503936244008">Leia este código QR com o dispositivo que tem a token de acesso que quer usar para a app <ph name="APP_NAME" /></translation>
 <translation id="9167063903968449027">Mostrar Lista de leitura</translation>
 <translation id="9167450455589251456">O perfil não é suportado</translation>
 <translation id="9168436347345867845">Fazer isto mais tarde</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index d18a7cc1..49ba009 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -4447,7 +4447,6 @@
 <translation id="4977942889532008999">Confirmați accesul</translation>
 <translation id="4980805016576257426">Această extensie conține programe malware.</translation>
 <translation id="4981449534399733132">Pentru a șterge datele de navigare de pe toate dispozitivele sincronizate și din Contul Google, <ph name="BEGIN_LINK" />conectează-te<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Reia de unde ai rămas, pe orice dispozitiv</translation>
 <translation id="4986706507552097681">Poți să alegi oricând ce să sincronizezi în setări. Google poate personaliza Căutarea și alte servicii pe baza istoricului.</translation>
 <translation id="4986728572522335985">Vor fi șterse toate datele de pe cheia de securitate, inclusiv codul său PIN</translation>
 <translation id="4988526792673242964">Pagini</translation>
@@ -4564,7 +4563,6 @@
 <translation id="5097349930204431044">Site-urile pe care le accesezi pot stabili lucrurile care te interesează, apoi îți sugerează anunțuri pe măsură ce navighezi</translation>
 <translation id="5097649414558628673">Instrument: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Dă automat clic la oprirea cursorului</translation>
-<translation id="5101683448725092498">Fă backup conținutului</translation>
 <translation id="5101839224773798795">Se dă clic automat când cursorul se oprește</translation>
 <translation id="5106350808162641062">Elimină</translation>
 <translation id="510695978163689362">Contul <ph name="USER_EMAIL" /> este supravegheat prin Family Link. Poți să adaugi conturi de la școală ca să accesezi resurse pentru școală cu supraveghere parentală.</translation>
@@ -5130,7 +5128,6 @@
 <translation id="5623842676595125836">Jurnal</translation>
 <translation id="5624120631404540903">Gestionați parolele</translation>
 <translation id="5625225435499354052">Editează în Google Pay</translation>
-<translation id="5625631605902707678">Pe toate dispozitivele</translation>
 <translation id="5626134646977739690">Nume:</translation>
 <translation id="5627086634964711283">Stabilește și ce pagină se afișează când dai clic pe butonul Pagina principală.</translation>
 <translation id="5627676517703583263">Navighează inteligent folosind Chrome</translation>
@@ -5242,7 +5239,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Aceste date sau dispozitivul nu respectă unele dintre politicile de securitate ale organizației. Consultă administratorul pentru a afla ce trebuie remediat.}=1{Acest fișier sau dispozitivul nu respectă unele dintre politicile de securitate ale organizației. Consultă administratorul pentru a afla ce trebuie remediat.}few{Aceste fișiere nu respectă unele dintre politicile de securitate ale organizației. Consultă administratorul pentru a afla ce trebuie remediat.}other{Aceste fișiere nu respectă unele dintre politicile de securitate ale organizației. Consultă administratorul pentru a afla ce trebuie remediat.}}</translation>
 <translation id="5736796278325406685">Introdu un nume de utilizator valid</translation>
 <translation id="5738093759615225354">Ai nevoie de această cheie de acces pentru a te conecta la computer</translation>
-<translation id="5738329404678738022">Stochează marcajele și multe altele folosind sincronizarea</translation>
 <translation id="5739017626473506901">Conectează-te pentru a ajuta utilizatorul <ph name="USER_NAME" /> să adauge un cont de la școală</translation>
 <translation id="5739235828260127894">Se așteaptă confirmarea. <ph name="LINK_BEGIN" />Află mai multe<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Foarte mare</translation>
@@ -5264,7 +5260,6 @@
 <translation id="5757375109985023827">Selectează o filă de previzualizat</translation>
 <translation id="5758631781033351321">Aici vei vedea lista de lectură</translation>
 <translation id="5759728514498647443">Documentele pe care le trimiți prin <ph name="APP_NAME" /> pentru a fi printate pot fi citite de <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Conectează-te pentru mai multe beneficii</translation>
 <translation id="5762787084360227629">Introdu informații despre Contul Google</translation>
 <translation id="5763751966069581670">Nu s-au găsit dispozitive USB</translation>
 <translation id="5764483294734785780">Sal&amp;vează conținutul audio ca...</translation>
@@ -7809,7 +7804,6 @@
 <translation id="8059417245945632445">&amp;Inspectați dispozitivele</translation>
 <translation id="8059456211585183827">Nu există imprimante de salvat.</translation>
 <translation id="8061091456562007989">Revino la setările inițiale</translation>
-<translation id="8061965471006133016">Protecție suplimentară pentru parole și multe altele</translation>
 <translation id="8061970399284390013">Verificarea ortografiei și a gramaticii</translation>
 <translation id="8061991877177392872">Se pare că ai configurat deja Voice Match cu Asistentul pe alt dispozitiv. Aceste înregistrări anterioare au fost folosite pentru a crea un model vocal pe acest dispozitiv.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{O coală de hârtie}few{{COUNT} coli de hârtie}other{{COUNT} de coli de hârtie}}</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index d79d3e9..3c48ac2 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation>
 <translation id="1059944192885972544">Вкладок, найденных по запросу "<ph name="SEARCH_TEXT" />": <ph name="NUM" /></translation>
 <translation id="1060292118287751956">Определяет частоту, с которой обновляется экран</translation>
+<translation id="1060570945511946595">Управление билетами</translation>
 <translation id="1061130374843955397">Добро пожаловать в мир <ph name="DEVICE_TYPE" />!</translation>
 <translation id="1061373870045429865">Создать QR-код для этой ссылки</translation>
 <translation id="1061904396131502319">Скоро перерыв</translation>
@@ -1116,6 +1117,7 @@
 <translation id="1975841812214822307">Удалить</translation>
 <translation id="1976150099241323601">Вход в устройство безопасности</translation>
 <translation id="1977965994116744507">Чтобы снять блокировку, поднесите телефон ближе к устройству <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Удалить Bruschetta</translation>
 <translation id="1979095679518582070">Запретить отправку данных можно в любой момент. Это не повлияет на обновление и безопасность системы.</translation>
 <translation id="1979280758666859181">Вы переходите на канал обновления с более ранней версией <ph name="PRODUCT_NAME" />. Чтобы изменения вступили в силу, версия канала и текущая версия на вашем устройстве должны совпадать.</translation>
 <translation id="197989455406964291">Центр распространения ключей (KDC) не поддерживает такой тип шифрования.</translation>
@@ -1919,6 +1921,7 @@
 <translation id="2672142220933875349">Файл CRX поврежден, распаковать его не удалось.</translation>
 <translation id="2673135533890720193">Чтение истории просмотров</translation>
 <translation id="2674764818721168631">Отключено</translation>
+<translation id="2675570801872027281">При удалении Bruschetta произошла ошибка. Повторите попытку.</translation>
 <translation id="2676492189600898281">Оставить отзыв об автозаполнении</translation>
 <translation id="2678063897982469759">Включить снова</translation>
 <translation id="2678100101831051676">Не удалось запустить трансляцию</translation>
@@ -2917,6 +2920,7 @@
 <translation id="3593965109698325041">Ограничения имени сертификата</translation>
 <translation id="3596012367874587041">Настройки приложений</translation>
 <translation id="3596414637720633074">Блокировать файлы cookie сторонних сайтов в режиме инкогнито</translation>
+<translation id="3598010454707842106">Нажмите "Настроить Chrome".</translation>
 <translation id="3599221874935822507">Приподнятая</translation>
 <translation id="3600051066689725006">Информация о веб-запросе</translation>
 <translation id="360180734785106144">Предлагать новые функции по мере их появления.</translation>
@@ -3914,6 +3918,7 @@
 <translation id="4495419450179050807">Не показывать на этой странице</translation>
 <translation id="4497145443434063861">Компьютер и устройство Chromecast подключены к разным сетям Wi-Fi (например, 2,4 ГГц и 5 ГГц)</translation>
 <translation id="4500114933761911433">Сбой в плагине <ph name="PLUGIN_NAME" /></translation>
+<translation id="4500647907053779331">Перевести выделенный текст на <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Значок восклицательного знака.</translation>
 <translation id="4501530680793980440">Подтверждение удаления</translation>
 <translation id="4502423230170890588">Удалить с устройства</translation>
@@ -3944,6 +3949,7 @@
 <translation id="4522890784888918985">Дочерние аккаунты не поддерживаются.</translation>
 <translation id="4523876148417776526">Списки сайтов XML ещё не получены.</translation>
 <translation id="4524832533047962394">Режим регистрации устройства не поддерживается этой версией операционной системы. Убедитесь, что вы используете последнюю версию, и повторите попытку.</translation>
+<translation id="4526051299161934899">Скрытые сохраненные группы вкладок</translation>
 <translation id="4526853756266614740">Выберите изображение, и тема будет сразу применена.</translation>
 <translation id="452750746583162491">Проверить синхронизированные данные</translation>
 <translation id="4527929807707405172">Включить прокрутку в обратную сторону. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
@@ -4268,6 +4274,7 @@
 <translation id="4824037980212326045">Резервное копирование и восстановление Linux</translation>
 <translation id="4824958205181053313">Отключить синхронизацию?</translation>
 <translation id="4825532258163983651">Не удается удалить ключ доступа</translation>
+<translation id="4827283332383516812">Удаление карты</translation>
 <translation id="4827675678516992122">Ошибка подключения</translation>
 <translation id="4827784381479890589">Использовать расширенную проверку правописания в браузере Chrome (для создания подсказок текст будет отправляться в Google)</translation>
 <translation id="4827904420700932487">Создать QR-код для этого изображения</translation>
@@ -4443,7 +4450,6 @@
 <translation id="4977942889532008999">Подтверждение доступа</translation>
 <translation id="4980805016576257426">Это расширение содержит вредоносное ПО.</translation>
 <translation id="4981449534399733132">Чтобы удалить данные о работе в браузере со всех синхронизированных устройств и из аккаунта Google, <ph name="BEGIN_LINK" />войдите в систему<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Продолжайте работу на любом устройстве с того места, где остановились.</translation>
 <translation id="4986706507552097681">Вы всегда можете выбрать, что синхронизировать, в настройках. Google может персонально настраивать Поиск и другие сервисы на основе вашей истории.</translation>
 <translation id="4986728572522335985">С электронного ключа будут удалены все данные, включая PIN-код</translation>
 <translation id="4988526792673242964">Страницы</translation>
@@ -4560,7 +4566,6 @@
 <translation id="5097349930204431044">Сайты, которые вы посещаете, могут определять ваши предпочтения и впоследствии показывать более подходящую рекламу</translation>
 <translation id="5097649414558628673">Инструмент: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Автоматически регистрировать нажатие кнопки мыши, когда курсор останавливается</translation>
-<translation id="5101683448725092498">Сохраните резервную копию данных</translation>
 <translation id="5101839224773798795">Автоматически регистрировать нажатие кнопки мыши, когда указатель останавливается</translation>
 <translation id="5106350808162641062">Удалить</translation>
 <translation id="510695978163689362">Аккаунт <ph name="USER_EMAIL" /> находится под управлением Family Link. Чтобы контролировать доступ к школьным материалам, можно добавить учебный аккаунт.</translation>
@@ -5126,7 +5131,6 @@
 <translation id="5623842676595125836">Журнал</translation>
 <translation id="5624120631404540903">Настройки паролей</translation>
 <translation id="5625225435499354052">Редактировать в Google Pay</translation>
-<translation id="5625631605902707678">Синхронизация данных на устройствах</translation>
 <translation id="5626134646977739690">Имя:</translation>
 <translation id="5627086634964711283">Кроме того, расширение изменило страницу, которая отображается при нажатии кнопки "Главная страница".</translation>
 <translation id="5627676517703583263">Умный браузер Chrome</translation>
@@ -5238,7 +5242,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Эти данные или ваше устройство не соответствуют некоторым правилам безопасности организации. Обратитесь к администратору.}=1{Этот файл или ваше устройство не соответствует некоторым правилам безопасности организации. Обратитесь к администратору.}one{Эти файлы не соответствуют некоторым правилам безопасности вашей организации. Обратитесь к администратору.}few{Эти файлы не соответствуют некоторым правилам безопасности вашей организации. Обратитесь к администратору.}many{Эти файлы не соответствуют некоторым правилам безопасности вашей организации. Обратитесь к администратору.}other{Эти файлы не соответствуют некоторым правилам безопасности вашей организации. Обратитесь к администратору.}}</translation>
 <translation id="5736796278325406685">Введите действительное имя пользователя</translation>
 <translation id="5738093759615225354">Этот ключ доступа нужен, чтобы входить в систему на компьютере.</translation>
-<translation id="5738329404678738022">Синхронизируйте закладки и многое другое</translation>
 <translation id="5739017626473506901">Войдите в систему, чтобы помочь пользователю <ph name="USER_NAME" /> добавить учебный аккаунт.</translation>
 <translation id="5739235828260127894">Требуется подтверждение. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Очень крупный</translation>
@@ -5260,7 +5263,6 @@
 <translation id="5757375109985023827">Выберите вкладку для предпросмотра</translation>
 <translation id="5758631781033351321">Здесь вы найдете свой список для чтения</translation>
 <translation id="5759728514498647443">"<ph name="APP_NAME" />" может читать документы, отправленные на печать через приложение "<ph name="APP_NAME" />".</translation>
-<translation id="5760508342220592715">Войдите в аккаунт</translation>
 <translation id="5762787084360227629">Ввести данные Google аккаунта</translation>
 <translation id="5763751966069581670">USB-устройства не найдены</translation>
 <translation id="5764483294734785780">Со&amp;хранить аудио как...</translation>
@@ -5296,6 +5298,7 @@
 <translation id="5792295754950501287">Другие действия с картой "<ph name="CARD_DESCRIPTION" />"</translation>
 <translation id="5792728279623964091">Нажмите кнопку питания.</translation>
 <translation id="5792874008054171483"><ph name="SITE_NAME" />: другие действия</translation>
+<translation id="5793317771769868848">Этот способ оплаты будет удален с устройства.</translation>
 <translation id="5793339252089865437">Скачивание обновлений по мобильной сети может привести к дополнительным расходам.</translation>
 <translation id="5793420564274426163">Подтвердите подключение</translation>
 <translation id="5793430094159150686">Ваш пароль был изменен. Чтобы восстановить локальные данные, введите прежний пароль.</translation>
@@ -5731,6 +5734,7 @@
 <translation id="617213288191670920">Языки не добавлены</translation>
 <translation id="6173623053897475761">Введите PIN-код ещё раз</translation>
 <translation id="6175314957787328458">Идентификатор GUID домена Microsoft</translation>
+<translation id="6177412385419165772">Удаление…</translation>
 <translation id="6178664161104547336">Выбор сертификата</translation>
 <translation id="6178682841350631965">Ваши учетные данные обновлены.</translation>
 <translation id="6180510783007738939">Инструмент "Линия"</translation>
@@ -6213,6 +6217,7 @@
 <translation id="6619801788773578757">Добавить киоск-приложение</translation>
 <translation id="6619990499523117484">Подтвердите PIN-код</translation>
 <translation id="6620254580880484313">Название контейнера</translation>
+<translation id="6620927550847360014">Удалить Bruschetta с устройства <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Чтобы отправить вкладку с одного устройства на другое, войдите на них в Chrome.</translation>
 <translation id="6622980291894852883">Всегда блокировать изображения</translation>
 <translation id="6624036901798307345">В режиме планшета нажмите кнопку с числом вкладок на панели инструментов, чтобы открыть новую панель с уменьшенными изображениями всех вкладок.</translation>
@@ -6430,6 +6435,7 @@
 <translation id="6818547713623251698">Просматривайте фотографии, медиафайлы, уведомления и приложения с телефона</translation>
 <translation id="6818802132960437751">Встроенная защита от вирусов</translation>
 <translation id="6818920801736417483">Сохранить пароли?</translation>
+<translation id="6820079682647046800">Ошибка аутентификации по протоколу Kerberos</translation>
 <translation id="6823174134746916417">Нажатие от прикосновения к сенсорной панели</translation>
 <translation id="6824564591481349393">Скопировать адрес электронной почты</translation>
 <translation id="6824584962142919697">&amp;Проверить элементы</translation>
@@ -6584,6 +6590,7 @@
 <translation id="6955698182324067397">Вы включаете функции отладки Chrome OS. Будет настроен SSHD-демон и разрешена загрузка с USB-накопителей.</translation>
 <translation id="6955893174999506273">Назначить ещё один</translation>
 <translation id="6957044667612803194">Электронный ключ не поддерживает PIN-коды.</translation>
+<translation id="6960133692707095572">Войти без билета</translation>
 <translation id="6960507406838246615">Требуется обновление Linux</translation>
 <translation id="6960648667961844909">Не удалось скачать файлы для распознавания речи на следующем языке: <ph name="LANGUAGE" />. Повторная попытка будет выполнена позже. Пока скачивание не завершится, записи с речью будут передаваться для обработки в Google.</translation>
 <translation id="696103774840402661">Файлы и локальные данные всех пользователей будут удалены с этого устройства <ph name="DEVICE_TYPE" />.</translation>
@@ -7276,6 +7283,7 @@
 <translation id="7609148976235050828">Подключитесь к Интернету и повторите попытку.</translation>
 <translation id="7612401678989660900">Доступ получат приложения и сайты с разрешением "Микрофон"</translation>
 <translation id="7612655942094160088">Включить функции, использующие подключение к телефону.</translation>
+<translation id="7612989789287281429">Вход в аккаунт…</translation>
 <translation id="7614260613810441905">Запрашивать разрешение на изменение сайтами файлов или папок на устройстве (рекомендуется)</translation>
 <translation id="761530003705945209">Сохранение резервных копий на Google Диске. Позволяет в любой момент восстанавливать данные (в том числе из приложений) или переносить их с одного устройства на другое. Резервные копии загружаются в Google и шифруются с помощью пароля вашего аккаунта Google.</translation>
 <translation id="7615365294369022248">Ошибка при добавлении аккаунта</translation>
@@ -7805,7 +7813,6 @@
 <translation id="8059417245945632445">&amp;Проверка устройств</translation>
 <translation id="8059456211585183827">Нет принтеров, доступных для сохранения.</translation>
 <translation id="8061091456562007989">Вернуть прежние настройки</translation>
-<translation id="8061965471006133016">Дополнительная защита ваших паролей и других данных.</translation>
 <translation id="8061970399284390013">Проверка грамматики и орфографии</translation>
 <translation id="8061991877177392872">Похоже, вы уже настроили Voice Match на другом устройстве. Образец вашего голоса создан на основе предыдущих записей.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 лист бумаги}one{{COUNT} лист бумаги}few{{COUNT} листа бумаги}many{{COUNT} листов бумаги}other{{COUNT} листа бумаги}}</translation>
@@ -8046,6 +8053,7 @@
 <translation id="8272443605911821513">Управляйте расширениями в соответствующем разделе в меню дополнительных инструментов.</translation>
 <translation id="8272786333453048167">Предоставить разрешения снова</translation>
 <translation id="8273905181216423293">Скачать</translation>
+<translation id="827488840488530039">Не удалось проверить билеты Kerberos, чтобы открыть страницу.</translation>
 <translation id="8274921654076766238">Перемещение лупы с помощью клавиатуры</translation>
 <translation id="8274924778568117936">Не выключайте и не закрывайте <ph name="DEVICE_TYPE" />, выполняется обновление. После завершения установки <ph name="DEVICE_TYPE" /> перезагрузится.</translation>
 <translation id="8275038454117074363">Импорт</translation>
@@ -8492,6 +8500,7 @@
 <translation id="869884720829132584">Меню приложений</translation>
 <translation id="869891660844655955">Срок действия</translation>
 <translation id="8699188901396699995">PPD-файл для принтера "<ph name="PRINTER_NAME" />"</translation>
+<translation id="8702278591052316269">Меню со скрытыми сохраненными группами вкладок</translation>
 <translation id="8702825062053163569">Устройство <ph name="DEVICE_TYPE" /> заблокировано</translation>
 <translation id="8703346390800944767">Пропустить</translation>
 <translation id="8705331520020532516">Серийный номер</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 110610c..6d0559a 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -4446,7 +4446,6 @@
 <translation id="4977942889532008999">පිවිසුම තහවුරු කරන්න</translation>
 <translation id="4980805016576257426">මෙම දිගුවේ අනිෂ්ට මෘදුකාංග අඩංගු වේ.</translation>
 <translation id="4981449534399733132">ඔබේ සියලුම සමමුහුර්ත කළ උපාංගවලින් සහ ඔබේ Google ගිණුමෙන් බ්‍රවුස් කිරීමේ දත්ත හිස් කිරීමට, <ph name="BEGIN_LINK" />පුරන්න<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">ඔබ ඕනෑම උපාංගයක් මත නතර කළ තැනින් පටන් ගන්න</translation>
 <translation id="4986706507552097681">ඔබට සැමවිටම සැකසීම් තුළ සමමුහු කළ යුතු දෙය තෝරා ගත හැක. Google ඔබේ ඉතිහාසය මත පදනම්ව සෙවීම් සහ අනෙකුත් සේවාවන් පෞද්ගලීකරණය කිරීමට ඉඩ ඇත.</translation>
 <translation id="4986728572522335985">මෙය එහි රහස් අංකය ඇතුළුව ආරක්‍ෂක යතුර මත සියලුම දත්ත මකයි</translation>
 <translation id="4988526792673242964">පිටු</translation>
@@ -4563,7 +4562,6 @@
 <translation id="5097349930204431044">ඔබ පිවිසෙන අඩවිවලට ඔබ කැමති දේ නිශ්චය කර පසුව ඔබ බ්‍රවුස් කරන විට දැන්වීම් යෝජනා කළ හැක</translation>
 <translation id="5097649414558628673">මෙවලම: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">කර්සරය නැවතින විට ස්වයංක්‍රීයව පරීක්ෂා කරන්න</translation>
-<translation id="5101683448725092498">ඔබේ දේවල් උපස්ථ කරන්න</translation>
 <translation id="5101839224773798795">කර්සරය නතර වූ විට ස්වයංක්‍රීයව ක්ලික් කරන්න</translation>
 <translation id="5106350808162641062">ඉවත් කරන්න</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> Family Link මගින් අධීක්ෂණය කෙරේ. මාපිය අධීක්ෂණය සහිතව පාසල් සම්පත් වෙත ප්‍රවේශ වීම සඳහා ඔබට පාසල් ගිණුම් එක් කළ හැකිය.</translation>
@@ -5130,7 +5128,6 @@
 <translation id="5623842676595125836">වාර්තාව</translation>
 <translation id="5624120631404540903">මුරපද පාලනය</translation>
 <translation id="5625225435499354052">Google Pay හි සංස්කරණය කරන්න</translation>
-<translation id="5625631605902707678">උපාංග හරහා</translation>
 <translation id="5626134646977739690">නම:</translation>
 <translation id="5627086634964711283">තවද එය ඔබ නිවෙස් බොත්තම ක්ලික් කළ විට පෙන්වන පිටුවද පාලනය කරයි.</translation>
 <translation id="5627676517703583263">Chrome සමඟ බුද්ධිමත්ව බ්‍රවුස් කරන්න</translation>
@@ -5242,7 +5239,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{මෙම දත්ත හෝ ඔබේ උපාංගය ඔබේ සංවිධානයේ සමහර ආරක්ෂක ප්‍රතිපත්ති සපුරාලන්නේ නැත. නිරාකරණයට අවශ්‍ය දේ පිළිබඳව ඔබේ පරිපාලක සමග පරීක්ෂා කරන්න.}=1{මෙම ගොනුව හෝ ඔබේ උපාංගය ඔබේ සංවිධානයේ සමහර ආරක්ෂක ප්‍රතිපත්ති සපුරාලන්නේ නැත. නිරාකරණයට අවශ්‍ය දේ පිළිබඳව ඔබේ පරිපාලක සමග පරීක්ෂා කරන්න.}one{මෙම ගොනු ඔබේ සංවිධානයේ සමහර ආරක්ෂක ප්‍රතිපත්ති සපුරාලන්නේ නැත. නිරාකරණයට අවශ්‍ය දේ පිළිබඳව ඔබේ පරිපාලක සමග පරීක්ෂා කරන්න.}other{මෙම ගොනු ඔබේ සංවිධානයේ සමහර ආරක්ෂක ප්‍රතිපත්ති සපුරාලන්නේ නැත. නිරාකරණයට අවශ්‍ය දේ පිළිබඳව ඔබේ පරිපාලක සමග පරීක්ෂා කරන්න.}}</translation>
 <translation id="5736796278325406685">වලංගු පරිශීලක නාමයක් ඇතුළු කරන්න</translation>
 <translation id="5738093759615225354">ඔබේ පරිගණකයට පුරනය වීමට ඔබට මෙම මුරයතුර අවශ්‍ය වේ</translation>
-<translation id="5738329404678738022">සමමුහුර්තකරණය සමග ඔබේ පිටු සලකුණු සහ තවත් දේ ගබඩා කරන්න</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> හට පාසල් ගිණුමක් එක් කිරීමට උදවු කිරීමට පුරන්න</translation>
 <translation id="5739235828260127894">සත්‍යාපනය බලාපොරොත්තුවෙන් <ph name="LINK_BEGIN" />තවත් දැන ගන්න.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ඉතා විශාල</translation>
@@ -5264,7 +5260,6 @@
 <translation id="5757375109985023827">පෙරදසුන් කිරීමට ටැබයක් තෝරන්න</translation>
 <translation id="5758631781033351321">ඔබට ඔබේ කියවීමේ ලැයිස්තුව මෙහි හමුවනු ඇත</translation>
 <translation id="5759728514498647443">ඔබ <ph name="APP_NAME" /> හරහා මුද්‍රණයට යවන ලේඛන <ph name="APP_NAME" /> විසින් කියවිය හැකිය.</translation>
-<translation id="5760508342220592715">තවත් ප්‍රතිලාභ සඳහා පුරන්න</translation>
 <translation id="5762787084360227629">Google ගිණුම් තොරතුරු ඇතුළත් කරන්න</translation>
 <translation id="5763751966069581670">USB උපාංග හමු නොවිණි</translation>
 <translation id="5764483294734785780">ශ්‍රව්‍ය මෙසේ සුර&amp;කින්න...</translation>
@@ -7801,7 +7796,6 @@
 <translation id="8059417245945632445">&amp;උපාංග පරීක්ෂා කරන්න</translation>
 <translation id="8059456211585183827">සුරැකීමට ලද හැකි මුද්‍රක කිසිවක් නැත.</translation>
 <translation id="8061091456562007989">එය නැවත වෙනස් කරන්න</translation>
-<translation id="8061965471006133016">ඔබේ මුරපද සහ තවත් දේ සඳහා අමතර ආරක්ෂාවක්</translation>
 <translation id="8061970399284390013">අක්ෂර වින්‍යාස සහ ව්‍යාකරණ පරීක්ෂාව</translation>
 <translation id="8061991877177392872">ඔබ දැනටමත් ඔබගේ Google සහායක සමඟ තවත් උපාංගයක Voice Match පිහිටුවා ඇති බව පෙනේ. මෙම උපාංගයේ කටහඬ ආකෘතියක් සෑදීමට මෙම පෙර පටිගත කිරීම් භාවිත කරන ලදී.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 කඩදාසි කොළයක්}one{කඩදාසි කොළ {COUNT} ක්}other{කඩදාසි කොළ {COUNT} ක්}}</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 00b7756..6abfb892 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Protokol HTTPS (Hypertext Transport Protocol)</translation>
 <translation id="1059944192885972544">Boli nájdené karty (<ph name="NUM" />) pre dopyt <ph name="SEARCH_TEXT" /></translation>
 <translation id="1060292118287751956">Určuje frekvenciu aktualizácie obrazovky</translation>
+<translation id="1060570945511946595">Spravovať tikety</translation>
 <translation id="1061130374843955397">Víta vás <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Vytvoriť QR kód pre tento odkaz</translation>
 <translation id="1061904396131502319">Už je takmer čas na prestávku</translation>
@@ -160,7 +161,7 @@
 <translation id="1139923033416533844">Využitie pamäte</translation>
 <translation id="1140351953533677694">Mať prístup k zariadeniam pripojeným cez Bluetooth a sériový port</translation>
 <translation id="114036956334641753">Zvuk a titulky</translation>
-<translation id="1141949282671776404">Kým bola táto karta neaktívna, Šetrič pamäte uvoľnil <ph name="MEMORY_VALUE" /> pamäte na ďalšie úlohy.</translation>
+<translation id="1141949282671776404">Keď bola táto karta neaktívna, šetrič pamäte uvoľnil iným úlohám <ph name="MEMORY_VALUE" /> pamäte.</translation>
 <translation id="1142002900084379065">Najnovšie fotky</translation>
 <translation id="1143142264369994168">Podpisovateľ certifikátu</translation>
 <translation id="1145593918056169051">Tlačiareň sa zastavila</translation>
@@ -1116,6 +1117,7 @@
 <translation id="1975841812214822307">Odstrániť...</translation>
 <translation id="1976150099241323601">Prihlásenie do zabezpečeného zariadenia</translation>
 <translation id="1977965994116744507">Ak chcete odomknúť zariadenie <ph name="DEVICE_TYPE" />, priblížte k nemu svoj telefón.</translation>
+<translation id="1978666928180318515">Odstrániť počítač Bruschetta</translation>
 <translation id="1979095679518582070">Vypnutím tejto funkcie neovplyvníte schopnosť tohto zariadenia odosielať informácie potrebné na fungovanie základných služieb, ako sú aktualizácie systému a zabezpečenie.</translation>
 <translation id="1979280758666859181">Chystáte sa zmeniť na kanál so staršou verziou prehliadača <ph name="PRODUCT_NAME" />. Zmena kanála sa prejaví, keď sa verzia kanála bude zhodovať s verziou, ktorá je momentálne nainštalovaná v zariadení.</translation>
 <translation id="197989455406964291">KDC nepodporuje typ šifrovania</translation>
@@ -1254,7 +1256,7 @@
     <ph name="BR" />
     <ph name="BEGIN_BOLD" />Poznámka:<ph name="END_BOLD" /> Systém sa počas príslušného procesu reštartuje.</translation>
 <translation id="2095774564753225041">Podporované typy súborov</translation>
-<translation id="2097616539631531348">Kým bola táto karta neaktívna, Šetrič pamäte uvoľnil pamäť na ďalšie úlohy.</translation>
+<translation id="2097616539631531348">Keď bola táto karta neaktívna, šetrič pamäte uvoľnil pamäť iným úlohám.</translation>
 <translation id="2098805196501063469">Skontrolovať zostávajúce heslá</translation>
 <translation id="2099686503067610784">Odstrániť certifikát servera „<ph name="CERTIFICATE_NAME" />“?</translation>
 <translation id="2100273922101894616">Automaticky prihlasovať</translation>
@@ -1919,6 +1921,7 @@
 <translation id="2672142220933875349">Neplatný súbor crx, rozbalenie zlyhalo</translation>
 <translation id="2673135533890720193">Čítať históriu prehliadania</translation>
 <translation id="2674764818721168631">Vypnuté</translation>
+<translation id="2675570801872027281">Pri odstraňovaní počítača Bruschetta sa vyskytla chyba. Skúste to znova.</translation>
 <translation id="2676492189600898281">Poskytnúť spätnú väzbu k automatickému dopĺňaniu</translation>
 <translation id="2678063897982469759">Znova povoliť</translation>
 <translation id="2678100101831051676">Nedá sa prenášať.</translation>
@@ -2917,6 +2920,7 @@
 <translation id="3593965109698325041">Obmedzenia názvu certifikátu</translation>
 <translation id="3596012367874587041">Nastavenia aplikácie</translation>
 <translation id="3596414637720633074">Blokovať súbory cookie tretích strán v režime inkognito</translation>
+<translation id="3598010454707842106">Kliknite na Prispôsobiť Chrome.</translation>
 <translation id="3599221874935822507">Reliéf</translation>
 <translation id="3600051066689725006">Informácie o webovej žiadosti</translation>
 <translation id="360180734785106144">Poskytovať nové funkcie, keď budú k dispozícii</translation>
@@ -3781,7 +3785,7 @@
 <translation id="4378556263712303865">Rekvizícia zariadenia</translation>
 <translation id="4379281552162875326">Chcete odinštalovať aplikáciu <ph name="APP_NAME" />?</translation>
 <translation id="4380648069038809855">Zapnutie režimu celej obrazovky</translation>
-<translation id="4383048856908088702">Kým bola táto karta neaktívna, šetrič pamäte uvoľnil <ph name="MEMORY_VALUE" /> pamäte na ďalšie úlohy. Môžete to kedykoľvek zmeniť v sekcii <ph name="SETTINGS_LINK" />.</translation>
+<translation id="4383048856908088702">Keď bola táto karta neaktívna, šetrič pamäte uvoľnil iným úlohám <ph name="MEMORY_VALUE" /> pamäte. Toto správanie môžete kedykoľvek zmeniť v sekcii <ph name="SETTINGS_LINK" />.</translation>
 <translation id="4384312707950789900">Pridať k preferovaným</translation>
 <translation id="4384652540891215547">Aktivovať rozšírenie</translation>
 <translation id="4384886290276344300">Zmeniť nastavenia klávesnice</translation>
@@ -3873,7 +3877,7 @@
 <translation id="4452898361839215358">alebo vyberte súbor PPD. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
 <translation id="4453430595102511050">Dotknite sa senzora odtlačkov prstov v pravom hornom rohu klávesnice. Údaje odtlačkov prstov sa bezpečne uložia a nikdy neopustia vaše zariadenie (<ph name="DEVICE_TYPE" />).</translation>
 <translation id="4453946976636652378">Vyhľadajte v službe <ph name="SEARCH_ENGINE_NAME" /> alebo zadajte webovú adresu</translation>
-<translation id="4458535500699390320">Kým bola táto karta neaktívna, šetrič pamäte uvoľnil pamäť na ďalšie úlohy. Túto možnosť môžete kedykoľvek zmeniť v nastaveniach.</translation>
+<translation id="4458535500699390320">Keď bola táto karta neaktívna, šetrič pamäte uvoľnil pamäť iným úlohám. Toto správanie môžete kedykoľvek zmeniť v nastaveniach.</translation>
 <translation id="4459169140545916303">Aktívne pred <ph name="DEVICE_LAST_ACTIVATED_TIME" /> dňami</translation>
 <translation id="4460014764210899310">Zrušiť zoskupenie</translation>
 <translation id="4461483878391246134">Pridajte jazyky, pri ktorých sa nikdy nemá ponúkať preklad</translation>
@@ -3914,6 +3918,7 @@
 <translation id="4495419450179050807">Nezobrazovať na tejto stránke</translation>
 <translation id="4497145443434063861">Počítač a Chromecast pripojené k rôznym sieťam Wi‑Fi (napr. 2,4 GHz alebo 5 GHz)</translation>
 <translation id="4500114933761911433">Doplnok <ph name="PLUGIN_NAME" /> zlyhal</translation>
+<translation id="4500647907053779331">Preložiť výber do jazyka <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Ikona Výkričník</translation>
 <translation id="4501530680793980440">Potvrdiť odstránenie</translation>
 <translation id="4502423230170890588">Odstrániť z tohto zariadenia</translation>
@@ -4443,7 +4448,6 @@
 <translation id="4977942889532008999">Potvrdenie prístupu</translation>
 <translation id="4980805016576257426">Toto rozšírenie obsahuje malvér.</translation>
 <translation id="4981449534399733132">Ak chcete vymazať dáta prehliadania zo všetkých synchronizovaných zariadení a účtu Google, <ph name="BEGIN_LINK" />prihláste sa<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Pokračujte v ľubovoľnom zariadení tam, kde ste prestali</translation>
 <translation id="4986706507552097681">Obsah, ktorý chcete synchronizovať, môžete kedykoľvek vybrať v nastaveniach. Google môže prispôsobiť Vyhľadávanie a ďalšie služby na základe vašej histórie.</translation>
 <translation id="4986728572522335985">Odstránia sa všetky údaje v bezpečnostnom kľúči vrátane kódu PIN</translation>
 <translation id="4988526792673242964">Stránky</translation>
@@ -4560,7 +4564,6 @@
 <translation id="5097349930204431044">Weby, ktoré navštevujete, môžu určiť, čo sa vám páči, a na základe toho navrhovať počas vášho prehliadania reklamy</translation>
 <translation id="5097649414558628673">Nástroj: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automaticky kliknúť po zastavení kurzora</translation>
-<translation id="5101683448725092498">Zálohujte si obsah</translation>
 <translation id="5101839224773798795">Automaticky kliknúť po zastavení kurzora</translation>
 <translation id="5106350808162641062">Odstrániť</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> je pod dohľadom v aplikácii Family Link. Môžete pridať školské účty na prístup k školským zdrojom pod rodičovským dohľadom.</translation>
@@ -5126,7 +5129,6 @@
 <translation id="5623842676595125836">Denník</translation>
 <translation id="5624120631404540903">Správa hesiel</translation>
 <translation id="5625225435499354052">Upraviť v službe Google Pay</translation>
-<translation id="5625631605902707678">V rôznych zariadeniach</translation>
 <translation id="5626134646977739690">Názov:</translation>
 <translation id="5627086634964711283">Tiež určuje, ktorá stránka sa zobrazí po kliknutí na tlačidlo Domovská stránka.</translation>
 <translation id="5627676517703583263">Prehliadajte inteligentnejšie pomocou Chromu</translation>
@@ -5238,7 +5240,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Tieto údaje alebo vaše zariadenie nespĺňa niektoré pravidlá zabezpečenia vašej organizácie. Zistite od správcu, čo je treba opraviť.}=1{Tento súbor alebo vaše zariadenie nespĺňa niektoré pravidlá zabezpečenia vašej organizácie. Zistite od správcu, čo je treba opraviť.}few{Tieto súbory nespĺňajú niektoré pravidlá zabezpečenia vašej organizácie. Zistite od správcu, čo je treba opraviť.}many{Tieto súbory nespĺňajú niektoré pravidlá zabezpečenia vašej organizácie. Zistite od správcu, čo je treba opraviť.}other{Tieto súbory nespĺňajú niektoré pravidlá zabezpečenia vašej organizácie. Zistite od správcu, čo je treba opraviť.}}</translation>
 <translation id="5736796278325406685">Zadajte platné používateľské meno</translation>
 <translation id="5738093759615225354">Tento prístupový kľúč potrebujete na prihlásenie do počítača</translation>
-<translation id="5738329404678738022">Ukladajte svoje záložky a ďalší obsah pomocou synchronizácie</translation>
 <translation id="5739017626473506901">Ak chce dieťaťu <ph name="USER_NAME" /> pomôcť pridať školský účet, prihláste sa</translation>
 <translation id="5739235828260127894">Čaká sa na overenie. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Veľmi veľké</translation>
@@ -5260,7 +5261,6 @@
 <translation id="5757375109985023827">Vyberte kartu, ktorej ukážku chcete zobraziť</translation>
 <translation id="5758631781033351321">Tu nájdete svoj čitateľský zoznam</translation>
 <translation id="5759728514498647443">Dokumenty odoslané na tlač prostredníctvom aplikácie <ph name="APP_NAME" /> môžete čítať pomocou aplikácie <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Prihláste sa a získajte viac výhod</translation>
 <translation id="5762787084360227629">Zadať informácie o účte Google</translation>
 <translation id="5763751966069581670">Nenašli sa žiadne zariadenia USB</translation>
 <translation id="5764483294734785780">Uložiť &amp;audio ako...</translation>
@@ -5731,6 +5731,7 @@
 <translation id="617213288191670920">Neboli pridané žiadne jazyky</translation>
 <translation id="6173623053897475761">Znova zadajte svoj PIN</translation>
 <translation id="6175314957787328458">Identifikátor GUID domény spoločnosti Microsoft</translation>
+<translation id="6177412385419165772">Odstraňuje sa…</translation>
 <translation id="6178664161104547336">Vybrať certifikát</translation>
 <translation id="6178682841350631965">Vaše prihlasovacie údaje boli aktualizované</translation>
 <translation id="6180510783007738939">Nástroj na kreslenie čiar</translation>
@@ -6211,6 +6212,7 @@
 <translation id="6619801788773578757">Pridať aplikáciu pre režim kiosku</translation>
 <translation id="6619990499523117484">Potvrďte kód PIN</translation>
 <translation id="6620254580880484313">Názov kontajnera</translation>
+<translation id="6620927550847360014">Chcete počítač Bruschetta zo zariadenia <ph name="DEVICE_TYPE" /> odstrániť?</translation>
 <translation id="6621391692573306628">Ak chcete túto kartu odoslať do iného zariadenia, prihláste v oboch zariadeniach do Chromu</translation>
 <translation id="6622980291894852883">Pokračovať v blokovaní obrázkov</translation>
 <translation id="6624036901798307345">V režime tabletu klepnite na paneli s nástrojmi na tlačidlo počítadla kariet a otvorte tak nový panel kariet s miniatúrami všetkých kariet.</translation>
@@ -6428,6 +6430,7 @@
 <translation id="6818547713623251698">Zobrazujte si fotky, médiá, upozornenia a aplikácie svojho telefónu</translation>
 <translation id="6818802132960437751">Integrovaná antivírusová ochrana</translation>
 <translation id="6818920801736417483">Chcete ukladať heslá?</translation>
+<translation id="6820079682647046800">Overenie Kerberos sa nepodarilo</translation>
 <translation id="6823174134746916417">Kliknutie klepnutím na touchpade</translation>
 <translation id="6824564591481349393">Kopírovať &amp;e-mailovú adresu</translation>
 <translation id="6824584962142919697">&amp;Skontrolovať prvky</translation>
@@ -6582,6 +6585,7 @@
 <translation id="6955698182324067397">Aktivujete funkcie ladenia systému Chrome OS, ktoré nastavia program sshd deamon a umožnia spúšťanie z kľúčov USB.</translation>
 <translation id="6955893174999506273">Prideliť jeden ďalší prepínač</translation>
 <translation id="6957044667612803194">Tento bezpečnostný kľúč nepodporuje kódy PIN</translation>
+<translation id="6960133692707095572">Navštíviť bez tiketu</translation>
 <translation id="6960507406838246615">Vyžaduje sa aktualizácia systému Linux</translation>
 <translation id="6960648667961844909">Súbory s balíkmi reči <ph name="LANGUAGE" /> sa nepodarilo stiahnuť. K pokusu o stiahnutie dôjde neskôr. Než sa sťahovanie dokončí, reč sa odosiela na spracovanie Googlu.</translation>
 <translation id="696103774840402661">Všetky súbory a miestne údaje všetkých používateľov v tomto zariadení <ph name="DEVICE_TYPE" /> boli natrvalo odstránené.</translation>
@@ -7305,7 +7309,7 @@
 <translation id="7635711411613274199">To, či sa vám pri prehliadaní zobrazí prispôsobená reklama, závisí od <ph name="BEGIN_LINK1" />tém reklamy<ph name="LINK_END1" />, vašich <ph name="BEGIN_LINK2" />nastavení súborov cookie<ph name="LINK_END2" /> a od toho, či prehliadaný web prispôsobuje reklamy</translation>
 <translation id="7636919061354591437">Nainštalovať v tomto zariadení</translation>
 <translation id="7637253234491814483">Klepnite na senzor odtlačkov prstov v pravom hornom rohu klávesnice vedľa vypínača. Údaje odtlačkov prstov sú uložené bezpečne a nikdy sa nedostanú mimo zariadenia <ph name="DEVICE_TYPE" />.</translation>
-<translation id="7637272932128132922">Kým bola táto karta neaktívna, šetrič pamäte uvoľnil pamäť na ďalšie úlohy. Môžete to kedykoľvek zmeniť v sekcii <ph name="SETTINGS_LINK" />.</translation>
+<translation id="7637272932128132922">Keď bola táto karta neaktívna, šetrič pamäte uvoľnil pamäť iným úlohám. Toto správanie môžete kedykoľvek zmeniť v sekcii <ph name="SETTINGS_LINK" />.</translation>
 <translation id="7637593984496473097">Na disku nie je dostatok miesta</translation>
 <translation id="7639914187072011620">Presmerovanie SAML sa nepodarilo načítať zo servera</translation>
 <translation id="764017888128728"><ph name="PASSWORD_MANAGER_BRAND" /> vás automaticky prihlási na vhodných weboch pomocou hesiel, ktoré ste si uložili.</translation>
@@ -7803,7 +7807,6 @@
 <translation id="8059417245945632445">&amp;Preskúmať zariadenia</translation>
 <translation id="8059456211585183827">Nemáte žiadne tlačiarne, ktoré môžete uložiť.</translation>
 <translation id="8061091456562007989">Zmeniť na pôvodné</translation>
-<translation id="8061965471006133016">Dodatočná ochrana hesiel a ďalších funkcií</translation>
 <translation id="8061970399284390013">Kontrola pravopisu a gramatiky</translation>
 <translation id="8061991877177392872">Zdá sa, že ste už funkciu Voice Match nastavili pomocou Asistenta v inom zariadení. Pomocou týchto predchádzajúcich záznamov bol vytvorený hlasový model v tomto zariadení.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 hárok papiera}few{{COUNT} hárky papiera}many{{COUNT} hárka papiera}other{{COUNT} hárkov papiera}}</translation>
@@ -8044,6 +8047,7 @@
 <translation id="8272443605911821513">Ak chcete spravovať rozšírenia, kliknite v ponuke Ďalšie nástroje na možnosť Rozšírenia.</translation>
 <translation id="8272786333453048167">Udeliť znova</translation>
 <translation id="8273905181216423293">Stiahnuť</translation>
+<translation id="827488840488530039">Stránke, ktorú sa pokúšate navštíviť, sa nepodarilo overiť vaše tikety Kerberos</translation>
 <translation id="8274921654076766238">Lupa sleduje výber klávesnice</translation>
 <translation id="8274924778568117936">V priebehu aktualizácie zariadenie <ph name="DEVICE_TYPE" /> nevypínajte ani nezatvárajte. Po dokončení inštalácie sa <ph name="DEVICE_TYPE" /> reštartuje.</translation>
 <translation id="8275038454117074363">Importovať</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 7995de32..e224819 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -4291,6 +4291,7 @@
 <translation id="4824037980212326045">Varnostno kopiranje in obnova v Linuxu</translation>
 <translation id="4824958205181053313">Želite preklicati sinhronizacijo?</translation>
 <translation id="4825532258163983651">Gesla ni mogoče izbrisati.</translation>
+<translation id="4827283332383516812">Izbrišite kartico</translation>
 <translation id="4827675678516992122">Povezava ni mogoča</translation>
 <translation id="4827784381479890589">Izboljšano preverjanje črkovanja v brskalniku Chrome (besedilo je poslano Googlu, ki zagotovi predloge za črkovanje)</translation>
 <translation id="4827904420700932487">Ustvari kodo QR za to sliko</translation>
@@ -4466,7 +4467,6 @@
 <translation id="4977942889532008999">Potrditev dostopa</translation>
 <translation id="4980805016576257426">Ta razširitev vsebuje zlonamerno programsko opremo.</translation>
 <translation id="4981449534399733132">Če želite izbrisati podatke brskanja iz vseh sinhroniziranih naprav in Google Računa, <ph name="BEGIN_LINK" />se prijavite<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">V poljubni napravi nadaljujte, kjer ste končali.</translation>
 <translation id="4986706507552097681">V nastavitvah lahko kadar koli izberete, kaj želite sinhronizirati. Google lahko prilagodi Iskanje Google in druge storitve glede na vašo zgodovino.</translation>
 <translation id="4986728572522335985">S tem bodo izbrisani vsi podatki na varnostnem ključu, vključno z njegovo kodo PIN</translation>
 <translation id="4988526792673242964">Strani</translation>
@@ -4583,7 +4583,6 @@
 <translation id="5097349930204431044">Spletna mesta, ki jih obiščete, lahko določijo, kaj vam je všeč, in vam med nadaljevanjem brskanja nato predlagajo oglase.</translation>
 <translation id="5097649414558628673">Orodje: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Samodejni klik, ko se kazalec ustavi</translation>
-<translation id="5101683448725092498">Varnostno kopirajte svoje podatke</translation>
 <translation id="5101839224773798795">Samodejni klik, ko se kazalec ustavi</translation>
 <translation id="5106350808162641062">Odstrani</translation>
 <translation id="510695978163689362">Račun <ph name="USER_EMAIL" /> se nadzira s storitvijo Family Link. Dodate lahko šolske račune za dostop do šolskih virov s starševskim nadzorom.</translation>
@@ -5151,7 +5150,6 @@
 <translation id="5623842676595125836">Dnevnik</translation>
 <translation id="5624120631404540903">Upravljanje gesel</translation>
 <translation id="5625225435499354052">Uredi v Googlu Pay</translation>
-<translation id="5625631605902707678">V različnih napravah</translation>
 <translation id="5626134646977739690">Ime:</translation>
 <translation id="5627086634964711283">Določa tudi, katera stran je prikazana, ko kliknete gumb za domačo stran.</translation>
 <translation id="5627676517703583263">Pametno brskanje s Chromom</translation>
@@ -5263,7 +5261,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Ti podatki ali vaša naprava niso skladni z nekaterimi varnostnimi pravilniki organizacije. Pri skrbniku preverite, kaj je treba popraviti.}=1{Ta datoteka ali vaša naprava ni skladna z nekaterimi varnostnimi pravilniki organizacije. Pri skrbniku preverite, kaj je treba popraviti.}one{Te datoteke niso skladne z nekaterimi varnostnimi pravilniki organizacije. Pri skrbniku preverite, kaj je treba popraviti.}two{Te datoteke niso skladne z nekaterimi varnostnimi pravilniki organizacije. Pri skrbniku preverite, kaj je treba popraviti.}few{Te datoteke niso skladne z nekaterimi varnostnimi pravilniki organizacije. Pri skrbniku preverite, kaj je treba popraviti.}other{Te datoteke niso skladne z nekaterimi varnostnimi pravilniki organizacije. Pri skrbniku preverite, kaj je treba popraviti.}}</translation>
 <translation id="5736796278325406685">Vnesite veljavno uporabniško ime</translation>
 <translation id="5738093759615225354">Za prijavo v računalnik potrebujete to geslo.</translation>
-<translation id="5738329404678738022">Shranite zaznamke in drugo z uporabo sinhronizacije</translation>
 <translation id="5739017626473506901">Prijavite se, če želite uporabniku <ph name="USER_NAME" /> pomagati dodati šolski račun</translation>
 <translation id="5739235828260127894">Čakanje na potrditev. <ph name="LINK_BEGIN" />Več o tem<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Zelo velika</translation>
@@ -5285,7 +5282,6 @@
 <translation id="5757375109985023827">Izberite zavihek za predogled</translation>
 <translation id="5758631781033351321">Tukaj bo prikazan seznam za branje</translation>
 <translation id="5759728514498647443">Dokumente, ki jih pošljete v tiskanje v aplikaciji <ph name="APP_NAME" />, lahko prebere aplikacija <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Prijavite se za več ugodnosti</translation>
 <translation id="5762787084360227629">Vnesite podatke o računu Google</translation>
 <translation id="5763751966069581670">Najdena ni bila nobena naprava USB</translation>
 <translation id="5764483294734785780">Shr&amp;ani zvočni posnetek kot ...</translation>
@@ -5321,6 +5317,7 @@
 <translation id="5792295754950501287">Več dejanj za <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Dotaknite se gumba za vklop</translation>
 <translation id="5792874008054171483">Več dejanj za <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">To plačilno sredstvo bo izbrisano iz te naprave.</translation>
 <translation id="5793339252089865437">Če prenesete posodobitev v mobilnem omrežju, lahko pri tem nastanejo presežni stroški.</translation>
 <translation id="5793420564274426163">Potrditev seznanitve</translation>
 <translation id="5793430094159150686">Geslo je spremenjeno. Če želite obnoviti lokalne podatke, morate vnesti staro geslo.</translation>
@@ -7305,6 +7302,7 @@
 <translation id="7609148976235050828">Vzpostavite povezavo z internetom in poskusite znova.</translation>
 <translation id="7612401678989660900">Omogočanje dostopa za aplikacije in spletna mesta z dovoljenjem za mikrofon.</translation>
 <translation id="7612655942094160088">Omogočanje funkcij povezanega telefona.</translation>
+<translation id="7612989789287281429">Prijavljamo vas …</translation>
 <translation id="7614260613810441905">Vprašaj, ko želi spletno mesto urediti datoteke ali mape v vaši napravi (priporočeno)</translation>
 <translation id="761530003705945209">Varnostno kopiranje v Google Drive. Kadar koli lahko preprosto obnovite podatke v napravi ali zamenjate napravo z drugo. Varnostne kopije vključujejo podatke aplikacij. Varnostne kopije so naložene v Google in šifrirane z geslom za račun Google.</translation>
 <translation id="7615365294369022248">Pri dodajanju računa je prišlo do napake</translation>
@@ -7834,7 +7832,6 @@
 <translation id="8059417245945632445">&amp;Pregled naprav</translation>
 <translation id="8059456211585183827">Ni tiskalnikov za shranjevanje.</translation>
 <translation id="8061091456562007989">Razveljavi spremembo</translation>
-<translation id="8061965471006133016">Dodatna zaščita za gesla in drugo</translation>
 <translation id="8061970399284390013">Preverjanje črkovanja in slovnice</translation>
 <translation id="8061991877177392872">Videti je, da ste Voice Match s Pomočnikom že nastavili v drugi napravi. Te prejšnje posnetke je mogoče uporabiti za ustvarjanje glasovnega modela v tej napravi.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 list papirja}one{{COUNT} list papirja}two{{COUNT} lista papirja}few{{COUNT} listi papirja}other{{COUNT} listov papirja}}</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index bd73067..ae0efbf 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -377,6 +377,7 @@
 <translation id="1339009753652684748">Hap "Asistentin" kur thua "Ok Google". Për të kursyer baterinë, zgjidh "Aktive (rekomandohet)". "Asistenti" yt do të përgjigjet vetëm kur pajisja jote të jetë e lidhur ose në karikim.</translation>
 <translation id="13392265090583506">Qasshmëria</translation>
 <translation id="1340527397989195812">Rezervo median nga pajisja duke përdorur aplikacionin "Skedarët".</translation>
+<translation id="1341701348342335220">Shumë mirë!</translation>
 <translation id="1341871421050612057">Nuk mund të sinkronizohet me <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Jepu autorizim aplikacioneve të Linux që të kenë qasje në pajisjet USB. Linux nuk do ta kujtojë një pajisje USB pasi ajo të hiqet.</translation>
 <translation id="1343920184519992513">Vazhdo aty ku e ke lënë dhe hap një grup specifik faqesh</translation>
@@ -3622,6 +3623,7 @@
 <translation id="4232375817808480934">Konfiguro Kerberos</translation>
 <translation id="4235965441080806197">Anulo identifikimin</translation>
 <translation id="4236163961381003811">Zbulo më shumë shtesa</translation>
+<translation id="4237282663517880406">Shfaq sugjerimet e "Diskut të Google"</translation>
 <translation id="4241182343707213132">Rinise për të përditësuar aplikacionet e organizatës</translation>
 <translation id="4242145785130247982">Nuk mbështeten shumë certifikata të klientëve</translation>
 <translation id="4242533952199664413">Hap cilësimet</translation>
@@ -4437,7 +4439,6 @@
 <translation id="4977942889532008999">Konfirmo qasjen</translation>
 <translation id="4980805016576257426">Kjo shtesë përmban një softuer keqdashës.</translation>
 <translation id="4981449534399733132">Për të pastruar të dhënat e shfletimit nga të gjitha pajisjet e tua të sinkronizuara dhe nga "Llogaria e Google", <ph name="BEGIN_LINK" />identifikohu<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Vazhdo aty ku e ke lënë në çdo pajisje</translation>
 <translation id="4986706507552097681">Mund të zgjedhësh gjithmonë se çfarë do të sinkronizosh te cilësimet. Google mund t'i personalizojë "Kërko" dhe shërbimet e tjera bazuar në historikun tënd.</translation>
 <translation id="4986728572522335985">Kjo do të fshijë të gjitha të dhënat në çelësin e sigurisë, duke përfshirë kodin e tij PIN</translation>
 <translation id="4988526792673242964">Faqet</translation>
@@ -4554,7 +4555,6 @@
 <translation id="5097349930204431044">Sajtet që viziton mund të përcaktojnë se çfarë të pëlqen dhe më pas të sugjerojnë reklama ndërkohë që ti vazhdon të shfletosh</translation>
 <translation id="5097649414558628673">Vegla: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Kliko automatikisht kur të ndalojë kursori</translation>
-<translation id="5101683448725092498">Rezervo gjërat e tua</translation>
 <translation id="5101839224773798795">Kliko automatikisht kur kursori ndalon</translation>
 <translation id="5106350808162641062">Hiq</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> mbikëqyret nga Family Link. Mund të shtosh llogari të shkollës për të pasur qasje te burimet e shkollës me mbikëqyrjen e prindërve.</translation>
@@ -5120,7 +5120,6 @@
 <translation id="5623842676595125836">Ditari</translation>
 <translation id="5624120631404540903">Menaxho fjalëkalimet</translation>
 <translation id="5625225435499354052">Modifiko në Google Pay</translation>
-<translation id="5625631605902707678">Mes pajisjeve</translation>
 <translation id="5626134646977739690">Emri:</translation>
 <translation id="5627086634964711283">Kontrollon po ashtu se cila faqe shfaqet kur klikon te butoni "Kreu".</translation>
 <translation id="5627676517703583263">Shfleto në mënyrë inteligjente me Chrome</translation>
@@ -5232,7 +5231,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Pajisja jote ose këto të dhëna nuk respektojnë disa nga politikat e sigurisë të organizatës sate. Kontakto me administratorin për gjërat që duhet të rregullohen.}=1{Ky skedar ose pajisja jote nuk respekton disa nga politikat e sigurisë të organizatës sate. Kontakto me administratorin për gjërat që duhet të rregullohen.}other{Këta skedarë nuk respektojnë disa nga politikat e sigurisë të organizatës sate. Kontakto me administratorin për gjërat që duhet të rregullohen.}}</translation>
 <translation id="5736796278325406685">Fut një emër të vlefshëm përdoruesi</translation>
 <translation id="5738093759615225354">Të duhet ky çelës kalimi për t'u identifikuar në kompjuterin tënd</translation>
-<translation id="5738329404678738022">Ruaj faqeshënuesit dhe më shumë me sinkronizimin</translation>
 <translation id="5739017626473506901">Identifikohu për të ndihmuar që <ph name="USER_NAME" /> të shtojë një llogari të shkollës</translation>
 <translation id="5739235828260127894">Në pritje të verifikimit. <ph name="LINK_BEGIN" />Mëso më shumë<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Shumë të mëdha</translation>
@@ -5254,7 +5252,6 @@
 <translation id="5757375109985023827">Zgjidh një skedë për ta shikuar paraprakisht</translation>
 <translation id="5758631781033351321">Këtu do të gjesh listën tënde të leximit</translation>
 <translation id="5759728514498647443">Dokumentet që dërgon për printim nëpërmjet <ph name="APP_NAME" /> mund të lexohen nga <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Identifikohu për më shumë përfitime</translation>
 <translation id="5762787084360227629">Fut të dhënat e "Llogarisë së Google"</translation>
 <translation id="5763751966069581670">Nuk u gjet asnjë pajisje USB</translation>
 <translation id="5764483294734785780">Ru&amp;aje audion si...</translation>
@@ -7791,7 +7788,6 @@
 <translation id="8059417245945632445">&amp;Inspekto pajisjet</translation>
 <translation id="8059456211585183827">Nuk disponohen printerë për ruajtje.</translation>
 <translation id="8061091456562007989">Ndryshoje përsëri</translation>
-<translation id="8061965471006133016">Më shumë mbrojtje për fjalëkalimet e tua etj.</translation>
 <translation id="8061970399284390013">Kontrolli drejtshkrimor dhe gramatikor</translation>
 <translation id="8061991877177392872">Me sa duket e ke konfiguruar tashmë Voice Match me "Asistentin" tënd në një pajisje tjetër. Këto regjistrime të mëparshme janë përdorur për të krijuar një model zanor në këtë pajisje.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 fletë letre}other{{COUNT} fletë letre}}</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index d77e537..fcb349e 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation>
 <translation id="1059944192885972544">Pronađenih kartica za „<ph name="SEARCH_TEXT" />“: <ph name="NUM" /></translation>
 <translation id="1060292118287751956">Određuje učestalost ažuriranja ekrana</translation>
+<translation id="1060570945511946595">Upravljaj kartama</translation>
 <translation id="1061130374843955397">Dobro došli na uređaj <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Napravi QR kôd za ovaj link</translation>
 <translation id="1061904396131502319">Skoro je vreme za pauzu</translation>
@@ -1113,6 +1114,7 @@
 <translation id="1975841812214822307">Ukloni...</translation>
 <translation id="1976150099241323601">Prijava na bezbednosni uređaj</translation>
 <translation id="1977965994116744507">Približite telefon da biste otključali <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Uklonite Bruschetta-u</translation>
 <translation id="1979095679518582070">Isključivanje ove funkcije ne utiče na mogućnost ovog uređaja da šalje informacije potrebne za osnovne usluge, na primer, ažuriranja sistema i bezbednost.</translation>
 <translation id="1979280758666859181">Prelazite na kanal sa starijom verzijom <ph name="PRODUCT_NAME" />-a. Promena kanala će se primeniti kada se verzija kanala bude podudarala sa verzijom koja je trenutno instalirana na uređaju.</translation>
 <translation id="197989455406964291">KDC ne podržava tip šifrovanja</translation>
@@ -1621,6 +1623,7 @@
 <translation id="2408018932941436077">Kartica se čuva</translation>
 <translation id="2408955596600435184">Unesite PIN</translation>
 <translation id="2409268599591722235">Idemo</translation>
+<translation id="2409709393952490731">Koristite telefon ili tablet</translation>
 <translation id="2410079346590497630">Detalji o verziji</translation>
 <translation id="2410298923485357543">Koristi prirodan glas kad je uređaj onlajn</translation>
 <translation id="2410754283952462441">Izaberite nalog</translation>
@@ -1916,6 +1919,7 @@
 <translation id="2672142220933875349">crx datoteka je oštećena. Otpakivanje nije uspelo.</translation>
 <translation id="2673135533890720193">Čitanje vaše istorije pregledanja</translation>
 <translation id="2674764818721168631">Isključeno</translation>
+<translation id="2675570801872027281">Greška pri uklanjanju Bruschetta-e. Probajte ponovo.</translation>
 <translation id="2676492189600898281">Pošalji povratne informacije za automatsko popunjavanje</translation>
 <translation id="2678063897982469759">Ponovo omogući</translation>
 <translation id="2678100101831051676">Prebacivanje nije uspelo.</translation>
@@ -2914,6 +2918,7 @@
 <translation id="3593965109698325041">Ograničenja naziva sertifikata </translation>
 <translation id="3596012367874587041">Podešavanja aplikacije</translation>
 <translation id="3596414637720633074">Blokira kolačiće trećih strana u režimu bez arhiviranja</translation>
+<translation id="3598010454707842106">Kliknite na Prilagodite Chrome</translation>
 <translation id="3599221874935822507">Ispupčeno</translation>
 <translation id="3600051066689725006">Informacije o veb-zahtevu</translation>
 <translation id="360180734785106144">da nudi nove funkcije kada postanu dostupne</translation>
@@ -3767,6 +3772,7 @@
 <translation id="4369215744064167350">Zahtev za veb-sajt je odobren</translation>
 <translation id="4369735607080757018">Ograničeni tipovi podataka, kao što je doba dana kada vam je neki oglas prikazan, dele se između sajtova radi merenja učinka oglasa</translation>
 <translation id="4370975561335139969">Imejl i lozinka koje ste uneli se ne podudaraju</translation>
+<translation id="4374805630006466253">Koristite drugi telefon ili tablet</translation>
 <translation id="4374831787438678295">Linux program za instalaciju</translation>
 <translation id="4375035964737468845">Otvaranje preuzetih datoteka</translation>
 <translation id="4376226992615520204">Lokacija je isključena</translation>
@@ -3911,6 +3917,7 @@
 <translation id="4495419450179050807">Ne prikazuj na ovoj stranici</translation>
 <translation id="4497145443434063861">Računar i Chromecast na različitim WiFi mrežama (npr. 2,4 GHz i 5 GHz)</translation>
 <translation id="4500114933761911433">Dodatna komponenta <ph name="PLUGIN_NAME" /> je otkazala</translation>
+<translation id="4500647907053779331">&amp;Prevedi izbor na jezik <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Ikona uzvičnika</translation>
 <translation id="4501530680793980440">Potvrda uklanjanja</translation>
 <translation id="4502423230170890588">Ukloni sa ovog uređaja</translation>
@@ -4265,6 +4272,7 @@
 <translation id="4824037980212326045">Linux rezervne kopije i vraćanje</translation>
 <translation id="4824958205181053313">Želite li da otkažete sinhronizaciju?</translation>
 <translation id="4825532258163983651">Brisanje pristupnog koda nije uspelo</translation>
+<translation id="4827283332383516812">Izbrišite karticu</translation>
 <translation id="4827675678516992122">Povezivanje nije uspelo</translation>
 <translation id="4827784381479890589">Poboljšana provera pravopisa u pregledaču Chrome (tekst se šalje Google-u da biste dobijali predloge za pravopis)</translation>
 <translation id="4827904420700932487">Napravi QR kôd za ovu sliku</translation>
@@ -4440,7 +4448,6 @@
 <translation id="4977942889532008999">Potvrdite pristup</translation>
 <translation id="4980805016576257426">Ovaj dodatak sadrži malver.</translation>
 <translation id="4981449534399733132">Da biste obrisali podatke pregledanja sa svih sinhronizovanih uređaja i sa Google naloga, <ph name="BEGIN_LINK" />prijavite se<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Nastavite tamo gde ste stali na bilo kom uređaju</translation>
 <translation id="4986706507552097681">Uvek možete da odaberete šta ćete sinhronizovati u podešavanjima. Google može da personalizuje Pretragu i druge usluge na osnovu istorije.</translation>
 <translation id="4986728572522335985">Time ćete izbrisati sve podatke sa bezbednosnog ključa, uključujući njegov PIN</translation>
 <translation id="4988526792673242964">Stranice</translation>
@@ -4557,7 +4564,6 @@
 <translation id="5097349930204431044">Sajtovi koje posećujete mogu da odrede šta vam se sviđa, a zatim da vam predlažu oglase dok i dalje pregledate sadržaj</translation>
 <translation id="5097649414558628673">Alatka: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automatski klik kad se kursor zaustavi</translation>
-<translation id="5101683448725092498">Pravite rezervne kopije sadržaja</translation>
 <translation id="5101839224773798795">Automatski klikni kada se kursor zaustavi</translation>
 <translation id="5106350808162641062">Ukloni</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> je pod Family Link nadzorom. Možeš da dodaš školske naloge za pristup školskim resursima uz roditeljski nadzor.</translation>
@@ -5123,7 +5129,6 @@
 <translation id="5623842676595125836">Evidencija</translation>
 <translation id="5624120631404540903">Upravljaj lozinkama</translation>
 <translation id="5625225435499354052">Izmenite u Google Pay-u</translation>
-<translation id="5625631605902707678">Na različitim uređajima</translation>
 <translation id="5626134646977739690">Ime:</translation>
 <translation id="5627086634964711283">Kontroliše i stranicu koja se prikazuje kada kliknete na dugme Početak.</translation>
 <translation id="5627676517703583263">Pametno pregledajte uz Chrome</translation>
@@ -5235,7 +5240,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Ovi podaci ili uređaj nisu u skladu sa nekim bezbednosnim smernicama organizacije. Proverite sa administratorom šta treba da popravite.}=1{Ovaj fajl ili uređaj nije u skladu sa nekim bezbednosnim smernicama organizacije. Proverite sa administratorom šta treba da popravite.}one{Ovi fajlovi nisu u skladu sa nekim bezbednosnim smernicama organizacije. Proverite sa administratorom šta treba da popravite.}few{Ovi fajlovi nisu u skladu sa nekim bezbednosnim smernicama organizacije. Proverite sa administratorom šta treba da popravite.}other{Ovi fajlovi nisu u skladu sa nekim bezbednosnim smernicama organizacije. Proverite sa administratorom šta treba da popravite.}}</translation>
 <translation id="5736796278325406685">Unesite važeće korisničko ime</translation>
 <translation id="5738093759615225354">Treba vam ovaj pristupni kôd da biste se prijavili na računar</translation>
-<translation id="5738329404678738022">Čuvajte obeleživače i drugo uz sinhronizaciju</translation>
 <translation id="5739017626473506901">Prijavite se i omogućite da <ph name="USER_NAME" /> doda školski nalog</translation>
 <translation id="5739235828260127894">Čeka se verifikacija. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Jako veliki</translation>
@@ -5257,7 +5261,6 @@
 <translation id="5757375109985023827">Izaberite karticu radi pregleda.</translation>
 <translation id="5758631781033351321">Ovde ćete pronaći listu za čitanje</translation>
 <translation id="5759728514498647443">Dokumente koje šaljete na štampanje preko <ph name="APP_NAME" /> može da čita <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Prijavite se za još prednosti</translation>
 <translation id="5762787084360227629">Unesite informacije o Google nalogu</translation>
 <translation id="5763751966069581670">Nije pronađen nijedan USB uređaj</translation>
 <translation id="5764483294734785780">Sa&amp;čuvaj audio snimak kao...</translation>
@@ -5293,6 +5296,7 @@
 <translation id="5792295754950501287">Još radnji za: <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Dodirnite dugme za uključivanje</translation>
 <translation id="5792874008054171483">Još radnji za <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Ovaj način plaćanja će biti izbrisan sa ovog uređaja</translation>
 <translation id="5793339252089865437">Ako preuzmete ažuriranje preko mobilne mreže, to može da izazove troškove prekoračenja.</translation>
 <translation id="5793420564274426163">Potvrda uparivanja</translation>
 <translation id="5793430094159150686">Lozinka je promenjena. Da biste vratili lokalne podatke, morate da unesete staru lozinku.</translation>
@@ -5728,6 +5732,7 @@
 <translation id="617213288191670920">Nije dodat nijedan jezik</translation>
 <translation id="6173623053897475761">Ponovo unesite PIN</translation>
 <translation id="6175314957787328458">GUID Microsoft domena</translation>
+<translation id="6177412385419165772">Uklanja se…</translation>
 <translation id="6178664161104547336">Izbor sertifikata</translation>
 <translation id="6178682841350631965">Podaci za prijavljivanje su ažurirani</translation>
 <translation id="6180510783007738939">Alatka za linije</translation>
@@ -6208,6 +6213,7 @@
 <translation id="6619801788773578757">Dodajte kiosk aplikaciju</translation>
 <translation id="6619990499523117484">Potvrdite PIN</translation>
 <translation id="6620254580880484313">Naziv kontejnera</translation>
+<translation id="6620927550847360014">Želite da uklonite Bruschetta-u sa uređaja <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Da biste poslali ovu karticu na drugi uređaj, prijavite se u Chrome na oba uređaja</translation>
 <translation id="6622980291894852883">Nastavi blokiranje slika</translation>
 <translation id="6624036901798307345">U režimu tableta dodirnite dugme brojača kartica na traci s alatkama da biste otvorili novu traku sa karticama koja prikazuje sličice svake kartice.</translation>
@@ -6425,6 +6431,7 @@
 <translation id="6818547713623251698">Pregledajte slike, medijski sadržaj, obaveštenja i aplikacije sa telefona</translation>
 <translation id="6818802132960437751">Ugrađena zaštita od virusa</translation>
 <translation id="6818920801736417483">Želite da sačuvate lozinke?</translation>
+<translation id="6820079682647046800">Kerberos potvrda identiteta nije uspela</translation>
 <translation id="6823174134746916417">Dodirni za klik na tačpedu</translation>
 <translation id="6824564591481349393">Kopiraj imejl adresu</translation>
 <translation id="6824584962142919697">&amp;Proveri elemente</translation>
@@ -6579,6 +6586,7 @@
 <translation id="6955698182324067397">Omogućavate Chrome OS funkcije za otklanjanje grešaka koje će podesiti sshd daemon i omogućiti uključivanje sa USB diskova.</translation>
 <translation id="6955893174999506273">Dodeli još 1 prekidač</translation>
 <translation id="6957044667612803194">Ovaj bezbednosni ključ ne podržava PIN-ove</translation>
+<translation id="6960133692707095572">Poseti bez tiketa</translation>
 <translation id="6960507406838246615">Treba da ažurirate Linux</translation>
 <translation id="6960648667961844909">Preuzimanje fajlova sa govorom na jeziku <ph name="LANGUAGE" /> nije uspelo. Probaćemo preuzimanje kasnije. Govor se šalje Google-u radi obrade dok se preuzimanje ne završi.</translation>
 <translation id="696103774840402661">Svi fajlovi i lokalni podaci za sve korisnike na ovom uređaju (<ph name="DEVICE_TYPE" />) trajno su izbrisani.</translation>
@@ -7271,6 +7279,7 @@
 <translation id="7609148976235050828">Povežite se na internet i probajte ponovo.</translation>
 <translation id="7612401678989660900">Dozvolite pristup aplikacijama i veb-sajtovima sa dozvolom za mikrofon</translation>
 <translation id="7612655942094160088">Omogućite povezane funkcije telefona.</translation>
+<translation id="7612989789287281429">Prijavljujete se…</translation>
 <translation id="7614260613810441905">Pitaj kada sajt želi da izmeni datoteke ili direktorijume na uređaju (preporučeno)</translation>
 <translation id="761530003705945209">Pravite rezervne kopije na Google disku. Lako vratite podatke ili pređite na drugi uređaj u bilo kom trenutku. Rezervna kopija obuhvata podatke aplikacija. Rezervne kopije se otpremaju na Google i šifruju pomoću lozinke za Google nalog.</translation>
 <translation id="7615365294369022248">Došlo je do greške pri dodavanju naloga</translation>
@@ -7800,7 +7809,6 @@
 <translation id="8059417245945632445">&amp;Ispitaj uređaje</translation>
 <translation id="8059456211585183827">Nema dostupnih štampača za čuvanje.</translation>
 <translation id="8061091456562007989">Poništi izmene</translation>
-<translation id="8061965471006133016">Dodatna zaštita za lozinke i drugo</translation>
 <translation id="8061970399284390013">Provera pravopisa i gramatike</translation>
 <translation id="8061991877177392872">Izgleda da ste već podesili Voice Match sa Pomoćnikom na drugom uređaju. Ovi prethodni snimci su korišćeni za pravljenje glasovnog modela na ovom uređaju.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 list papira}one{{COUNT} list papira}few{{COUNT} lista papira}other{{COUNT} listova papira}}</translation>
@@ -8041,6 +8049,7 @@
 <translation id="8272443605911821513">Upravljajte dodacima klikom na Dodaci u meniju „Još alatki“.</translation>
 <translation id="8272786333453048167">Dozvoli ponovo</translation>
 <translation id="8273905181216423293">Preuzmi</translation>
+<translation id="827488840488530039">Stranica koju pokušavate da posetite nije uspela da verifikuje Kerberos tikete</translation>
 <translation id="8274921654076766238">Lupa prati fokus tastature</translation>
 <translation id="8274924778568117936">Ne isključujte i ne zatvarajte <ph name="DEVICE_TYPE" /> dok se ažuriranje ne završi. <ph name="DEVICE_TYPE" /> će se ponovo pokrenuti kada se instalacija završi.</translation>
 <translation id="8275038454117074363">Uvezi</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index f92987c..966ce6f 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation>
 <translation id="1059944192885972544">Пронађених картица за „<ph name="SEARCH_TEXT" />“: <ph name="NUM" /></translation>
 <translation id="1060292118287751956">Одређује учесталост ажурирања екрана</translation>
+<translation id="1060570945511946595">Управљај картама</translation>
 <translation id="1061130374843955397">Добро дошли на уређај <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Направи QR кôд за овај линк</translation>
 <translation id="1061904396131502319">Скоро је време за паузу</translation>
@@ -1113,6 +1114,7 @@
 <translation id="1975841812214822307">Уклони...</translation>
 <translation id="1976150099241323601">Пријава на безбедносни уређај</translation>
 <translation id="1977965994116744507">Приближите телефон да бисте откључали <ph name="DEVICE_TYPE" />.</translation>
+<translation id="1978666928180318515">Уклоните Bruschetta-у</translation>
 <translation id="1979095679518582070">Искључивање ове функције не утиче на могућност овог уређаја да шаље информације потребне за основне услуге, на пример, ажурирања система и безбедност.</translation>
 <translation id="1979280758666859181">Прелазите на канал са старијом верзијом <ph name="PRODUCT_NAME" />-а. Промена канала ће се применити када се верзија канала буде подударала са верзијом која је тренутно инсталирана на уређају.</translation>
 <translation id="197989455406964291">KDC не подржава тип шифровања</translation>
@@ -1621,6 +1623,7 @@
 <translation id="2408018932941436077">Картица се чува</translation>
 <translation id="2408955596600435184">Унесите PIN</translation>
 <translation id="2409268599591722235">Идемо</translation>
+<translation id="2409709393952490731">Користите телефон или таблет</translation>
 <translation id="2410079346590497630">Детаљи о верзији</translation>
 <translation id="2410298923485357543">Користи природан глас кад је уређај онлајн</translation>
 <translation id="2410754283952462441">Изаберите налог</translation>
@@ -1916,6 +1919,7 @@
 <translation id="2672142220933875349">crx датотека је оштећена. Отпакивање није успело.</translation>
 <translation id="2673135533890720193">Читање ваше историје прегледања</translation>
 <translation id="2674764818721168631">Искључено</translation>
+<translation id="2675570801872027281">Грешка при уклањању Bruschetta-е. Пробајте поново.</translation>
 <translation id="2676492189600898281">Пошаљи повратне информације за аутоматско попуњавање</translation>
 <translation id="2678063897982469759">Поново омогући</translation>
 <translation id="2678100101831051676">Пребацивање није успело.</translation>
@@ -2914,6 +2918,7 @@
 <translation id="3593965109698325041">Ограничења назива сертификата </translation>
 <translation id="3596012367874587041">Подешавања апликације</translation>
 <translation id="3596414637720633074">Блокира колачиће трећих страна у режиму без архивирања</translation>
+<translation id="3598010454707842106">Кликните на Прилагодите Chrome</translation>
 <translation id="3599221874935822507">Испупчено</translation>
 <translation id="3600051066689725006">Информације о веб-захтеву</translation>
 <translation id="360180734785106144">да нуди нове функције када постану доступне</translation>
@@ -3767,6 +3772,7 @@
 <translation id="4369215744064167350">Захтев за веб-сајт је одобрен</translation>
 <translation id="4369735607080757018">Ограничени типови података, као што је доба дана када вам је неки оглас приказан, деле се између сајтова ради мерења учинка огласа</translation>
 <translation id="4370975561335139969">Имејл и лозинка које сте унели се не подударају</translation>
+<translation id="4374805630006466253">Користите други телефон или таблет</translation>
 <translation id="4374831787438678295">Linux програм за инсталацију</translation>
 <translation id="4375035964737468845">Отварање преузетих датотека</translation>
 <translation id="4376226992615520204">Локација је искључена</translation>
@@ -3911,6 +3917,7 @@
 <translation id="4495419450179050807">Не приказуј на овој страници</translation>
 <translation id="4497145443434063861">Рачунар и Chromecast на различитим WiFi мрежама (нпр. 2,4 GHz и 5 GHz)</translation>
 <translation id="4500114933761911433">Додатна компонента <ph name="PLUGIN_NAME" /> је отказала</translation>
+<translation id="4500647907053779331">&amp;Преведи избор на језик <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Икона узвичника</translation>
 <translation id="4501530680793980440">Потврда уклањања</translation>
 <translation id="4502423230170890588">Уклони са овог уређаја</translation>
@@ -4265,6 +4272,7 @@
 <translation id="4824037980212326045">Linux резервне копије и враћање</translation>
 <translation id="4824958205181053313">Желите ли да откажете синхронизацију?</translation>
 <translation id="4825532258163983651">Брисање приступног кода није успело</translation>
+<translation id="4827283332383516812">Избришите картицу</translation>
 <translation id="4827675678516992122">Повезивање није успело</translation>
 <translation id="4827784381479890589">Побољшана провера правописа у прегледачу Chrome (текст се шаље Google-у да бисте добијали предлоге за правопис)</translation>
 <translation id="4827904420700932487">Направи QR кôд за ову слику</translation>
@@ -4440,7 +4448,6 @@
 <translation id="4977942889532008999">Потврдите приступ</translation>
 <translation id="4980805016576257426">Овај додатак садржи малвер.</translation>
 <translation id="4981449534399733132">Да бисте обрисали податке прегледања са свих синхронизованих уређаја и са Google налога, <ph name="BEGIN_LINK" />пријавите се<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Наставите тамо где сте стали на било ком уређају</translation>
 <translation id="4986706507552097681">Увек можете да одаберете шта ћете синхронизовати у подешавањима. Google може да персонализује Претрагу и друге услуге на основу историје.</translation>
 <translation id="4986728572522335985">Тиме ћете избрисати све податке са безбедносног кључа, укључујући његов PIN</translation>
 <translation id="4988526792673242964">Странице</translation>
@@ -4557,7 +4564,6 @@
 <translation id="5097349930204431044">Сајтови које посећујете могу да одреде шта вам се свиђа, а затим да вам предлажу огласе док и даље прегледате садржај</translation>
 <translation id="5097649414558628673">Алатка: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Аутоматски клик кад се курсор заустави</translation>
-<translation id="5101683448725092498">Правите резервне копије садржаја</translation>
 <translation id="5101839224773798795">Аутоматски кликни када се курсор заустави</translation>
 <translation id="5106350808162641062">Уклони</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> је под Family Link надзором. Можеш да додаш школске налоге за приступ школским ресурсима уз родитељски надзор.</translation>
@@ -5123,7 +5129,6 @@
 <translation id="5623842676595125836">Евиденција</translation>
 <translation id="5624120631404540903">Управљај лозинкама</translation>
 <translation id="5625225435499354052">Измените у Google Pay-у</translation>
-<translation id="5625631605902707678">На различитим уређајима</translation>
 <translation id="5626134646977739690">Име:</translation>
 <translation id="5627086634964711283">Контролише и страницу која се приказује када кликнете на дугме Почетак.</translation>
 <translation id="5627676517703583263">Паметно прегледајте уз Chrome</translation>
@@ -5235,7 +5240,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Ови подаци или уређај нису у складу са неким безбедносним смерницама организације. Проверите са администратором шта треба да поправите.}=1{Овај фајл или уређај није у складу са неким безбедносним смерницама организације. Проверите са администратором шта треба да поправите.}one{Ови фајлови нису у складу са неким безбедносним смерницама организације. Проверите са администратором шта треба да поправите.}few{Ови фајлови нису у складу са неким безбедносним смерницама организације. Проверите са администратором шта треба да поправите.}other{Ови фајлови нису у складу са неким безбедносним смерницама организације. Проверите са администратором шта треба да поправите.}}</translation>
 <translation id="5736796278325406685">Унесите важеће корисничко име</translation>
 <translation id="5738093759615225354">Треба вам овај приступни кôд да бисте се пријавили на рачунар</translation>
-<translation id="5738329404678738022">Чувајте обележиваче и друго уз синхронизацију</translation>
 <translation id="5739017626473506901">Пријавите се и омогућите да <ph name="USER_NAME" /> дода школски налог</translation>
 <translation id="5739235828260127894">Чека се верификација. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Јако велики</translation>
@@ -5257,7 +5261,6 @@
 <translation id="5757375109985023827">Изаберите картицу ради прегледа.</translation>
 <translation id="5758631781033351321">Овде ћете пронаћи листу за читање</translation>
 <translation id="5759728514498647443">Документе које шаљете на штампање преко <ph name="APP_NAME" /> може да чита <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Пријавите се за још предности</translation>
 <translation id="5762787084360227629">Унесите информације о Google налогу</translation>
 <translation id="5763751966069581670">Није пронађен ниједан USB уређај</translation>
 <translation id="5764483294734785780">Са&amp;чувај аудио снимак као...</translation>
@@ -5293,6 +5296,7 @@
 <translation id="5792295754950501287">Још радњи за: <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Додирните дугме за укључивање</translation>
 <translation id="5792874008054171483">Још радњи за <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Овај начин плаћања ће бити избрисан са овог уређаја</translation>
 <translation id="5793339252089865437">Ако преузмете ажурирање преко мобилне мреже, то може да изазове трошкове прекорачења.</translation>
 <translation id="5793420564274426163">Потврда упаривања</translation>
 <translation id="5793430094159150686">Лозинка је промењена. Да бисте вратили локалне податке, морате да унесете стару лозинку.</translation>
@@ -5728,6 +5732,7 @@
 <translation id="617213288191670920">Није додат ниједан језик</translation>
 <translation id="6173623053897475761">Поново унесите PIN</translation>
 <translation id="6175314957787328458">GUID Microsoft домена</translation>
+<translation id="6177412385419165772">Уклања се…</translation>
 <translation id="6178664161104547336">Избор сертификата</translation>
 <translation id="6178682841350631965">Подаци за пријављивање су ажурирани</translation>
 <translation id="6180510783007738939">Алатка за линије</translation>
@@ -6208,6 +6213,7 @@
 <translation id="6619801788773578757">Додајте киоск апликацију</translation>
 <translation id="6619990499523117484">Потврдите PIN</translation>
 <translation id="6620254580880484313">Назив контејнера</translation>
+<translation id="6620927550847360014">Желите да уклоните Bruschetta-у са уређаја <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Да бисте послали ову картицу на други уређај, пријавите се у Chrome на оба уређаја</translation>
 <translation id="6622980291894852883">Настави блокирање слика</translation>
 <translation id="6624036901798307345">У режиму таблета додирните дугме бројача картица на траци с алаткама да бисте отворили нову траку са картицама која приказује сличице сваке картице.</translation>
@@ -6425,6 +6431,7 @@
 <translation id="6818547713623251698">Прегледајте слике, медијски садржај, обавештења и апликације са телефона</translation>
 <translation id="6818802132960437751">Уграђена заштита од вируса</translation>
 <translation id="6818920801736417483">Желите да сачувате лозинке?</translation>
+<translation id="6820079682647046800">Kerberos потврда идентитета није успела</translation>
 <translation id="6823174134746916417">Додирни за клик на тачпеду</translation>
 <translation id="6824564591481349393">Копирај имејл адресу</translation>
 <translation id="6824584962142919697">&amp;Провери елементе</translation>
@@ -6579,6 +6586,7 @@
 <translation id="6955698182324067397">Омогућавате Chrome ОС функције за отклањање грешака које ће подесити sshd daemon и омогућити укључивање са USB дискова.</translation>
 <translation id="6955893174999506273">Додели још 1 прекидач</translation>
 <translation id="6957044667612803194">Овај безбедносни кључ не подржава PIN-ове</translation>
+<translation id="6960133692707095572">Посети без тикета</translation>
 <translation id="6960507406838246615">Треба да ажурирате Linux</translation>
 <translation id="6960648667961844909">Преузимање фајлова са говором на језику <ph name="LANGUAGE" /> није успело. Пробаћемо преузимање касније. Говор се шаље Google-у ради обраде док се преузимање не заврши.</translation>
 <translation id="696103774840402661">Сви фајлови и локални подаци за све кориснике на овом уређају (<ph name="DEVICE_TYPE" />) трајно су избрисани.</translation>
@@ -7271,6 +7279,7 @@
 <translation id="7609148976235050828">Повежите се на интернет и пробајте поново.</translation>
 <translation id="7612401678989660900">Дозволите приступ апликацијама и веб-сајтовима са дозволом за микрофон</translation>
 <translation id="7612655942094160088">Омогућите повезане функције телефона.</translation>
+<translation id="7612989789287281429">Пријављујете се…</translation>
 <translation id="7614260613810441905">Питај када сајт жели да измени датотеке или директоријуме на уређају (препоручено)</translation>
 <translation id="761530003705945209">Правите резервне копије на Google диску. Лако вратите податке или пређите на други уређај у било ком тренутку. Резервна копија обухвата податке апликација. Резервне копије се отпремају на Google и шифрују помоћу лозинке за Google налог.</translation>
 <translation id="7615365294369022248">Дошло је до грешке при додавању налога</translation>
@@ -7800,7 +7809,6 @@
 <translation id="8059417245945632445">&amp;Испитај уређаје</translation>
 <translation id="8059456211585183827">Нема доступних штампача за чување.</translation>
 <translation id="8061091456562007989">Поништи измене</translation>
-<translation id="8061965471006133016">Додатна заштита за лозинке и друго</translation>
 <translation id="8061970399284390013">Провера правописа и граматике</translation>
 <translation id="8061991877177392872">Изгледа да сте већ подесили Voice Match са Помоћником на другом уређају. Ови претходни снимци су коришћени за прављење гласовног модела на овом уређају.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 лист папира}one{{COUNT} лист папира}few{{COUNT} листа папира}other{{COUNT} листова папира}}</translation>
@@ -8041,6 +8049,7 @@
 <translation id="8272443605911821513">Управљајте додацима кликом на Додаци у менију „Још алатки“.</translation>
 <translation id="8272786333453048167">Дозволи поново</translation>
 <translation id="8273905181216423293">Преузми</translation>
+<translation id="827488840488530039">Страница коју покушавате да посетите није успела да верификује Kerberos тикете</translation>
 <translation id="8274921654076766238">Лупа прати фокус тастатуре</translation>
 <translation id="8274924778568117936">Не искључујте и не затварајте <ph name="DEVICE_TYPE" /> док се ажурирање не заврши. <ph name="DEVICE_TYPE" /> ће се поново покренути када се инсталација заврши.</translation>
 <translation id="8275038454117074363">Увези</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 63b78a5f..0d07da4a 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -379,6 +379,7 @@
 <translation id="1339009753652684748">Starta assistenten när du säger ”Hey Google”. Batteriet räcker längre om du väljer På (rekommenderas). Assistenten svarar bara när enheten är ansluten till ett vägguttag eller laddas.</translation>
 <translation id="13392265090583506">Tillgänglighet</translation>
 <translation id="1340527397989195812">Säkerhetskopiera media från enheten med appen Filer.</translation>
+<translation id="1341701348342335220">Bra jobbat!</translation>
 <translation id="1341871421050612057">Det gick inte att synkronisera med <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Ge Linux-appar åtkomstbehörighet till USB-enheter. När en USB-enhet tas bort sparas ingen information om den i Linux.</translation>
 <translation id="1343920184519992513">Fortsätt där du slutade och öppna en viss uppsättning sidor</translation>
@@ -1636,6 +1637,7 @@
 <translation id="2408018932941436077">Kortet sparas</translation>
 <translation id="2408955596600435184">Ange din pinkod</translation>
 <translation id="2409268599591722235">Då kör vi</translation>
+<translation id="2409709393952490731">Använd en telefon eller surfplatta</translation>
 <translation id="2410079346590497630">Versionsinformation</translation>
 <translation id="2410298923485357543">Använd en naturlig röst när enheten är online</translation>
 <translation id="2410754283952462441">Välj ett konto</translation>
@@ -3639,6 +3641,7 @@
 <translation id="4232375817808480934">Konfigurera Kerberos</translation>
 <translation id="4235965441080806197">Avbryt inloggningen</translation>
 <translation id="4236163961381003811">Upptäck fler tillägg</translation>
+<translation id="4237282663517880406">Visa förslag från Google Drive</translation>
 <translation id="4241182343707213132">Starta om för att uppdatera organisationens appar</translation>
 <translation id="4242145785130247982">Flera klientcertifikat stöds inte</translation>
 <translation id="4242533952199664413">Öppna Inställningar</translation>
@@ -3781,6 +3784,7 @@
 <translation id="4369215744064167350">Webbplatsbegäran har godkänts</translation>
 <translation id="4369735607080757018">Begränsade typer av data delas mellan webbplatser för att mäta annonsernas resultat, till exempel vilken tidpunkt en annons visades för dig</translation>
 <translation id="4370975561335139969">E-postadressen och lösenordet matchar inte</translation>
+<translation id="4374805630006466253">Använd en annan telefon eller surfplatta</translation>
 <translation id="4374831787438678295">Linux-installationsprogram</translation>
 <translation id="4375035964737468845">Öppna nedladdade filer</translation>
 <translation id="4376226992615520204">Plats har inaktiverats</translation>
@@ -3956,6 +3960,7 @@
 <translation id="4522890784888918985">Barnkonton stöds inte</translation>
 <translation id="4523876148417776526">XML-webbplatslistor har inte hämtats ännu.</translation>
 <translation id="4524832533047962394">Det angivna registreringsläget stöds inte av den här versionen av operativsystemet. Kontrollera att du har den senaste versionen.</translation>
+<translation id="4526051299161934899">Dolda sparade flikgrupper</translation>
 <translation id="4526853756266614740">Välj en bild för att tillämpa temat direkt</translation>
 <translation id="452750746583162491">Granska din synkroniserade data</translation>
 <translation id="4527929807707405172">Aktivera omvänd scrollning. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation>
@@ -4455,7 +4460,6 @@
 <translation id="4977942889532008999">Bekräfta åtkomst</translation>
 <translation id="4980805016576257426">Tillägget innehåller skadlig programvara.</translation>
 <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Logga in<ph name="END_LINK" /> om du vill rensa webbinformation från alla synkroniserade enheter och ditt Google-konto.</translation>
-<translation id="4982111327868342436">Fortsätt där du slutade på vilket enhet som helst</translation>
 <translation id="4986706507552097681">Du kan alltid välja vad som ska synkroniseras i inställningarna. Google kan anpassa Sök och andra tjänster utifrån din historik.</translation>
 <translation id="4986728572522335985">All data på säkerhetsnyckeln raderas, inklusive pinkoden</translation>
 <translation id="4988526792673242964">Sidor</translation>
@@ -4572,7 +4576,6 @@
 <translation id="5097349930204431044">Webbplatser du besöker kan identifiera vad du gillar och sedan föreslå annonser medan du fortsätter att surfa</translation>
 <translation id="5097649414558628673">Verktyg: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Klicka automatiskt när markören stannar</translation>
-<translation id="5101683448725092498">Säkerhetskopiera</translation>
 <translation id="5101839224773798795">Klicka automatiskt när pekaren stannar</translation>
 <translation id="5106350808162641062">Ta bort</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> kontrolleras via Family Link. Du kan lägga till skolkonton för att få åtkomst till skolresurser med föräldrakontroll.</translation>
@@ -5138,7 +5141,6 @@
 <translation id="5623842676595125836">Logg</translation>
 <translation id="5624120631404540903">Hantera lösenord</translation>
 <translation id="5625225435499354052">Redigera i Google Pay</translation>
-<translation id="5625631605902707678">På alla enheter</translation>
 <translation id="5626134646977739690">Namn:</translation>
 <translation id="5627086634964711283">Det styr också vilken sida som visas när du klickar på hemknappen.</translation>
 <translation id="5627676517703583263">Surfa smart med Chrome</translation>
@@ -5250,7 +5252,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Datan eller enheten efterlever inte vissa av organisationens säkerhetspolicyer. Kontakta administratören om vad som behöver åtgärdas.}=1{Filen eller enheten efterlever inte vissa av organisationens säkerhetspolicyer. Kontakta administratören om vad som behöver åtgärdas.}other{Filerna efterlever inte vissa av organisationens säkerhetspolicyer. Kontakta administratören om vad som behöver åtgärdas.}}</translation>
 <translation id="5736796278325406685">Ange ett giltigt användarnamn</translation>
 <translation id="5738093759615225354">Du behöver den här nyckeln för att logga in på datorn</translation>
-<translation id="5738329404678738022">Lagra dina bokmärken och annat med synkronisering</translation>
 <translation id="5739017626473506901">Logga in för att hjälpa <ph name="USER_NAME" /> att lägga till ett skolkonto</translation>
 <translation id="5739235828260127894">Väntar på verifiering. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Mycket stor</translation>
@@ -5272,7 +5273,6 @@
 <translation id="5757375109985023827">Välj en flik för att förhandsgranska</translation>
 <translation id="5758631781033351321">Du hittar läslistan här</translation>
 <translation id="5759728514498647443">Dokument som du skickar till utskrift via <ph name="APP_NAME" /> kan läsas av <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Logga in och få fler fördelar</translation>
 <translation id="5762787084360227629">Ange uppgifter för Google-kontot</translation>
 <translation id="5763751966069581670">Inga USB-enheter hittades</translation>
 <translation id="5764483294734785780">S&amp;para ljud som...</translation>
@@ -7811,7 +7811,6 @@
 <translation id="8059417245945632445">&amp;Inspektera enheter</translation>
 <translation id="8059456211585183827">Det finns inga skrivare att spara.</translation>
 <translation id="8061091456562007989">Ändra tillbaka</translation>
-<translation id="8061965471006133016">Extra skydd för dina lösenord med mera</translation>
 <translation id="8061970399284390013">Stavnings- och grammatikkontroll</translation>
 <translation id="8061991877177392872">Du verkar redan ha konfigurerat Voice Match med assistenten på en annan enhet. En röstmodell har skapats på den här enheten utifrån de tidigare inspelningarna.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 pappersark}other{{COUNT} pappersark}}</translation>
@@ -8498,6 +8497,7 @@
 <translation id="869884720829132584">Programmeny</translation>
 <translation id="869891660844655955">Utgångsdatum</translation>
 <translation id="8699188901396699995">PPD-fil för <ph name="PRINTER_NAME" /></translation>
+<translation id="8702278591052316269">Meny som innehåller dolda sparade flikgrupper</translation>
 <translation id="8702825062053163569">Din <ph name="DEVICE_TYPE" /> har låsts.</translation>
 <translation id="8703346390800944767">Hoppa över annons</translation>
 <translation id="8705331520020532516">Serienummer</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index be72bff..270276f 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -379,6 +379,7 @@
 <translation id="1339009753652684748">Fikia programu yako ya Mratibu unaposema "Ok Google." Ili kuokoa betri, chagua “Washa (Inapendekezwa.)” Programu yako ya Mratibu itafanya kazi tu wakati kifaa chako kimechomekwa kwenye plagi ya umeme au kinachaji.</translation>
 <translation id="13392265090583506">Ufikivu</translation>
 <translation id="1340527397989195812">Hifadhi nakala rudufu ya maudhui kutoka kwenye kifaa ukitumia programu ya Faili.</translation>
+<translation id="1341701348342335220">Vizuri sana!</translation>
 <translation id="1341871421050612057">Huwezi kusawazisha ukitumia <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Zipe programu za Linux ruhusa ya kufikia vifaa vya USB. Linux haitakumbuka kifaa cha USB baada ya kukiondoa.</translation>
 <translation id="1343920184519992513">Endelea pale ulipoishia na ufungue kurasa kadhaa mahususi.</translation>
@@ -3634,6 +3635,7 @@
 <translation id="4232375817808480934">Weka Mipangilio ya Kerberos</translation>
 <translation id="4235965441080806197">Ghairi kuingia katika akaunti</translation>
 <translation id="4236163961381003811">Gundua viendelezi zaidi</translation>
+<translation id="4237282663517880406">Onyesha mapendekezo ya Hifadhi ya Google</translation>
 <translation id="4241182343707213132">Zima kisha uwashe ili usasishe programu za shirika lako</translation>
 <translation id="4242145785130247982">Vyeti vingi vya kiteja havitumiki</translation>
 <translation id="4242533952199664413">Fungua mipangilio</translation>
@@ -4450,7 +4452,6 @@
 <translation id="4977942889532008999">Thibitisha Idhini ya kufikia</translation>
 <translation id="4980805016576257426">Kiendelezi kina programu hasidi.</translation>
 <translation id="4981449534399733132">Ili ufute data ya kuvinjari kwenye vifaa vyako vyote vilivyosawazishwa na Akaunti yako ya Google, <ph name="BEGIN_LINK" />ingia katika akaunti<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Endelea ulipoachia ukitumia kifaa chochote</translation>
 <translation id="4986706507552097681">Unaweza kuchagua unachotaka kusawazisha wakati wowote kwenye mipangilio. Google inaweza kuweka mapendeleo kwenye huduma ya Tafuta na huduma nyinginezo kulingana na historia yako.</translation>
 <translation id="4986728572522335985">Hatua hii itafuta data yote kwenye ufunguo wa usalama, ikiwa ni pamoja na PIN</translation>
 <translation id="4988526792673242964">Kurasa</translation>
@@ -4567,7 +4568,6 @@
 <translation id="5097349930204431044">Tovuti unazotembelea zinaweza kubainisha unachopenda na kisha kupendekeza matangazo kadiri unavyoendelea kuvinjari</translation>
 <translation id="5097649414558628673">Zana: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Bofya kiotomatiki kiteuzi kinaposimama</translation>
-<translation id="5101683448725092498">Hifadhi nakala ya vipengee vyako</translation>
 <translation id="5101839224773798795">Bofya kiotomatiki kiteuzi kinaposimama</translation>
 <translation id="5106350808162641062">Ondoa</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> inadhibitiwa kwa kutumia Family Link. Unaweza kuongeza akaunti za shule zitakazotumiwa kufikia nyenzo za shule kwa usimamizi wa wazazi.</translation>
@@ -5133,7 +5133,6 @@
 <translation id="5623842676595125836">Kumbukumbu</translation>
 <translation id="5624120631404540903">Dhibiti manenosiri</translation>
 <translation id="5625225435499354052">Badilisha kwenye Google Pay</translation>
-<translation id="5625631605902707678">Kwenye vifaa mbalimbali</translation>
 <translation id="5626134646977739690">Jina:</translation>
 <translation id="5627086634964711283">Pia inadhibiti ukurasa unaoonyeshwa unapobofya kitufe cha Mwanzo.</translation>
 <translation id="5627676517703583263">Vinjari kwa njia mahiri kwa kutumia Chrome</translation>
@@ -5245,7 +5244,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Data hii au kifaa chako hakitimizi baadhi ya sera za usalama. Wasiliana na msimamizi wako ili ufahamu unachotakiwa kurekebisha.}=1{Faili hii au kifaa chako hakitimizi baadhi ya sera za usalama za shirika lako. Wasiliana na msimamizi wako ili ufahamu unachotakiwa kurekebisha.}other{Faili hizi hazitimizi baadhi ya sera za usalama za shirika lako. Wasiliana na msimamizi wako ili ufahamu unachotakiwa kurekebisha.}}</translation>
 <translation id="5736796278325406685">Tafadhali andika jina sahihi la mtumiaji</translation>
 <translation id="5738093759615225354">Unahitaji nenosiri hili ili uingie katika akaunti kwenye kompyuta yako</translation>
-<translation id="5738329404678738022">Hifadhi alamisho zako na zaidi ukitumia usawazishaji</translation>
 <translation id="5739017626473506901">Ingia katika akaunti ili umsaidie <ph name="USER_NAME" /> aweke akaunti ya shuleni</translation>
 <translation id="5739235828260127894">Inasubiri uthibitishaji. <ph name="LINK_BEGIN" />Pata maelezo zaidi.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Kubwa sana</translation>
@@ -5267,7 +5265,6 @@
 <translation id="5757375109985023827">Chagua kichupo cha kukagua kwanza</translation>
 <translation id="5758631781033351321">Utapata orodha yako ya kusoma hapa</translation>
 <translation id="5759728514498647443">Hati unazotuma zichapishwe kupitia <ph name="APP_NAME" /> zinaweza kusomwa na <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Ingia katika akaunti ili upate manufaa zaidi</translation>
 <translation id="5762787084360227629">Weka maelezo ya Akaunti ya Google</translation>
 <translation id="5763751966069581670">Hakuna vifaa vya USB</translation>
 <translation id="5764483294734785780">&amp;Hifadhi audio kama</translation>
@@ -7807,7 +7804,6 @@
 <translation id="8059417245945632445">Kagua vifaa</translation>
 <translation id="8059456211585183827">Hakuna printa unazoweza kuhifadhi.</translation>
 <translation id="8061091456562007989">Ibadilishe iwe ilivyokuwa</translation>
-<translation id="8061965471006133016">Ulinzi wa ziada wa manenosiri yako na zaidi</translation>
 <translation id="8061970399284390013">Ukaguzi wa tahajia na sarufi</translation>
 <translation id="8061991877177392872">Inaonekana kuwa tayari umeweka mipangilio ya Voice Match kwa kutumia programu ya Mratibu wa Google kwenye kifaa kingine. Rekodi hizi za awali zilitumika kutengeneza muundo wa sauti kwenye kifaa hiki.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{Karatasi moja}other{Karatasi {COUNT}}}</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index f1ae52f2..a82dea63 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -379,6 +379,7 @@
 <translation id="1339009753652684748">"Ok Google" என்று சொல்லி Assistantடை அணுகலாம். பேட்டரியைச் சேமிக்க "ஆன் (பரிந்துரைக்கப்படுவது)" என்பதைத் தேர்வுசெய்யவும். உங்கள் சாதனம் பிளக் இன் செய்யப்பட்டிருக்கும்போது அல்லது சார்ஜ் செய்யப்படும்போது மட்டுமே Assistant பதிலளிக்கும்.</translation>
 <translation id="13392265090583506">A11y</translation>
 <translation id="1340527397989195812">Files ஆப்ஸைப் பயன்படுத்தி சாதனத்திலிருந்து மீடியாவைக் காப்புப்பிரதி எடுக்கவும்.</translation>
+<translation id="1341701348342335220">சிறப்பாக முடித்துவிட்டீர்கள்!</translation>
 <translation id="1341871421050612057"><ph name="USERNAME" /> கணக்கில் ஒத்திசைக்க முடியாது</translation>
 <translation id="1343865611738742294">USB சாதனங்களை அணுகுவதற்கான அனுமதியை Linux ஆப்ஸிற்கு வழங்கும். அகற்றப்பட்ட USB சாதனத்தை Linux நினைவில் வைத்திருக்காது.</translation>
 <translation id="1343920184519992513">விட்ட இடத்தில் தொடங்கி, குறிப்பிட்ட பக்கங்களின் தொகுப்பைத் திற</translation>
@@ -3639,6 +3640,7 @@
 <translation id="4232375817808480934">Kerberosஸை உள்ளமைத்தல்</translation>
 <translation id="4235965441080806197">உள்நுழைவை ரத்துசெய்</translation>
 <translation id="4236163961381003811">மேலும் நீட்டிப்புகளைக் கண்டறிக</translation>
+<translation id="4237282663517880406">Google Drive பரிந்துரைகளைக் காட்டு</translation>
 <translation id="4241182343707213132">நிறுவன ஆப்ஸைப் புதுப்பிக்க மீண்டும் தொடங்குங்கள்</translation>
 <translation id="4242145785130247982">பல்வேறு கிளையண்ட் சான்றிதழ்களைப் பயன்படுத்த இயலாது</translation>
 <translation id="4242533952199664413">அமைப்புகளைத் திற</translation>
@@ -4455,7 +4457,6 @@
 <translation id="4977942889532008999">அணுகலை உறுதிசெய்</translation>
 <translation id="4980805016576257426">இந்த நீட்டிப்பில் மால்வேர் உள்ளது.</translation>
 <translation id="4981449534399733132">உங்கள் ஒத்திசைக்கப்பட்ட சாதனங்கள் அனைத்திலிருந்தும் Google கணக்கிலிருந்தும் உலாவல் தரவை முழுமையாக அழிக்க, <ph name="BEGIN_LINK" />உள்நுழையவும்<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">எந்தச் சாதனத்திலும் எங்கிருந்து விட்டீர்களோ அங்கிருந்தே தொடரலாம்</translation>
 <translation id="4986706507552097681">எதையெல்லாம் ஒத்திசைக்க வேண்டும் என்பதை அமைப்புகளுக்குச் சென்று எப்போது வேண்டுமானாலும் தேர்வுசெய்யலாம். உங்கள் பதிவுகளின் அடிப்படையில் Search மற்றும் பிற சேவைகளை Google பிரத்தியேகமாக்கலாம்.</translation>
 <translation id="4986728572522335985">பாதுகாப்பு விசையில் சேமிக்கப்பட்டுள்ள பின் உட்பட அனைத்துத் தரவையும் இது நீக்கும்</translation>
 <translation id="4988526792673242964">பக்கங்கள்</translation>
@@ -4572,7 +4573,6 @@
 <translation id="5097349930204431044">நீங்கள் பார்வையிடும் தளங்கள் உங்கள் விருப்பத்தைத் தீர்மானித்து, தொடர்ந்து உலாவும்போது அதற்கேற்ற விளம்பரங்களைப் பரிந்துரைக்கும்</translation>
 <translation id="5097649414558628673">கருவி: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">கர்சர் நின்றவுடன் தானாகவே கிளிக் செய்</translation>
-<translation id="5101683448725092498">உங்கள் உள்ளடக்கத்தைக் காப்புப் பிரதி எடுக்கலாம்</translation>
 <translation id="5101839224773798795">கர்சர் நிற்கும் போது தானாகக் கிளிக் செய்</translation>
 <translation id="5106350808162641062">அகற்று</translation>
 <translation id="510695978163689362">Family Link மூலம் <ph name="USER_EMAIL" /> கண்காணிக்கப்படுகிறது. பள்ளி உள்ளடக்கங்களைப் பிள்ளை அணுக பெற்றோர் கண்காணிப்புடன் கூடிய பள்ளிக் கணக்குகளைச் சேர்க்கலாம்.</translation>
@@ -5139,7 +5139,6 @@
 <translation id="5623842676595125836">பதிவு</translation>
 <translation id="5624120631404540903">கடவுச்சொற்களை நிர்வகி</translation>
 <translation id="5625225435499354052">Google Payயில் திருத்துக</translation>
-<translation id="5625631605902707678">அனைத்துச் சாதனங்களிலும்</translation>
 <translation id="5626134646977739690">பெயர்:</translation>
 <translation id="5627086634964711283">முகப்புப் பட்டனைக் கிளிக் செய்யும்போது காண்பிக்கப்படும் பக்கத்தையும் இது கட்டுப்படுத்துகிறது.</translation>
 <translation id="5627676517703583263">Chromeஐப் பயன்படுத்தி, ஸ்மார்ட்டாக உலாவவும்</translation>
@@ -5251,7 +5250,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{இந்த தரவு அல்லது சாதனம் உங்கள் நிறுவனத்தின் சில பாதுகாப்புக் கொள்கைகளைப் பூர்த்தி செய்யவில்லை. இதைச் சரிசெய்ய உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.}=1{இந்த ஃபைல் அல்லது சாதனம் உங்கள் நிறுவனத்தின் சில பாதுகாப்புக் கொள்கைகளைப் பூர்த்தி செய்யவில்லை. இதைச் சரிசெய்ய உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.}other{இந்த ஃபைல்கள் உங்கள் நிறுவனத்தின் சில பாதுகாப்புக் கொள்கைகளைப் பூர்த்தி செய்யவில்லை. இதைச் சரிசெய்ய உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.}}</translation>
 <translation id="5736796278325406685">சரியான பயனர்பெயரை உள்ளிடவும்</translation>
 <translation id="5738093759615225354">உங்கள் கம்ப்யூட்டரில் உள்நுழைய இந்தக் கடவுக்குறியீடு தேவை</translation>
-<translation id="5738329404678738022">ஒத்திசைப்பதன் மூலம் உங்கள் புக்மார்க்குகளையும் இன்னும் பலவற்றையும் சேமிக்கலாம்</translation>
 <translation id="5739017626473506901">பள்ளிக் கணக்கை சேர்க்க <ph name="USER_NAME" />க்கு உதவ, உள்நுழையவும்</translation>
 <translation id="5739235828260127894">சரிபார்ப்புக்காகக் காத்திருக்கிறது. <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">மிகப் பெரியது</translation>
@@ -5273,7 +5271,6 @@
 <translation id="5757375109985023827">மாதிரிக்காட்சியைப் பார்க்க, ஒரு பக்கத்தைத் தேர்ந்தெடுக்கவும்</translation>
 <translation id="5758631781033351321">உங்கள் வாசிப்புப் பட்டியலை இங்கே பார்ப்பீர்கள்</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> மூலமாக அச்சிட அனுப்பிய ஆவணங்களை, <ph name="APP_NAME" /> படிக்க முடியும்.</translation>
-<translation id="5760508342220592715">கூடுதல் பலன்களைப் பெற உள்நுழையுங்கள்</translation>
 <translation id="5762787084360227629">Google கணக்குத் தகவலை வழங்குக</translation>
 <translation id="5763751966069581670">USB சாதனங்கள் இல்லை</translation>
 <translation id="5764483294734785780">ஆடியோவை இவ்வாறு சே&amp;மி...</translation>
@@ -7812,7 +7809,6 @@
 <translation id="8059417245945632445">&amp;சாதனங்களை ஆய்வுசெய்</translation>
 <translation id="8059456211585183827">சேமிப்பதற்குப் பிரிண்டர்கள் எதுவுமில்லை.</translation>
 <translation id="8061091456562007989">முந்தைய அமைப்புகளுக்கு மாற்று</translation>
-<translation id="8061965471006133016">உங்கள் கடவுச்சொற்கள் மற்றும் பலவற்றுக்கான கூடுதல் பாதுகாப்பு</translation>
 <translation id="8061970399284390013">எழுத்துப்பிழை &amp; இலக்கணச் சரிபார்ப்பு</translation>
 <translation id="8061991877177392872">நீங்கள் ஏற்கெனவே வேறொரு சாதனத்தில் உங்கள் Assistantடில் Voice Matchசை அமைத்துள்ளதாகத் தெரிகிறது. இந்தச் சாதனத்தில் குரல் மாதிரியை உருவாக்குவதற்காக அந்த முந்தைய பதிவுகள் பயன்படுத்தப்பட்டன.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{தாளின் ஒரு பக்கம்}other{தாளின் {COUNT} பக்கங்கள்}}</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 09141130..2247991c 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -3961,6 +3961,7 @@
 <translation id="4522890784888918985">చిన్నారుల ఖాతాలు సపోర్ట్ చేయవు</translation>
 <translation id="4523876148417776526">XML సైట్‌లిస్ట్‌లు ఇంకా ఫెచ్ చేయబడలేదు.</translation>
 <translation id="4524832533047962394">సరఫరా చేయబడిన నమోదు మోడ్‌కు ఈ ఆపరేటింగ్ సిస్టమ్ వెర్షన్‌లో మద్దతు లేదు. దయచేసి మీరు తాజా వెర్షన్‌ను ఉపయోగిస్తున్నారని నిర్ధారించుకోండి.</translation>
+<translation id="4526051299161934899">దాచబడిన సేవ్ చేయబడిన ట్యాబ్ గ్రూప్‌లు</translation>
 <translation id="4526853756266614740">రూపాన్ని ఇన్‌స్టంట్‌గా వర్తింపజేయడానికి ఇమేజ్‌ను ఎంచుకోండి</translation>
 <translation id="452750746583162491">సింక్ చేసిన మీ డేటాను రివ్యూ చేయండి</translation>
 <translation id="4527929807707405172">రివర్స్ స్క్రోలింగ్‌ను ఎనేబుల్ చేయండి. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation>
@@ -4285,6 +4286,7 @@
 <translation id="4824037980212326045">Linux బ్యాకప్ చేసి, పునరుద్ధరించడం</translation>
 <translation id="4824958205181053313">సింక్‌ను రద్దు చేయాలా?</translation>
 <translation id="4825532258163983651">పాస్-కీని తొలగించడం సాధ్యం కాదు</translation>
+<translation id="4827283332383516812">కార్డ్‌ను తొలగించండి</translation>
 <translation id="4827675678516992122">కనెక్ట్ చేయడం సాధ్యపడలేదు</translation>
 <translation id="4827784381479890589">Chrome బ్రౌజర్‌లో మెరుగుపరిచిన స్పెల్ చెక్ (స్పెల్లింగ్ సూచనల కోసం టెక్స్ట్ Googleకు పంపబడుతుంది)</translation>
 <translation id="4827904420700932487">ఈ ఇమేజ్ కోసం QR కోడ్‌ను క్రియేట్ చేయండి</translation>
@@ -4460,7 +4462,6 @@
 <translation id="4977942889532008999">యాక్సెస్‌ను నిర్ధారించండి</translation>
 <translation id="4980805016576257426">ఈ ఎక్స్‌టెన్షన్‌లో మాల్వేర్ ఉంది.</translation>
 <translation id="4981449534399733132">మీ అన్ని సింక్ చేయబడుతున్న పరికరాలతో సహా, మీ Google ఖాతా నుండి బ్రౌజింగ్ డేటాను తీసివేయడానికి, <ph name="BEGIN_LINK" />సైన్ ఇన్ చేయండి<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">ఏ పరికరంలో అయినా మీరు ఎక్కడ ఆపారో అక్కడి నుండే ప్రారంభించండి</translation>
 <translation id="4986706507552097681">ఏ సింక్ చేయాలనే దాన్ని, మీరు సెట్టింగ్‌లలో ఎప్పుడైనా ఎంచుకోవచ్చు. Google మీ హిస్టరీ ఆధారంగా సెర్చ్, ఇతర సర్వీస్‌లను వ్యక్తిగతీకరించవచ్చు.</translation>
 <translation id="4986728572522335985">ఇది 'సెక్యూరిటీ కీ'లోని మొత్తం డేటాను, అలాగే దాని పిన్‌ను తొలగిస్తుంది</translation>
 <translation id="4988526792673242964">పేజీలు</translation>
@@ -4577,7 +4578,6 @@
 <translation id="5097349930204431044">మీరు చూసే సైట్‌లు, మీకు ఏం నచ్చుతాయో నిర్ణయించి, ఆపై మీరు బ్రౌజ్ చేస్తున్నప్పుడు యాడ్‌లను సూచించగలవు</translation>
 <translation id="5097649414558628673">టూల్: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">కర్సర్ ఆగినప్పుడు ఆటోమేటిక్‌గా క్లిక్ చేయండి</translation>
-<translation id="5101683448725092498">మీ కంటెంట్‌ను బ్యాకప్ చేసుకోండి</translation>
 <translation id="5101839224773798795">కర్సర్ ఆపినప్పుడు ఆటోమేటిక్‌గా క్లిక్ అవుతుంది</translation>
 <translation id="5106350808162641062">తీసివేయండి</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> Family Link ద్వారా పర్యవేక్షించబడుతుంది. మీరు తల్లిదండ్రుల పర్యవేక్షణతో స్కూల్ రిసోర్స్‌లను యాక్సెస్ చేయడానికి స్కూల్ ఖాతాలను జోడించవచ్చు.</translation>
@@ -5143,7 +5143,6 @@
 <translation id="5623842676595125836">లాగ్</translation>
 <translation id="5624120631404540903">పాస్‌వర్డ్‌లను నిర్వహించండి</translation>
 <translation id="5625225435499354052">Google Payలో ఎడిట్ చేయండి</translation>
-<translation id="5625631605902707678">సైన్ ఇన్ చేసిన పరికరాలన్నింటిలో</translation>
 <translation id="5626134646977739690">పేరు:</translation>
 <translation id="5627086634964711283">ఇది, హోమ్ బటన్‌ను క్లిక్ చేసేటప్పుడు చూపబడే పేజీని కూడా నియంత్రిస్తుంది.</translation>
 <translation id="5627676517703583263">Chromeతో స్మార్ట్‌గా బ్రౌజ్ చేయండి</translation>
@@ -5255,7 +5254,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ఈ డేటా లేదా మీ పరికరం మీ సంస్థకు సంబంధించిన కొన్ని సెక్యూరిటీ పాలసీలకు అనుగుణంగా లేదు. ఏమి పరిష్కరించాలి అనే దాని గురించి మీ అడ్మిన్‌ను సంప్రదించండి.}=1{ఈ ఫైల్ లేదా మీ పరికరం మీ సంస్థకు సంబంధించిన కొన్ని సెక్యూరిటీ పాలసీలకు అనుగుణంగా లేదు. ఏమి పరిష్కరించాలి అనే దాని గురించి మీ అడ్మిన్‌ను సంప్రదించండి.}other{ఈ ఫైల్స్ మీ సంస్థకు సంబంధించిన కొన్ని సెక్యూరిటీ పాలసీలకు అనుగుణంగా లేదు. ఏమి పరిష్కరించాలి అనే దాని గురించి మీ అడ్మిన్‌ను సంప్రదించండి.}}</translation>
 <translation id="5736796278325406685">దయచేసి చెల్లుబాటు అయ్యే వినియోగదారు పేరును నమోదు చేయండి</translation>
 <translation id="5738093759615225354">మీ కంప్యూటర్‌లో సైన్ ఇన్ చేయడానికి మీకు ఈ పాస్-కీ అవసరం</translation>
-<translation id="5738329404678738022">సింక్‌ను ఉపయోగించి మీ బుక్‌మార్క్‌లు, మరిన్నింటిని స్టోర్ చేయండి</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> పాఠశాల ఖాతాను జోడించడంలో సహాయపడటానికి సైన్ ఇన్ చేయండి</translation>
 <translation id="5739235828260127894">ధృవీకరణ కోసం వేచి ఉంది. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">చాలా పెద్దవిగా</translation>
@@ -5277,7 +5275,6 @@
 <translation id="5757375109985023827">ప్రివ్యూ చేయడానికి ట్యాబ్‌ను ఎంచుకోండి</translation>
 <translation id="5758631781033351321">మీ చదివే అంశాల లిస్ట్‌ను ఇక్కడ చూడగలరు</translation>
 <translation id="5759728514498647443">మీరు <ph name="APP_NAME" /> ద్వారా ముద్రించడానికి పంపే డాక్యుమెంట్లు <ph name="APP_NAME" /> ద్వారా చదవబడతాయి.</translation>
-<translation id="5760508342220592715">మరిన్ని ప్రయోజనాల కోసం సైన్ ఇన్ చేయండి</translation>
 <translation id="5762787084360227629">Google ఖాతా సమాచారాన్ని ఎంటర్ చేయండి</translation>
 <translation id="5763751966069581670">USB పరికరాలు కనుగొనబడలేదు</translation>
 <translation id="5764483294734785780">ఆడియోని ఇలా సే&amp;వ్ చేయి...</translation>
@@ -5313,6 +5310,7 @@
 <translation id="5792295754950501287"><ph name="CARD_DESCRIPTION" /> కోసం మరిన్ని చర్యలు</translation>
 <translation id="5792728279623964091">దయచేసి మీ పవర్ బటన్‌పై నొక్కండి</translation>
 <translation id="5792874008054171483"><ph name="SITE_NAME" /> కోసం మరిన్ని చర్యలు</translation>
+<translation id="5793317771769868848">ఈ పరికరం నుండి ఈ పేమెంట్ ఆప్షన్ తొలగించబడుతుంది</translation>
 <translation id="5793339252089865437">మీరు మీ మొబైల్ నెట్‌వర్క్ ద్వారా అప్‌డేట్‌ని డౌన్‌లోడ్ చేసినట్లయితే, అధిక ఛార్జ్‌లు చెల్లించాల్సి రావచ్చు.</translation>
 <translation id="5793420564274426163">పెయిర్‌ను నిర్ధారిస్తోంది</translation>
 <translation id="5793430094159150686">మీ పాస్‌వర్డ్ మార్చబడింది. మీ లోకల్ డేటాను రీస్టోర్ చేయడానికి, మీరు మీ పాత పాస్‌వర్డ్‌ను ఎంటర్ చేయాలి.</translation>
@@ -7291,6 +7289,7 @@
 <translation id="7609148976235050828">దయచేసి ఇంటర్నెట్‌కి కనెక్ట్ చేసి, మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="7612401678989660900">మైక్రోఫోన్ అనుమతి ఉన్న యాప్‌లు, వెబ్‌సైట్‌లకు యాక్సెస్‌ను అనుమతించండి</translation>
 <translation id="7612655942094160088">కనెక్ట్ చేసిన ఫోన్ ఫీచర్‌లు ఎనేబుల్ చేయబడతాయి.</translation>
+<translation id="7612989789287281429">మిమ్మల్ని సైన్ ఇన్ చేస్తోంది…</translation>
 <translation id="7614260613810441905">సైట్ మీ పరికరంలో ఫైళ్లు లేదా ఫోల్డర్‌లను సవరించాలనుకున్నప్పుడు అడగండి (సిఫార్సు చేయబడింది)</translation>
 <translation id="761530003705945209">Google Driveలో బ్యాకప్ చేయండి. సులభంగా మీ డేటాను పునరుద్ధరించండి లేదా ఎప్పుడైనా పరికరాన్ని స్విచ్ చేయండి. మీ బ్యాకప్‌లో యాప్ డేటా కూడా ఉంటుంది. మీ బ్యాకప్‌లు Googleకు అప్‌లోడ్ చేయబడతాయి, మీ Google ఖాతా పాస్‌వర్డ్‌ను ఉపయోగించి ఎన్‌క్రిప్ట్ చేయబడతాయి.</translation>
 <translation id="7615365294369022248">ఖాతాను జోడించడంలో ఎర్రర్ ఏర్పడింది</translation>
@@ -7816,7 +7815,6 @@
 <translation id="8059417245945632445">&amp;పరికరాలను పర్యవేక్షించు</translation>
 <translation id="8059456211585183827">సేవ్ చేయాల్సిన ప్రింటర్‌లు ఏవీ అందుబాటులో లేవు.</translation>
 <translation id="8061091456562007989">దీనిని తిరిగి మార్చు</translation>
-<translation id="8061965471006133016">మీ పాస్‌వర్డ్‌లకు, ఇంకా మరిన్నింటికి అదనపు రక్షణ</translation>
 <translation id="8061970399284390013">అక్షరక్రమం, వ్యాకరణ చెక్</translation>
 <translation id="8061991877177392872">మీరు ఇప్పటికే మరో పరికరంలో మీ Assistantతో వాయిస్ మ్యాచ్‌ను సెటప్ చేసినట్టుగా అనిపిస్తోంది. ఈ పరికరంలో వాయిస్ నమూనాను రూపొందించడం కోసం ఈ మునుపటి రికార్డింగ్‌లు ఉపయోగించబడ్డాయి.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 పేపర్ షీట్}other{{COUNT} పేపర్ షీట్‌లు}}</translation>
@@ -8504,6 +8502,7 @@
 <translation id="869884720829132584">అప్లికేషన్‌ల మెనూ</translation>
 <translation id="869891660844655955">గడువు తేదీ</translation>
 <translation id="8699188901396699995"><ph name="PRINTER_NAME" />‌కు సంబంధించిన PPD</translation>
+<translation id="8702278591052316269">దాచబడిన సేవ్ చేయబడిన ట్యాబ్ గ్రూప్‌లను కలిగి ఉన్న మెనూ</translation>
 <translation id="8702825062053163569">మీ <ph name="DEVICE_TYPE" /> లాక్ చేయబడింది.</translation>
 <translation id="8703346390800944767">ప్రకటనను దాటవేయి</translation>
 <translation id="8705331520020532516">క్రమ సంఖ్య</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 35ffa2e..ce24149 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -4448,7 +4448,6 @@
 <translation id="4977942889532008999">ยืนยันการเข้าถึง</translation>
 <translation id="4980805016576257426">ส่วนขยายนี้มีมัลแวร์</translation>
 <translation id="4981449534399733132"><ph name="BEGIN_LINK" />ลงชื่อเข้าใช้<ph name="END_LINK" />เพื่อล้างข้อมูลการท่องเว็บในอุปกรณ์ทุกเครื่องที่ซิงค์และบัญชี Google</translation>
-<translation id="4982111327868342436">เล่นต่อจากที่ค้างไว้ในทุกอุปกรณ์</translation>
 <translation id="4986706507552097681">คุณเลือกสิ่งที่ต้องการซิงค์ได้เสมอในการตั้งค่า Google อาจปรับเปลี่ยน Search และบริการอื่นๆ ให้เหมาะกับคุณโดยอิงจากประวัติการเข้าชม</translation>
 <translation id="4986728572522335985">การดำเนินการนี้จะลบข้อมูลทั้งหมดในคีย์ความปลอดภัย รวมถึง PIN ของคีย์ด้วย</translation>
 <translation id="4988526792673242964">หน้า</translation>
@@ -4565,7 +4564,6 @@
 <translation id="5097349930204431044">เว็บไซต์ที่คุณเข้าชมจะสามารถระบุสิ่งที่คุณชอบ จากนั้นจะแนะนำโฆษณาในขณะที่คุณท่องเว็บต่อไป</translation>
 <translation id="5097649414558628673">เครื่องมือ: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">คลิกอัตโนมัติเมื่อเคอร์เซอร์หยุด</translation>
-<translation id="5101683448725092498">สำรองข้อมูล</translation>
 <translation id="5101839224773798795">คลิกอัตโนมัติเมื่อเคอร์เซอร์หยุด</translation>
 <translation id="5106350808162641062">นำออก</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> อยู่ภายใต้การควบคุมดูแลโดย Family Link คุณเพิ่มบัญชีโรงเรียนเพื่อเข้าถึงแหล่งข้อมูลของโรงเรียนด้วยการควบคุมดูแลโดยผู้ปกครองได้</translation>
@@ -5129,7 +5127,6 @@
 <translation id="5623842676595125836">บันทึก</translation>
 <translation id="5624120631404540903">จัดการรหัสผ่าน</translation>
 <translation id="5625225435499354052">แก้ไขใน Google Pay</translation>
-<translation id="5625631605902707678">ในอุปกรณ์ต่างๆ</translation>
 <translation id="5626134646977739690">ชื่อ:</translation>
 <translation id="5627086634964711283">อีกทั้งยังควบคุมหน้าที่จะแสดงเมื่อคุณคลิกปุ่ม "หน้าแรก"</translation>
 <translation id="5627676517703583263">ท่องเว็บอย่างมีประสิทธิภาพด้วย Chrome</translation>
@@ -5241,7 +5238,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{ข้อมูลนี้หรืออุปกรณ์ของคุณไม่เป็นไปตามนโยบายความปลอดภัยบางประการขององค์กร โปรดสอบถามผู้ดูแลระบบเกี่ยวกับสิ่งที่ต้องแก้ไข}=1{ไฟล์นี้หรืออุปกรณ์ของคุณไม่เป็นไปตามนโยบายความปลอดภัยบางประการขององค์กร โปรดสอบถามผู้ดูแลระบบเกี่ยวกับสิ่งที่ต้องแก้ไข}other{ไฟล์เหล่านี้ไม่เป็นไปตามนโยบายความปลอดภัยบางประการขององค์กร โปรดสอบถามผู้ดูแลระบบเกี่ยวกับสิ่งที่ต้องแก้ไข}}</translation>
 <translation id="5736796278325406685">โปรดป้อนชื่อผู้ใช้ที่ถูกต้อง</translation>
 <translation id="5738093759615225354">คุณต้องมีพาสคีย์นี้เพื่อลงชื่อเข้าใช้คอมพิวเตอร์</translation>
-<translation id="5738329404678738022">จัดเก็บบุ๊กมาร์กและอื่นๆ ด้วยการซิงค์</translation>
 <translation id="5739017626473506901">ลงชื่อเข้าใช้เพื่อช่วย <ph name="USER_NAME" /> เพิ่มบัญชีโรงเรียน</translation>
 <translation id="5739235828260127894">กำลังรอการยืนยัน <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">ใหญ่มาก</translation>
@@ -5263,7 +5259,6 @@
 <translation id="5757375109985023827">เลือกแท็บเพื่อแสดงตัวอย่าง</translation>
 <translation id="5758631781033351321">คุณจะเห็นเรื่องรออ่านที่นี่</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> สามารถอ่านเอกสารที่คุณส่งไปพิมพ์ผ่าน <ph name="APP_NAME" /> ได้</translation>
-<translation id="5760508342220592715">ลงชื่อเข้าใช้เพื่อรับประโยชน์เพิ่มเติม</translation>
 <translation id="5762787084360227629">ป้อนข้อมูลบัญชี Google</translation>
 <translation id="5763751966069581670">ไม่พบอุปกรณ์ USB</translation>
 <translation id="5764483294734785780">บั&amp;นทึกวิดีโอเป็น...</translation>
@@ -7807,7 +7802,6 @@
 <translation id="8059417245945632445">&amp;ตรวจสอบอุปกรณ์</translation>
 <translation id="8059456211585183827">ไม่มีเครื่องพิมพ์ให้บันทึก</translation>
 <translation id="8061091456562007989">เปลี่ยนกลับ</translation>
-<translation id="8061965471006133016">ยกระดับการปกป้องรหัสผ่านและข้อมูลอื่นๆ</translation>
 <translation id="8061970399284390013">ตรวจการสะกดคำและไวยากรณ์</translation>
 <translation id="8061991877177392872">ดูเหมือนว่าคุณได้ตั้งค่า Voice Match กับ Assistant ในอุปกรณ์อื่นไว้แล้ว ระบบใช้เสียงบันทึกที่มีอยู่ก่อนแล้วดังกล่าวในการสร้างรูปแบบเสียงในอุปกรณ์นี้</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 แผ่น}other{{COUNT} แผ่น}}</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 618f20f7..16ecd04 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -4444,7 +4444,6 @@
 <translation id="4977942889532008999">Erişimi Onaylayın</translation>
 <translation id="4980805016576257426">Bu uzantı kötü amaçlı yazılım içeriyor.</translation>
 <translation id="4981449534399733132">Tarama verilerini senkronize edilmiş tüm cihazlarınızdan ve Google Hesabınızdan temizlemek için <ph name="BEGIN_LINK" />oturum açın<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Herhangi bir cihazda, kaldığınız yerden devam edin</translation>
 <translation id="4986706507552097681">Neyin senkronize edileceğini istediğiniz zaman ayarlardan seçebilirsiniz. Google, geçmişinize dayalı olarak Arama'yı ve diğer hizmetleri kişiselleştirebilir.</translation>
 <translation id="4986728572522335985">Bu işlem, PIN'i de dahil olmak üzere güvenlik anahtarındaki tüm verileri silecek.</translation>
 <translation id="4988526792673242964">Sayfalar</translation>
@@ -4561,7 +4560,6 @@
 <translation id="5097349930204431044">Ziyaret ettiğiniz siteler nelerden hoşlandığınızı belirleyip siz internette gezinmeye devam ederken reklam önerebilir</translation>
 <translation id="5097649414558628673">Araç: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">İmleç durduğunda otomatik olarak tıkla</translation>
-<translation id="5101683448725092498">Bilgilerinizi yedekleyin</translation>
 <translation id="5101839224773798795">İmleç durduğunda otomatik olarak tıkla</translation>
 <translation id="5106350808162641062">Kaldır</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" />, Family Link gözetimi altında. Ebeveyn gözetimi ile okul kaynaklarına erişmek için okul hesapları ekleyebilirsiniz.</translation>
@@ -5128,7 +5126,6 @@
 <translation id="5623842676595125836">Günlük</translation>
 <translation id="5624120631404540903">Şifreleri yönet</translation>
 <translation id="5625225435499354052">Google Pay'de düzenle</translation>
-<translation id="5625631605902707678">Cihazlarda kullanabilirsiniz.</translation>
 <translation id="5626134646977739690">Adı:</translation>
 <translation id="5627086634964711283">Ayrıca, Ana Sayfa düğmesini tıkladığınızda gösterilen sayfayı denetler.</translation>
 <translation id="5627676517703583263">Chrome ile akıllıca göz atın</translation>
@@ -5240,7 +5237,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Bu veriler veya cihazınız, kuruluşunuzun güvenlik politikalarından bazılarına uymuyor. Neyin düzeltilmesi gerektiğini öğrenmek için yöneticinize danışın.}=1{Bu dosya veya cihazınız, kuruluşunuzun güvenlik politikalarından bazılarına uymuyor. Neyin düzeltilmesi gerektiğini öğrenmek için yöneticinize danışın.}other{Bu dosyalar, kuruluşunuzun güvenlik politikalarından bazılarına uymuyor. Neyin düzeltilmesi gerektiğini öğrenmek için yöneticinize danışın.}}</translation>
 <translation id="5736796278325406685">Lütfen geçerli bir kullanıcı adı girin</translation>
 <translation id="5738093759615225354">Bu şifre anahtarı, bilgisayarınızda oturum açabilmeniz için gereklidir</translation>
-<translation id="5738329404678738022">Senkronizasyon ile yer işaretlerinizi ve diğer öğeleri depolayın</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> kullanıcısının okul hesabı eklemesine yardımcı olmak için oturum açın</translation>
 <translation id="5739235828260127894">Doğrulama bekleniyor. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Çok büyük</translation>
@@ -5262,7 +5258,6 @@
 <translation id="5757375109985023827">Önizlemek için bir sekme seçin</translation>
 <translation id="5758631781033351321">Okuma listenizi burada bulabilirsiniz</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> aracılığıyla yazdırılmaları için gönderdiğiniz dokümanlar <ph name="APP_NAME" /> tarafından okunabilir.</translation>
-<translation id="5760508342220592715">Daha fazla avantaj için oturum açın</translation>
 <translation id="5762787084360227629">Google Hesabı bilgilerini gir</translation>
 <translation id="5763751966069581670">USB cihazı bulunamadı</translation>
 <translation id="5764483294734785780">Sesi farklı kay&amp;det...</translation>
@@ -7805,7 +7800,6 @@
 <translation id="8059417245945632445">&amp;Cihazları denetle</translation>
 <translation id="8059456211585183827">Kaydedilebilecek yazıcı yok.</translation>
 <translation id="8061091456562007989">Geri değiştir</translation>
-<translation id="8061965471006133016">Şifreleriniz ve diğer öğeler için ek koruma</translation>
 <translation id="8061970399284390013">Yazım ve dil bilgisi denetimi</translation>
 <translation id="8061991877177392872">Asistanınızla Voice Match'i başka bir cihazda zaten kurmuş olduğunuz anlaşılıyor. Önceki bu kayıtlar, bu cihazda bir ses modeli oluşturmak için kullanıldı.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 kağıt}other{{COUNT} kağıt}}</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 59f2a7da..995e50ed6 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transport Protocol Secure (HTTPS)</translation>
 <translation id="1059944192885972544">Знайдено стільки вкладок за запитом "<ph name="SEARCH_TEXT" />": <ph name="NUM" /></translation>
 <translation id="1060292118287751956">Визначає частоту оновлення екрана</translation>
+<translation id="1060570945511946595">Керувати квитками</translation>
 <translation id="1061130374843955397">Вас вітає пристрій <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">Створити QR-код для цього посилання</translation>
 <translation id="1061904396131502319">Невдовзі час зробити перерву</translation>
@@ -382,6 +383,7 @@
 <translation id="1339009753652684748">Активуйте Асистента командою "Ok Google". Щоб заощаджувати заряд акумулятора, виберіть опцію "Увімкнено (рекомендовано)". Асистент відповідатиме, лише коли пристрій підключений до джерела живлення або заряджається.</translation>
 <translation id="13392265090583506">Спеціальні можливості</translation>
 <translation id="1340527397989195812">Створити резервну копію медіа-вмісту з пристрою за допомогою додатка Файли.</translation>
+<translation id="1341701348342335220">Чудова робота!</translation>
 <translation id="1341871421050612057">Не вдалося виконати синхронізацію в обліковому записі <ph name="USERNAME" /></translation>
 <translation id="1343865611738742294">Надайте додаткам Linux доступ до пристроїв USB. Linux не зберігатиме дані про пристрій USB після його вилучення.</translation>
 <translation id="1343920184519992513">Продовжувати з місця зупинки та відкривати певний набір сторінок</translation>
@@ -1128,6 +1130,7 @@
 <translation id="1975841812214822307">Видалити…</translation>
 <translation id="1976150099241323601">Увійти в пристрій безпеки</translation>
 <translation id="1977965994116744507">Щоб розблокувати свій пристрій <ph name="DEVICE_TYPE" />, розташуйте телефон ближче.</translation>
+<translation id="1978666928180318515">Вилучити Bruschetta</translation>
 <translation id="1979095679518582070">Якщо вимкнути цю функцію, пристрій усе одно зможе надсилати інформацію, потрібну для отримання важливих послуг, як-от оновлень системи та засобів безпеки.</translation>
 <translation id="1979280758666859181">Ви переходите на старішу версію <ph name="PRODUCT_NAME" />. Щоб зміни набули чинності, версія на вашому пристрої та версія, яку ви встановлюєте, мають збігатися.</translation>
 <translation id="197989455406964291">KDC не підтримує тип шифрування</translation>
@@ -1934,6 +1937,7 @@
 <translation id="2672142220933875349">Неправильний файл .crx. Помилка розпакування.</translation>
 <translation id="2673135533890720193">Переглядати історію веб-перегляду</translation>
 <translation id="2674764818721168631">Вимкнено</translation>
+<translation id="2675570801872027281">Не вдалося вилучити Bruschetta. Повторіть спробу.</translation>
 <translation id="2676492189600898281">Надіслати відгук про автозаповнення</translation>
 <translation id="2678063897982469759">Знову ввімкнути</translation>
 <translation id="2678100101831051676">Не вдалося транслювати.</translation>
@@ -2932,6 +2936,7 @@
 <translation id="3593965109698325041">Обмеження імені сертифіката</translation>
 <translation id="3596012367874587041">Налаштування додатків</translation>
 <translation id="3596414637720633074">Блокувати файли cookie третіх сторін в анонімному режимі</translation>
+<translation id="3598010454707842106">Натисніть "Налаштувати Chrome"</translation>
 <translation id="3599221874935822507">Опуклий текст</translation>
 <translation id="3600051066689725006">Інформація про веб-запит</translation>
 <translation id="360180734785106144">Пропонувати нові функції, коли вони з’являються</translation>
@@ -3642,6 +3647,7 @@
 <translation id="4232375817808480934">Налаштувати Kerberos</translation>
 <translation id="4235965441080806197">Скасувати вхід</translation>
 <translation id="4236163961381003811">Більше розширень</translation>
+<translation id="4237282663517880406">Показувати підказки для Google Диска</translation>
 <translation id="4241182343707213132">Перезапустіть, щоб оновити додатки організації</translation>
 <translation id="4242145785130247982">Кілька сертифікатів клієнтів не підтримуються</translation>
 <translation id="4242533952199664413">Відкрити налаштування</translation>
@@ -3929,6 +3935,7 @@
 <translation id="4497145443434063861">ПК і Chromecast підключено до різних мереж Wi-Fi (наприклад, 2,4 ГГц
     і 5 ГГц)</translation>
 <translation id="4500114933761911433">Плагін <ph name="PLUGIN_NAME" /> аварійно завершив роботу</translation>
+<translation id="4500647907053779331">Перекласти вибраний фрагмент такою мовою: <ph name="LANGUAGE" /></translation>
 <translation id="450099669180426158">Значок знака оклику</translation>
 <translation id="4501530680793980440">Підтвердити видалення</translation>
 <translation id="4502423230170890588">Видалити з цього пристрою</translation>
@@ -4458,7 +4465,6 @@
 <translation id="4977942889532008999">Підтвердити доступ</translation>
 <translation id="4980805016576257426">Це розширення містить зловмисне програмне забезпечення.</translation>
 <translation id="4981449534399733132">Щоб очистити дані веб-перегляду на всіх синхронізованих пристроях і в обліковому записі Google, <ph name="BEGIN_LINK" />увійдіть в обліковий запис<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Продовжуйте роботу з місця, де ви зупинилися, на будь-якому пристрої</translation>
 <translation id="4986706507552097681">Ви можете будь-коли вибрати дані для синхронізації в налаштуваннях. Google може персоналізувати Пошук та інші сервіси на основі вашої історії.</translation>
 <translation id="4986728572522335985">Усі дані на ключі безпеки (зокрема, PIN-код) буде видалено</translation>
 <translation id="4988526792673242964">Сторінки</translation>
@@ -4575,7 +4581,6 @@
 <translation id="5097349930204431044">Сайти, які ви відвідуєте, можуть визначати ваші інтереси, а потім на їх основі пропонувати вам рекламу</translation>
 <translation id="5097649414558628673">Інструмент: "<ph name="PRINT_NAME" />"</translation>
 <translation id="5097874180538493929">Автоматично натискати, коли курсор перестає рухатися</translation>
-<translation id="5101683448725092498">Створіть резервну копію даних</translation>
 <translation id="5101839224773798795">Автоматично натискати, коли курсор зупиняється</translation>
 <translation id="5106350808162641062">Вилучити</translation>
 <translation id="510695978163689362">Для облікового запису <ph name="USER_EMAIL" /> налаштовано батьківський контроль у Family Link. Щоб керувати доступом до навчальних матеріалів за допомогою цієї ж функції, додайте обліковий запис закладу освіти.</translation>
@@ -5139,7 +5144,6 @@
 <translation id="5623842676595125836">Журнал</translation>
 <translation id="5624120631404540903">Керувати паролями</translation>
 <translation id="5625225435499354052">Змінити в Google Pay</translation>
-<translation id="5625631605902707678">Синхронізація пристроїв</translation>
 <translation id="5626134646977739690">Ім'я:</translation>
 <translation id="5627086634964711283">Розширення також змінило сторінку, яка відкривається під натискання кнопки "Домашня сторінка".</translation>
 <translation id="5627676517703583263">Розумний перегляд у Chrome</translation>
@@ -5251,7 +5255,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Ці дані або ваш пристрій не відповідають деяким правилам безпеки організації. Зверніться до адміністратора, щоб дізнатися, що потрібно виправити.}=1{Цей файл або ваш пристрій не відповідає деяким правилам безпеки організації. Зверніться до адміністратора, щоб дізнатися, що потрібно виправити.}one{Ці файли не відповідають деяким правилам безпеки організації. Зверніться до адміністратора, щоб дізнатися, що потрібно виправити.}few{Ці файли не відповідають деяким правилам безпеки організації. Зверніться до адміністратора, щоб дізнатися, що потрібно виправити.}many{Ці файли не відповідають деяким правилам безпеки організації. Зверніться до адміністратора, щоб дізнатися, що потрібно виправити.}other{Ці файли не відповідають деяким правилам безпеки організації. Зверніться до адміністратора, щоб дізнатися, що потрібно виправити.}}</translation>
 <translation id="5736796278325406685">Введіть дійсне ім’я користувача</translation>
 <translation id="5738093759615225354">Цей ключ доступу потрібен, щоб входити в обліковий запис на комп’ютері</translation>
-<translation id="5738329404678738022">Зберігайте закладки й інший контент завдяки синхронізації</translation>
 <translation id="5739017626473506901">Увійдіть, і тоді <ph name="USER_NAME" /> зможе додати обліковий запис закладу освіти</translation>
 <translation id="5739235828260127894">Очікується підтвердження. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Дуже великий</translation>
@@ -5273,7 +5276,6 @@
 <translation id="5757375109985023827">Виберіть вкладку для перегляду</translation>
 <translation id="5758631781033351321">Тут відображатиметься ваш список читання</translation>
 <translation id="5759728514498647443">Документи, які ви друкуєте через додаток <ph name="APP_NAME" />, може переглядати додаток <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Увійдіть в обліковий запис, щоб отримати більше переваг</translation>
 <translation id="5762787084360227629">Ввести дані облікового запису Google</translation>
 <translation id="5763751966069581670">Пристроїв USB не знайдено</translation>
 <translation id="5764483294734785780">Збере&amp;гти аудіо як...</translation>
@@ -5743,6 +5745,7 @@
 <translation id="617213288191670920">Немає мов</translation>
 <translation id="6173623053897475761">Введіть PIN-код знову</translation>
 <translation id="6175314957787328458">GUID домену Microsoft</translation>
+<translation id="6177412385419165772">Вилучення…</translation>
 <translation id="6178664161104547336">Вибір сертифіката</translation>
 <translation id="6178682841350631965">Дані для входу оновлено</translation>
 <translation id="6180510783007738939">Інструмент "Лінія"</translation>
@@ -6225,6 +6228,7 @@
 <translation id="6619801788773578757">Додати додаток для терміналів</translation>
 <translation id="6619990499523117484">Підтвердьте PIN-код</translation>
 <translation id="6620254580880484313">Назва контейнера</translation>
+<translation id="6620927550847360014">Вилучити Bruschetta з пристрою <ph name="DEVICE_TYPE" />?</translation>
 <translation id="6621391692573306628">Щоб надіслати цю вкладку на інший пристрій, увійдіть у Chrome на обох пристроях</translation>
 <translation id="6622980291894852883">Продовжити блокування зображень</translation>
 <translation id="6624036901798307345">Щоб відкрити нову панель зі зменшеним зображенням кожної вкладки, натисніть кнопку з кількістю вкладок на панелі інструментів у режимі планшета.</translation>
@@ -6442,6 +6446,7 @@
 <translation id="6818547713623251698">Переглядати фотографії, медіафайли, сповіщення й додатки на вашому телефоні</translation>
 <translation id="6818802132960437751">Вбудований захист від вірусів</translation>
 <translation id="6818920801736417483">Зберігати паролі?</translation>
+<translation id="6820079682647046800">Помилка автентифікації Kerberos</translation>
 <translation id="6823174134746916417">Функція "Торкнутися, щоб натиснути" на сенсорній панелі</translation>
 <translation id="6824564591481349393">Копіювати &amp;адресу електронної пошти</translation>
 <translation id="6824584962142919697">&amp;Перевірити елементи</translation>
@@ -6596,6 +6601,7 @@
 <translation id="6955698182324067397">Ви ввімкнули функції налагодження ОС Chrome, які встановлять daemon SSHD та ввімкнуть запуск із носіїв USB.</translation>
 <translation id="6955893174999506273">Призначити ще 1 перемикач</translation>
 <translation id="6957044667612803194">Цей ключ безпеки не підтримує PIN-коди</translation>
+<translation id="6960133692707095572">Відвідати без квитка</translation>
 <translation id="6960507406838246615">Потрібно оновити Linux</translation>
 <translation id="6960648667961844909">Не вдалося завантажити файли живих субтитрів для такої мови: <ph name="LANGUAGE" />. Спроба завантаження повториться пізніше. Доки завантаження не завершиться, мовлення надсилатиметься на сервери Google для обробки.</translation>
 <translation id="696103774840402661">Усі файли та локальні дані всіх користувачів на цьому пристрої <ph name="DEVICE_TYPE" /> видалено назавжди.</translation>
@@ -7817,7 +7823,6 @@
 <translation id="8059417245945632445">&amp;Перевірити пристрої</translation>
 <translation id="8059456211585183827">Немає принтерів, які можна зберегти.</translation>
 <translation id="8061091456562007989">Скасувати зміни</translation>
-<translation id="8061965471006133016">Додатковий захист паролів та інші переваги</translation>
 <translation id="8061970399284390013">Перевірка граматики та правопису</translation>
 <translation id="8061991877177392872">Схоже, ви вже налаштували Voice Match для Асистента на іншому пристрої. Зразок вашого голосу на цьому пристрої створено на основі попередніх записів.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 аркуш паперу}one{{COUNT} аркуш паперу}few{{COUNT} аркуші паперу}many{{COUNT} аркушів паперу}other{{COUNT} аркуша паперу}}</translation>
@@ -8058,6 +8063,7 @@
 <translation id="8272443605911821513">Керуйте своїми розширеннями, натиснувши "Розширення" в меню "Інші інструменти".</translation>
 <translation id="8272786333453048167">Дозволити знову</translation>
 <translation id="8273905181216423293">Завантажити зараз</translation>
+<translation id="827488840488530039">Не вдалося підтвердити квитки Kerberos на сторінці, яку ви намагаєтеся відвідати</translation>
 <translation id="8274921654076766238">Лупа показує елементи, вибрані через клавіатуру</translation>
 <translation id="8274924778568117936">Не вимикайте та не закривайте пристрій <ph name="DEVICE_TYPE" />, поки не завершиться оновлення. Коли встановляться оновлення, пристрій <ph name="DEVICE_TYPE" /> перезавантажиться.</translation>
 <translation id="8275038454117074363">Імпорт</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 736bfe3..e062284 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">Hypertext Transport Protocol (HTTPS)</translation>
 <translation id="1059944192885972544">'<ph name="SEARCH_TEXT" />' کیلئے <ph name="NUM" /> ٹیبز ملے</translation>
 <translation id="1060292118287751956">اس فریکوئنسی کا تعین کرتا ہے جسے اسکرین اپ ڈیٹ کرتی ہے</translation>
+<translation id="1060570945511946595">ٹکٹس کا نظم کریں</translation>
 <translation id="1061130374843955397">اپنے <ph name="DEVICE_TYPE" /> میں خوش آمدید</translation>
 <translation id="1061373870045429865">‏اس لنک کے لیے QR کوڈ تخلیق کریں</translation>
 <translation id="1061904396131502319">وقفے کا وقت تقریباً ہو گیا ہے</translation>
@@ -1114,6 +1115,7 @@
 <translation id="1975841812214822307">ہٹائیں…</translation>
 <translation id="1976150099241323601">سیکیورٹی آلہ میں سائن ان کریں</translation>
 <translation id="1977965994116744507">اپنا <ph name="DEVICE_TYPE" /> غیر مقفل کرنے کیلئے اپنا فون قریب کریں۔</translation>
+<translation id="1978666928180318515">‏Bruschetta کو ہٹائیں</translation>
 <translation id="1979095679518582070">اس خصوصیت کو آف کرنے سے سسٹم اپ ڈیٹس اور سیکیورٹی جیسی لازمی سروسز کے لیے درکار معلومات بھیجنے کی آپ کے آلے کی اہلیت متاثر نہیں ہوتی ہے۔</translation>
 <translation id="1979280758666859181">آپ <ph name="PRODUCT_NAME" /> کے ایک پرانے ورژن کے ساتھ ایک چینل میں تبدیل ہو رہے ہیں۔ آپ کے آلہ پر فی الحال انسٹال کردہ ورژن سے اس چینل ورژن کے مماثل ہونے پر چینل کی تبدیلی لاگو ہوگی۔</translation>
 <translation id="197989455406964291">‏KDC مرموز کاری کی قسم کو سپورٹ نہیں کرتا ہے</translation>
@@ -1919,6 +1921,7 @@
 <translation id="2672142220933875349">‏غلط crx فائل، پیک کھولنا ناکام ہو گیا۔</translation>
 <translation id="2673135533890720193">اپنی براؤزنگ سرگزشت پڑھیں</translation>
 <translation id="2674764818721168631">آف</translation>
+<translation id="2675570801872027281">‏Bruschetta کو ہٹانے میں خرابی۔ براہ کرم دوبارہ کوشش کریں۔</translation>
 <translation id="2676492189600898281">آٹو فل تاثرات فراہم کریں</translation>
 <translation id="2678063897982469759">دوبارہ فعال کریں</translation>
 <translation id="2678100101831051676">کاسٹ کرنے سے قاصر۔</translation>
@@ -2917,6 +2920,7 @@
 <translation id="3593965109698325041">سرٹیفکیٹ نام کی پابندیاں</translation>
 <translation id="3596012367874587041">ایپ کی ترتیبات</translation>
 <translation id="3596414637720633074">پوشیدگی میں فریق ثالث کوکیز کو بلاک کریں</translation>
+<translation id="3598010454707842106">‏"Chrome کو حسب ضرورت بنائیں" پر کلک کریں</translation>
 <translation id="3599221874935822507">ابھرا ہوا</translation>
 <translation id="3600051066689725006">ویب کی درخواست کی معلومات</translation>
 <translation id="360180734785106144">نئی خصوصیات کے دستیاب ہوتے ہی انہیں فراہم کریں</translation>
@@ -3914,6 +3918,7 @@
 <translation id="4495419450179050807">اس صفحہ پر نہ دکھائیں</translation>
 <translation id="4497145443434063861">‏مختلف Wi-Fi نیٹ ورکس پر PC اور Chromecast (مثلاً 2.4GHz vs. 5GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ناکام ہو گیا ہے</translation>
+<translation id="4500647907053779331"><ph name="LANGUAGE" /> میں انتخاب کا &amp;ترجمہ کریں</translation>
 <translation id="450099669180426158">فجائیہ نشان کا آئیکن</translation>
 <translation id="4501530680793980440">ہٹانے کی توثیق کریں</translation>
 <translation id="4502423230170890588">اس آلہ سے ہٹائيں</translation>
@@ -4443,7 +4448,6 @@
 <translation id="4977942889532008999">رسائی کی توثیق کریں</translation>
 <translation id="4980805016576257426">اس ایکسٹینشن میں میلویئر شامل ہے۔</translation>
 <translation id="4981449534399733132">‏اپنے سبھی مطابقت پذیر آلات اور اپنے Google اکاؤنٹ سے براؤزنگ ڈیٹا صاف کرنے کیلئے، <ph name="BEGIN_LINK" />سائن ان کریں<ph name="END_LINK" />۔</translation>
-<translation id="4982111327868342436">کسی بھی آلے پر آپ نے جہاں چھوڑا تھا وہیں سے شروع کریں</translation>
 <translation id="4986706507552097681">‏آپ ترتیبات میں کسی بھی وقت اس بات کا انتخاب کر سکتے ہیں کہ کس چیز کی مطابقت پذیری کرنی ہے۔ Google آپ کی سرگزشت کی بنیاد پر تلاش اور دیگر سروسز کو ذاتی نوعیت کا بنا سکتا ہے۔</translation>
 <translation id="4986728572522335985">‏اس سے سیکیورٹی کلید کا PIN سمیت تمام ڈیٹا حذف ہو جائے گا</translation>
 <translation id="4988526792673242964">صفحات</translation>
@@ -4560,7 +4564,6 @@
 <translation id="5097349930204431044">آپ جو سائٹ ملاحظہ جاتے ہیں وہ اس بات کا تعین کر سکتی ہیں کہ آپ کیا پسند کرتے ہیں اور پھر جب آپ براؤز کرنا جاری رکھتے ہیں تو اشتہارات تجویز کر سکتی ہیں۔</translation>
 <translation id="5097649414558628673">ٹول: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">جب کرسر رک جاتا ہے تو خودکار طور پر کلک کریں</translation>
-<translation id="5101683448725092498">اپنے مواد کا بیک اپ لیں</translation>
 <translation id="5101839224773798795">کرسر رُک جانے پر خودکار طور پر کلک کریں</translation>
 <translation id="5106350808162641062">ہٹائیں</translation>
 <translation id="510695978163689362">‏<ph name="USER_EMAIL" /> Family Link کے زیر نگرانی ہوتا ہے۔ والدین کی نگرانی کے ساتھ اسکول کے وسائل تک رسائی حاصل کرنے کے لئے آپ اسکول کے اکاؤنٹس کو شامل کر سکتے ہیں۔</translation>
@@ -5125,7 +5128,6 @@
 <translation id="5623842676595125836">لاگ</translation>
 <translation id="5624120631404540903">پاس ورڈز کا نظم کریں</translation>
 <translation id="5625225435499354052">‏Google Pay میں ترمیم کریں</translation>
-<translation id="5625631605902707678">سبھی آلات</translation>
 <translation id="5626134646977739690">نام:</translation>
 <translation id="5627086634964711283">یہ آپ کی جانب سے ہوم بٹن کلک کرنے پر دکھائی دینے والے صفحہ کو بھی کنٹرول کرتا ہے۔</translation>
 <translation id="5627676517703583263">‏Chrome کے ساتھ اسمارٹ براؤز کا لطف اٹھائیں</translation>
@@ -5237,7 +5239,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{یہ ڈیٹا یا آپ کا آلہ آپ کی تنظیم کی سیکیورٹی کی کچھ پالیسیوں کی تعمیل نہیں کرتا ہے۔ اپنے منتظم کے ساتھ چیک کریں کہ کیا ٹھیک کرنے کی ضرورت ہے۔}=1{یہ فائل یا آپ کا آلہ آپ کی تنظیم کی سیکیورٹی کی کچھ پالیسیوں کی تعمیل نہیں کرتا ہے۔ اپنے منتظم کے ساتھ چیک کریں کہ کیا ٹھیک کرنے کی ضرورت ہے۔}other{یہ فائلز آپ کی تنظیم کی سیکیورٹی کی کچھ پالیسیوں کی تعمیل نہیں کرتی ہیں۔ اپنے منتظم کے ساتھ چیک کریں کہ کیا ٹھیک کرنے کی ضرورت ہے۔}}</translation>
 <translation id="5736796278325406685">براہ کرم ایک درست صارف نام درج کریں</translation>
 <translation id="5738093759615225354">آپ کو اپنے کمپیوٹر میں سائن ان کرنے کے لیے اس پاس کی ضرورت ہے</translation>
-<translation id="5738329404678738022">مطابقت پذیری کے ساتھ اپنے بُک مارکس اور بہت کچھ کو اسٹور کریں</translation>
 <translation id="5739017626473506901">اسکول کا اکاؤنٹ شامل کرنے میں <ph name="USER_NAME" /> کی مدد کرنے کیلئے سائن ان کریں</translation>
 <translation id="5739235828260127894">توثیق کا انتظار ہے۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">بہت بڑا</translation>
@@ -5259,7 +5260,6 @@
 <translation id="5757375109985023827">پیش منظر دیکھنے کیلئے ٹیب منتخب کریں</translation>
 <translation id="5758631781033351321">آپ اپنی پڑھنے کی فہرست یہاں پائیں گے</translation>
 <translation id="5759728514498647443">وہ دستاویزات جنہیں آپ <ph name="APP_NAME" /> کے ذریعے پرنٹ کرنے کیلئے بھیجتے ہیں ان کو <ph name="APP_NAME" /> پڑھ سکتی ہے۔</translation>
-<translation id="5760508342220592715">مزید فوائد کیلئے سائن ان کریں</translation>
 <translation id="5762787084360227629">‏Google اکاؤنٹ کی معلومات درج کریں</translation>
 <translation id="5763751966069581670">‏کوئی USB آلہ نہیں ملا</translation>
 <translation id="5764483294734785780">آڈیو &amp;محفوظ کریں بطور…</translation>
@@ -5730,6 +5730,7 @@
 <translation id="617213288191670920">کوئی زبان شامل نہیں کی گئی</translation>
 <translation id="6173623053897475761">‏اپنا PIN دوبارہ ٹائپ کریں</translation>
 <translation id="6175314957787328458">‏Microsoft ڈومین GUID</translation>
+<translation id="6177412385419165772">ہٹایا جا رہا ہے…</translation>
 <translation id="6178664161104547336">ایک سرٹیفکیٹ منتخب کریں</translation>
 <translation id="6178682841350631965">آپ کا سائن ان ڈیٹا اپ ڈیٹ نہیں ہوا</translation>
 <translation id="6180510783007738939">لائن ٹول</translation>
@@ -6206,6 +6207,7 @@
 <translation id="6619801788773578757">کیوسک ایپلیکیشن شامل کریں</translation>
 <translation id="6619990499523117484">‏اپنے PIN کی توثیق کریں</translation>
 <translation id="6620254580880484313">کنٹینر کا نام</translation>
+<translation id="6620927550847360014">‏اپنے <ph name="DEVICE_TYPE" /> سے Bruschetta کو ہٹائیں؟</translation>
 <translation id="6621391692573306628">‏اس ٹیب کو کسی اور آلے میں بھیجنے کے لیے دونوں آلات پر Chrome میں سائن ان کریں</translation>
 <translation id="6622980291894852883">تصاویر کو مسدود کرنا جاری رکھیں</translation>
 <translation id="6624036901798307345">ٹیبلیٹ موڈ میں، ٹیب کاؤنٹر ٹول بار کے بٹن پر تھپتھپائیں تاکہ نئی ٹیب کی اسٹرپ کھل سکے جو ہر ٹیب کے تھمب نیلز دکھاتی ہے۔</translation>
@@ -6423,6 +6425,7 @@
 <translation id="6818547713623251698">اپنے فون کی تصاویر، میڈیا، اطلاعات اور ایپس دیکھیں</translation>
 <translation id="6818802132960437751">پہلے سے شامل وائرس سے تحفظ</translation>
 <translation id="6818920801736417483">پاس ورڈز محفوظ کریں؟</translation>
+<translation id="6820079682647046800">‏Kerberos کی توثیق ناکام ہوگئی</translation>
 <translation id="6823174134746916417">ٹچ پیڈ کلک کرنے کیلئے تھپتھپائیں</translation>
 <translation id="6824564591481349393">ای میل پتہ کاپی کریں</translation>
 <translation id="6824584962142919697">&amp;عناصر کا معائنہ کریں</translation>
@@ -6577,6 +6580,7 @@
 <translation id="6955698182324067397">‏آپ ChromeOS ڈیبگنگ کی خصوصیات فعال کر رہے رہیں جو sshd daemon تشکیل دیں گی اور USB ڈرائیورز سے بوٹنگ کو فعال کریں گی۔</translation>
 <translation id="6955893174999506273">مزید 1 سوئچ تفویض کریں</translation>
 <translation id="6957044667612803194">‏یہ سیکیورٹی کلید PINs کو سپورٹ نہیں کرتی</translation>
+<translation id="6960133692707095572">بغیر ٹکٹ کے ملاحظہ کریں</translation>
 <translation id="6960507406838246615">‏Linux کا اپ ڈیٹ درکار ہے</translation>
 <translation id="6960648667961844909">‏<ph name="LANGUAGE" /> کی اسپیچ فائلز کو ڈاؤن لوڈ نہیں کیا جا سکا۔ بعد میں ڈاؤن لوڈ کرنے کی کوشش کی جائے گی۔ اسپیچ پروسیسنگ کے لیے Google کو بھیجی جاتی ہے جب تک کہ ڈاؤن لوڈ مکمل نہ ہو جائے۔</translation>
 <translation id="696103774840402661">اس <ph name="DEVICE_TYPE" /> پر موجود سبھی صارفین کے لیے تمام فائلز اور مقامی ڈیٹا کو مستقل طور پر حذف کر دیا گیا ہے۔</translation>
@@ -7797,7 +7801,6 @@
 <translation id="8059417245945632445">آلات کا &amp;معائنہ کریں</translation>
 <translation id="8059456211585183827">محفوظ کرنے کے لیے کوئی پرنٹر دستیاب نہیں ہے۔</translation>
 <translation id="8061091456562007989">اسے واپس تبدیل کریں</translation>
-<translation id="8061965471006133016">آپ کے پاس ورڈز اور کچھ کے لیے اضافی تحفظ</translation>
 <translation id="8061970399284390013">ہجے اور گرامر چیک</translation>
 <translation id="8061991877177392872">‏ایسا لگتا ہے کہ آپ نے پہلے ہی کسی دوسرے آلہ پر اپنی اسسٹنٹ کے ساتھ Voice Match کو ترتیب دے دیا ہے۔ ان گزشتہ ریکارڈنگز کا استعمال اس آلہ پر ایک صوتی ماڈل بنانے کے لیے کیا گیا۔</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{پیپر کی 1 شیٹ}other{پیپر کی {COUNT} شیٹس}}</translation>
@@ -8038,6 +8041,7 @@
 <translation id="8272443605911821513">"مزید ٹولز" مینو میں ایکسٹینشنز پر کلک کر کے اپنے ایکسٹینشنز کا نظم کریں۔</translation>
 <translation id="8272786333453048167">دوبارہ اجازت دیں</translation>
 <translation id="8273905181216423293">ابھی ڈاؤن لوڈ کریں</translation>
+<translation id="827488840488530039">‏آپ جس صفحہ کو ملاحظہ کرنے کی کوشش کر رہے ہیں وہ آپ کے Kerberos ٹکٹس کی تصدیق نہیں کر سکا</translation>
 <translation id="8274921654076766238">میگنیفائر کی بورڈ فوکس کے مطابق ہوتا ہے</translation>
 <translation id="8274924778568117936">اپ ڈیٹ مکمل ہونے تک اپنے <ph name="DEVICE_TYPE" /> کو آف یا بند نہ کریں۔ انسٹالیشن مکمل ہونے کے بعد آپ کا <ph name="DEVICE_TYPE" /> دوبارہ شروع ہو جائے گا۔</translation>
 <translation id="8275038454117074363">درآمد کریں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index c310640..83e82428 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -1626,6 +1626,7 @@
 <translation id="2408018932941436077">Karta saqlanmoqda</translation>
 <translation id="2408955596600435184">PIN kodni kiriting</translation>
 <translation id="2409268599591722235">Qani, ketdik</translation>
+<translation id="2409709393952490731">Telefon yoki planshet orqali</translation>
 <translation id="2410079346590497630">nashr axboroti</translation>
 <translation id="2410298923485357543">Qurilma onlayn boʻlganda tabiiy ovoz ishlatilsin</translation>
 <translation id="2410754283952462441">Hisobni tanlang</translation>
@@ -3774,6 +3775,7 @@
 <translation id="4369215744064167350">Saytga ruxsat berildi</translation>
 <translation id="4369735607080757018">Reklama unumdorligini oʻlchash orqali reklama chiqarilgan vaqt kabi cheklangan turdagi axborotlar saytlararo almashinishi mumkin.</translation>
 <translation id="4370975561335139969">Siz kiritgan e-pochta va parol mos kelmadi</translation>
+<translation id="4374805630006466253">Boshqa telefon yoki planshet orqali</translation>
 <translation id="4374831787438678295">Linux uchun o‘rnatkich</translation>
 <translation id="4375035964737468845">Yuklab olingan fayllarni ochish</translation>
 <translation id="4376226992615520204">Joylashuvni aniqlash xususiyati yoniq emas</translation>
@@ -4275,6 +4277,7 @@
 <translation id="4824037980212326045">Linux tizimini zaxiralash va tiklash</translation>
 <translation id="4824958205181053313">Sinxronizatsiya bekor qilinsinmi?</translation>
 <translation id="4825532258163983651">Kod oʻchmadi</translation>
+<translation id="4827283332383516812">Kartani olib tashlash</translation>
 <translation id="4827675678516992122">Ulanmadi</translation>
 <translation id="4827784381479890589">Chrome brauzeridagi kengaytirilgan imlo tekshiruvi (imlo tekshiruvi takliflari chiqishi uchun matnlar Googlega yuboriladi)</translation>
 <translation id="4827904420700932487">Bu rasm uchun QR kod yaratish</translation>
@@ -4450,7 +4453,6 @@
 <translation id="4977942889532008999">Ruxsatni tasdiqlash</translation>
 <translation id="4980805016576257426">Bu kengaytma zararli bo‘lishi mumkin.</translation>
 <translation id="4981449534399733132">Brauzer tarixini Google hisobingizga sinxronlangan barcha qurilmalardan tozalash uchun <ph name="BEGIN_LINK" />hisobingizga kiring<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Qoldirgan joyingizdan boshqa qurilmada davom eting</translation>
 <translation id="4986706507552097681">Nimani sinxronlashni istalgan vaqtda sozlamalar orqali tanlash mumkin. Brauzer tarixi asosida Google Qidiruv va boshqa xizmatlarni moslashtirishi mumkin.</translation>
 <translation id="4986728572522335985">Bunda elektron kalitdagi barcha maʼlumotlar, jumladan, PIN kodlar ham tozalab tashlanadi</translation>
 <translation id="4988526792673242964">Sahifalar</translation>
@@ -4567,7 +4569,6 @@
 <translation id="5097349930204431044">Ochilgan saytlar sizga yoqqan narsalarni aniqlashi va keyinchalik sizga mos reklamalarni koʻrsatishi mumkin.</translation>
 <translation id="5097649414558628673">Vosita: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Kursor toʻxtaganda avtomatik bosilsin</translation>
-<translation id="5101683448725092498">Kerakli narsalaringizni zaxiralang</translation>
 <translation id="5101839224773798795">Kursor harakati toʻxtaganda avtomatik klik bosilsin</translation>
 <translation id="5106350808162641062">Olib tashlash</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> Family Link bilan boshqariladi. Ota-ona nazorati bilan maktab resurslariga kirish uchun maktab hisoblarini kiritishingiz mumkin.</translation>
@@ -5133,7 +5134,6 @@
 <translation id="5623842676595125836">Jurnal</translation>
 <translation id="5624120631404540903">Sozlash</translation>
 <translation id="5625225435499354052">Google Pay xizmatida tahrirlash</translation>
-<translation id="5625631605902707678">Har xil qurilmalarda</translation>
 <translation id="5626134646977739690">Ism:</translation>
 <translation id="5627086634964711283">Bundan tashqari, kengaytma “Boshi” tugmasi bosilganda ko‘rsatiladigan bosh sahifani o‘zgartirib qo‘ydi.</translation>
 <translation id="5627676517703583263">Chrome bilan internetda ishlash juda qulay</translation>
@@ -5245,7 +5245,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Bu maʼlumotlar yoki qurilmangiz tashkilotingizning ayrim xavfsizlik siyosatlariga mos kelmaydi. Nimani tuzatish kerakligini administratoringiz bilan tekshiring.}=1{Bu fayl yoki qurilmangiz tashkilotingizning ayrim xavfsizlik siyosatlariga mos kelmaydi. Nimani tuzatish kerakligini administratoringiz bilan tekshiring.}other{Bu fayllar tashkilotingizning ayrim xavfsizlik siyosatlariga mos kelmaydi. Nimani tuzatish kerakligini administratoringiz bilan tekshiring.}}</translation>
 <translation id="5736796278325406685">Yaroqli foydalanuvchi nomini kiriting.</translation>
 <translation id="5738093759615225354">Bu kod kompyuterga kirish uchun kerak</translation>
-<translation id="5738329404678738022">Sinxronizatsiya orqali bukmarklaringizni saqlang</translation>
 <translation id="5739017626473506901"><ph name="USER_NAME" /> maktab hisobini kiritishiga yordam berish uchun hisobingizga kiring</translation>
 <translation id="5739235828260127894">Tasdiqlanishi zarur. <ph name="LINK_BEGIN" />Batafsil axborot.<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Juda katta</translation>
@@ -5267,7 +5266,6 @@
 <translation id="5757375109985023827">Razm solish uchun varaqni tanlang</translation>
 <translation id="5758631781033351321">Brauzer mutolaa roʻyxati shu yerda chiqadi</translation>
 <translation id="5759728514498647443"><ph name="APP_NAME" /> yordamida chop etishga jo‘natilgan hujjatlarni <ph name="APP_NAME" /> ilovasida o‘qish mumkin.</translation>
-<translation id="5760508342220592715">Koʻproq imtiyozlardan foydalanish uchun hisobingizga kiring</translation>
 <translation id="5762787084360227629">Google hisobi axborotini kiriting</translation>
 <translation id="5763751966069581670">Hech qanday USB qurilma topilmadi</translation>
 <translation id="5764483294734785780">&amp;Audioni saqlash...</translation>
@@ -5303,6 +5301,7 @@
 <translation id="5792295754950501287"><ph name="CARD_DESCRIPTION" /> uchun boshqa amallar</translation>
 <translation id="5792728279623964091">Quvvat tugmasini bosing</translation>
 <translation id="5792874008054171483"><ph name="SITE_NAME" /> uchun boshqa amallar</translation>
+<translation id="5793317771769868848">Bu toʻlov usuli ushbu qurilmadan olib tashlanadi</translation>
 <translation id="5793339252089865437">Yangilanishlarni mobil tarmoq orqali amalga oshirsangiz, ancha pulingiz ketib qoladi.</translation>
 <translation id="5793420564274426163">Ulanishni tasdiqlash</translation>
 <translation id="5793430094159150686">Parolingiz oʻzgardi. Qurilmadagi axborotlarni tiklash uchun eski parol kiritilishi kerak.</translation>
@@ -7281,6 +7280,7 @@
 <translation id="7609148976235050828">Internetga ulanib, qaytadan urining.</translation>
 <translation id="7612401678989660900">Ilova va saytlarga mikrofondan foydalanish uchun ruxsat bering</translation>
 <translation id="7612655942094160088">Ulangan telefon funksiyalarini faollashtirish.</translation>
+<translation id="7612989789287281429">Hisobingizga kirmoqdasiz…</translation>
 <translation id="7614260613810441905">Sayt qurilmadagi fayl va jildlarni tahrirlashi uchun ruxsat soʻralsin (tavsiya etiladi)</translation>
 <translation id="761530003705945209">Google Drive omboriga zaxiralash. Maʼlumotlaringizni osongina tiklang yoki qurilmani istalgan vaqt almashtiring. Zaxira ichida ilova maʼlumotlari ham bor. Zaxiralar Google serverlariga yuklanadi va farzandingizning Google hisobingiz paroli bilan shifrlanadi.</translation>
 <translation id="7615365294369022248">Hisobni kiritishda xatolik yuz berdi</translation>
@@ -7808,7 +7808,6 @@
 <translation id="8059417245945632445">&amp;Qurilmalar tekshiruvi</translation>
 <translation id="8059456211585183827">Saqlash uchun printerlar topilmadi.</translation>
 <translation id="8061091456562007989">Ortga qaytarish</translation>
-<translation id="8061965471006133016">Parollaringizga qoʻshimcha himoya</translation>
 <translation id="8061970399284390013">Imlo va grammatika tekshiruvi</translation>
 <translation id="8061991877177392872">Voice Match funksiyasini Assistentli boshqa qurilmada allaqachon sozlagansiz. Ushbu avvalgi yozuvlardan bu qurilmada namuna yaratishda foydalanilgan.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 varaq qogʻoz}other{{COUNT} varaq qogʻoz}}</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 70f96eeaa2..719ea3d5 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -3963,6 +3963,7 @@
 <translation id="4522890784888918985">Tài khoản con không được hỗ trợ</translation>
 <translation id="4523876148417776526">Chưa tìm nạp được danh sách trang web XML.</translation>
 <translation id="4524832533047962394">Chế độ đăng ký đã cung cấp không được phiên bản hệ điều hành này hỗ trợ. Vui lòng đảm bảo bạn đang chạy phiên bản mới nhất.</translation>
+<translation id="4526051299161934899">Các nhóm thẻ đã lưu bị ẩn</translation>
 <translation id="4526853756266614740">Chọn một hình ảnh để áp dụng ngay giao diện</translation>
 <translation id="452750746583162491">Xem lại các dữ liệu đã đồng bộ hóa của bạn</translation>
 <translation id="4527929807707405172">Bật chế độ cuộn ngược. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation>
@@ -4287,6 +4288,7 @@
 <translation id="4824037980212326045">Sao lưu và khôi phục Linux</translation>
 <translation id="4824958205181053313">Bạn muốn hủy đồng bộ hóa?</translation>
 <translation id="4825532258163983651">Không thể xoá mã xác thực</translation>
+<translation id="4827283332383516812">Xoá thẻ</translation>
 <translation id="4827675678516992122">Không thể kết nối</translation>
 <translation id="4827784381479890589">Tính năng kiểm tra lỗi chính tả nâng cao trong trình duyệt Chrome (văn bản sẽ được gửi đến Google để đưa ra các đề xuất chính tả)</translation>
 <translation id="4827904420700932487">Tạo mã QR cho Hình ảnh này</translation>
@@ -4462,7 +4464,6 @@
 <translation id="4977942889532008999">Xác nhận truy cập</translation>
 <translation id="4980805016576257426">Tiện ích này có chứa phần mềm độc hại.</translation>
 <translation id="4981449534399733132">Để xóa dữ liệu duyệt web khỏi tất cả các thiết bị đã đồng bộ hóa và Tài khoản Google của bạn, hãy <ph name="BEGIN_LINK" />đăng nhập<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Tiếp tục công việc dang dở trên mọi thiết bị</translation>
 <translation id="4986706507552097681">Bạn có thể chọn nội dung muốn đồng bộ hoá bất cứ lúc nào trong phần cài đặt. Google có thể cá nhân hoá dịch vụ Tìm kiếm và các dịch vụ khác dựa trên nhật ký của bạn.</translation>
 <translation id="4986728572522335985">Thao tác này sẽ xóa toàn bộ dữ liệu trên khóa bảo mật, bao gồm cả mã PIN của khóa</translation>
 <translation id="4988526792673242964">Trang</translation>
@@ -4579,7 +4580,6 @@
 <translation id="5097349930204431044">Các trang web bạn truy cập có thể xác định sở thích của bạn để đề xuất quảng cáo khi bạn tiếp tục duyệt web</translation>
 <translation id="5097649414558628673">Công cụ: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Tự động nhấp khi con trỏ dừng lại</translation>
-<translation id="5101683448725092498">Sao lưu dữ liệu</translation>
 <translation id="5101839224773798795">Tự động nhấp chuột khi con trỏ dừng lại</translation>
 <translation id="5106350808162641062">Xoá</translation>
 <translation id="510695978163689362">Tài khoản <ph name="USER_EMAIL" /> do Family Link giám sát. Bạn có thể thêm các tài khoản trường học để truy cập vào tài nguyên của trường học dưới sự giám sát của cha mẹ.</translation>
@@ -5145,7 +5145,6 @@
 <translation id="5623842676595125836">Nhật ký</translation>
 <translation id="5624120631404540903">Quản lý mật khẩu</translation>
 <translation id="5625225435499354052">Chỉnh sửa trong Google Pay</translation>
-<translation id="5625631605902707678">Trên nhiều thiết bị</translation>
 <translation id="5626134646977739690">Tên:</translation>
 <translation id="5627086634964711283">Tiện ích cũng điều khiển trang nào sẽ hiển thị khi bạn nhấp vào nút Trang chủ.</translation>
 <translation id="5627676517703583263">Duyệt web thông minh bằng Chrome</translation>
@@ -5257,7 +5256,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Dữ liệu này hoặc thiết bị của bạn không đáp ứng một số chính sách bảo mật của tổ chức. Hãy trao đổi với quản trị viên của bạn để biết những vấn đề cần khắc phục.}=1{Tệp này hoặc thiết bị của bạn không đáp ứng một số chính sách bảo mật của tổ chức. Hãy trao đổi với quản trị viên của bạn để biết những vấn đề cần khắc phục.}other{Những tệp này không đáp ứng một số chính sách bảo mật của tổ chức. Hãy trao đổi với quản trị viên của bạn để biết những vấn đề cần khắc phục.}}</translation>
 <translation id="5736796278325406685">Vui lòng nhập tên người dùng hợp lệ</translation>
 <translation id="5738093759615225354">Bạn cần mã xác thực này để đăng nhập vào máy tính của mình</translation>
-<translation id="5738329404678738022">Lưu trữ dấu trang và các nội dung khác bằng tính năng đồng bộ hoá</translation>
 <translation id="5739017626473506901">Đăng nhập để giúp <ph name="USER_NAME" /> thêm tài khoản trường học</translation>
 <translation id="5739235828260127894">Đang chờ xác minh. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Rất lớn</translation>
@@ -5279,7 +5277,6 @@
 <translation id="5757375109985023827">Chọn một thẻ để xem trước</translation>
 <translation id="5758631781033351321">Bạn sẽ thấy danh sách đọc ở đây</translation>
 <translation id="5759728514498647443">Tài liệu bạn gửi để in qua <ph name="APP_NAME" /> có thể đọc được bằng <ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Đăng nhập để nhận nhiều lợi ích hơn</translation>
 <translation id="5762787084360227629">Nhập thông tin về Tài khoản Google</translation>
 <translation id="5763751966069581670">Không tìm thấy thiết bị USB nào</translation>
 <translation id="5764483294734785780">Lư&amp;u âm thanh thành...</translation>
@@ -5315,6 +5312,7 @@
 <translation id="5792295754950501287">Thao tác khác cho <ph name="CARD_DESCRIPTION" /></translation>
 <translation id="5792728279623964091">Vui lòng nhấn vào nút nguồn</translation>
 <translation id="5792874008054171483">Thao tác khác cho <ph name="SITE_NAME" /></translation>
+<translation id="5793317771769868848">Phương thức thanh toán này sẽ bị xoá khỏi thiết bị này</translation>
 <translation id="5793339252089865437">Nếu tải bản cập nhật này xuống qua mạng di động, thì bạn có thể phải trả phí phát sinh.</translation>
 <translation id="5793420564274426163">Xác nhận ghép nối</translation>
 <translation id="5793430094159150686">Mật khẩu của bạn đã thay đổi. Để khôi phục dữ liệu cục bộ, bạn cần nhập mật khẩu cũ của mình.</translation>
@@ -7293,6 +7291,7 @@
 <translation id="7609148976235050828">Vui lòng kết nối với Internet và thử lại.</translation>
 <translation id="7612401678989660900">Cho phép truy cập đối với các ứng dụng và trang web có quyền sử dụng micrô</translation>
 <translation id="7612655942094160088">Các tính năng trên điện thoại đã kết nối bật.</translation>
+<translation id="7612989789287281429">Đang đăng nhập…</translation>
 <translation id="7614260613810441905">Hỏi khi một trang web muốn chỉnh sửa các tệp hoặc thư mục trên thiết bị (khuyên dùng)</translation>
 <translation id="761530003705945209">Sao lưu vào Google Drive. Dễ dàng khôi phục dữ liệu hoặc chuyển đổi thiết bị bất cứ lúc nào. Nội dung sao lưu của bạn bao gồm các dữ liệu ứng dụng. Các bản sao lưu được tải lên Google và mã hóa bằng mật khẩu Tài khoản Google của bạn.</translation>
 <translation id="7615365294369022248">Đã xảy ra lỗi khi thêm một tài khoản</translation>
@@ -7822,7 +7821,6 @@
 <translation id="8059417245945632445">&amp;Kiểm tra thiết bị</translation>
 <translation id="8059456211585183827">Hiện không có máy in nào để bạn lưu.</translation>
 <translation id="8061091456562007989">Chuyển lại</translation>
-<translation id="8061965471006133016">Tăng cường khả năng bảo vệ mật khẩu và nhiều lợi ích khác</translation>
 <translation id="8061970399284390013">Kiểm tra chính tả và ngữ pháp</translation>
 <translation id="8061991877177392872">Có vẻ như bạn đã thiết lập Voice Match với Trợ lý trên một thiết bị khác. Trợ lý đã dùng những bản ghi âm trước đây để tạo một mẫu giọng nói trên thiết bị này.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 tờ giấy}other{{COUNT} tờ giấy}}</translation>
@@ -8510,6 +8508,7 @@
 <translation id="869884720829132584">Menu ứng dụng</translation>
 <translation id="869891660844655955">Ngày hết hạn</translation>
 <translation id="8699188901396699995">Tệp PPD cho <ph name="PRINTER_NAME" /></translation>
+<translation id="8702278591052316269">Trình đơn chứa các nhóm thẻ đã lưu bị ẩn</translation>
 <translation id="8702825062053163569"><ph name="DEVICE_TYPE" /> của bạn đã bị khóa.</translation>
 <translation id="8703346390800944767">Bỏ qua quảng cáo</translation>
 <translation id="8705331520020532516">Số Sê-ri</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 05fe1e9..1d7c44b4 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -4431,7 +4431,6 @@
 <translation id="4977942889532008999">确认访问</translation>
 <translation id="4980805016576257426">此扩展程序包含恶意软件。</translation>
 <translation id="4981449534399733132">要想清除您的所有已同步设备中的浏览数据以及您的 Google 帐号中的浏览数据,请<ph name="BEGIN_LINK" />登录<ph name="END_LINK" />。</translation>
-<translation id="4982111327868342436">让您能在任何设备上从上次停下的地方继续</translation>
 <translation id="4986706507552097681">您始终可在“设置”中选择要同步的内容。Google 可能会根据您的历史记录在 Google 搜索和其他服务中为您提供个性化的体验。</translation>
 <translation id="4986728572522335985">安全密钥上的所有数据(包括它的 PIN 码)都会被删除</translation>
 <translation id="4988526792673242964">页面</translation>
@@ -4548,7 +4547,6 @@
 <translation id="5097349930204431044">您访问的网站能推测您的喜好,然后在您继续浏览时向您展示建议的广告</translation>
 <translation id="5097649414558628673">工具:<ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">光标停止移动时自动点击</translation>
-<translation id="5101683448725092498">备份您的资料</translation>
 <translation id="5101839224773798795">光标停止时自动点击</translation>
 <translation id="5106350808162641062">移除</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> 由 Family Link 监管。您可添加学校帐号,以便在家长监管下访问学校资源。</translation>
@@ -5112,7 +5110,6 @@
 <translation id="5623842676595125836">日志</translation>
 <translation id="5624120631404540903">管理密码</translation>
 <translation id="5625225435499354052">在 Google Pay 中修改</translation>
-<translation id="5625631605902707678">在所有设备上</translation>
 <translation id="5626134646977739690">名字:</translation>
 <translation id="5627086634964711283">它还能够控制您点击“主页”按钮后系统显示的页面。</translation>
 <translation id="5627676517703583263">使用 Chrome 进行智能浏览</translation>
@@ -5224,7 +5221,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{这些数据或您的设备不符合贵组织的某些安全政策。请与您的管理员联系,了解需要修正哪些方面。}=1{此文件或您的设备不符合贵组织的某些安全政策。请与您的管理员联系,了解需要修正哪些方面。}other{这些文件不符合贵组织的某些安全政策。请与您的管理员联系,了解需要修正哪些方面。}}</translation>
 <translation id="5736796278325406685">请输入有效的用户名</translation>
 <translation id="5738093759615225354">您需要使用此通行密钥才能登录计算机</translation>
-<translation id="5738329404678738022">借助同步功能存储书签和其他数据</translation>
 <translation id="5739017626473506901">请登录以帮助<ph name="USER_NAME" />添加学校帐号</translation>
 <translation id="5739235828260127894">正在等待验证。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">特大</translation>
@@ -5246,7 +5242,6 @@
 <translation id="5757375109985023827">选择一个标签页即可预览</translation>
 <translation id="5758631781033351321">您的阅读清单会显示在此处</translation>
 <translation id="5759728514498647443">您通过“<ph name="APP_NAME" />”发送以进行打印的文档可由“<ph name="APP_NAME" />”读取。</translation>
-<translation id="5760508342220592715">登录后可获享更多好处</translation>
 <translation id="5762787084360227629">输入 Google 帐号信息</translation>
 <translation id="5763751966069581670">未找到任何 USB 设备</translation>
 <translation id="5764483294734785780">音频另存为(&amp;V)...</translation>
@@ -7784,7 +7779,6 @@
 <translation id="8059417245945632445">检查设备(&amp;I)</translation>
 <translation id="8059456211585183827">没有可保存的打印机。</translation>
 <translation id="8061091456562007989">改回原来的设置</translation>
-<translation id="8061965471006133016">为您的密码和其他数据提供额外的保护</translation>
 <translation id="8061970399284390013">拼写和语法检查</translation>
 <translation id="8061991877177392872">您似乎已在另一部设备上为 Google 助理设置了 Voice Match。这些先前的语音录音用来在此设备上创建语音模型。</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 张纸}other{{COUNT} 张纸}}</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 0a37abc..88ca4f0 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">超文本傳輸協定 (HTTPS)</translation>
 <translation id="1059944192885972544">搵到 <ph name="NUM" /> 個同「<ph name="SEARCH_TEXT" />」相關嘅分頁</translation>
 <translation id="1060292118287751956">決定螢幕更新的頻率</translation>
+<translation id="1060570945511946595">管理票證</translation>
 <translation id="1061130374843955397">歡迎使用 <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">為此連結建立 QR 碼</translation>
 <translation id="1061904396131502319">快到休息時間了</translation>
@@ -1126,6 +1127,7 @@
 <translation id="1975841812214822307">移除…</translation>
 <translation id="1976150099241323601">登入安全性裝置</translation>
 <translation id="1977965994116744507">手機靠近您的 <ph name="DEVICE_TYPE" /> 即可將其解鎖。</translation>
+<translation id="1978666928180318515">移除 Bruschetta</translation>
 <translation id="1979095679518582070">即使關閉此功能,此裝置仍然可以傳送基本服務 (例如系統更新與安全性) 所需的資料。</translation>
 <translation id="1979280758666859181">您即將轉用較舊版本的 <ph name="PRODUCT_NAME" /> ,但其版本號與您裝置上所安裝的版本號必須相符,系統才會套用版本變更。</translation>
 <translation id="197989455406964291">KDC 不支援加密類型</translation>
@@ -1932,6 +1934,7 @@
 <translation id="2672142220933875349">crx 檔案損毀,無法解除套件。</translation>
 <translation id="2673135533890720193">讀取您的瀏覽記錄</translation>
 <translation id="2674764818721168631">關閉</translation>
+<translation id="2675570801872027281">移除 Bruschetta 時發生問題,請再試一次。</translation>
 <translation id="2676492189600898281">提供自動填入的意見</translation>
 <translation id="2678063897982469759">重新啟用</translation>
 <translation id="2678100101831051676">無法投放。</translation>
@@ -2930,6 +2933,7 @@
 <translation id="3593965109698325041">憑證名稱限制</translation>
 <translation id="3596012367874587041">應用程式設定</translation>
 <translation id="3596414637720633074">在無痕模式中封鎖第三方 Cookie</translation>
+<translation id="3598010454707842106">按一下 [自訂 Chrome]</translation>
 <translation id="3599221874935822507">凸出</translation>
 <translation id="3600051066689725006">網絡要求資料</translation>
 <translation id="360180734785106144">即時提供可用的新功能</translation>
@@ -3928,6 +3932,7 @@
 <translation id="4497145443434063861">電腦和 Chromecast 使用不同的 Wi-Fi 網絡 (例如分別使用 2.4GHz
     和 5GHz)</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> 發生錯誤,已停止運作</translation>
+<translation id="4500647907053779331">將所選內容翻譯為<ph name="LANGUAGE" /> (&amp;T)</translation>
 <translation id="450099669180426158">感嘆號圖示</translation>
 <translation id="4501530680793980440">確認移除</translation>
 <translation id="4502423230170890588">從此裝置中移除</translation>
@@ -4458,7 +4463,6 @@
 <translation id="4977942889532008999">確認存取權</translation>
 <translation id="4980805016576257426">這個擴充程式含有惡意軟件。</translation>
 <translation id="4981449534399733132">如要從所有已同步的裝置和 Google 帳戶中清除瀏覽資料,請<ph name="BEGIN_LINK" />登入<ph name="END_LINK" />。</translation>
-<translation id="4982111327868342436">在任何裝置上繼續未完成的工作</translation>
 <translation id="4986706507552097681">您隨時可在設定中選擇要同步的資料。Google 可能會根據您的記錄,提供個人化「搜尋」和其他服務。</translation>
 <translation id="4986728572522335985">此操作將刪除這個安全密鑰上的所有資料,包括 PIN</translation>
 <translation id="4988526792673242964">網頁</translation>
@@ -4575,7 +4579,6 @@
 <translation id="5097349930204431044">您瀏覽的網站可判斷您喜愛的內容,然後在您繼續瀏覽時建議廣告</translation>
 <translation id="5097649414558628673">工具:<ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">游標停止時自動點擊</translation>
-<translation id="5101683448725092498">備份資料</translation>
 <translation id="5101839224773798795">遊標停止時自動點擊</translation>
 <translation id="5106350808162641062">移除</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> 由 Family Link 監管。您可新增學校帳戶,以便在家長監管下存取學校資源。</translation>
@@ -5139,7 +5142,6 @@
 <translation id="5623842676595125836">記錄</translation>
 <translation id="5624120631404540903">管理密碼</translation>
 <translation id="5625225435499354052">在 Google Pay 中編輯</translation>
-<translation id="5625631605902707678">跨裝置</translation>
 <translation id="5626134646977739690">名稱:</translation>
 <translation id="5627086634964711283">這個擴充功能也會管制您按一下 [主頁] 按鈕時所顯示的網頁。</translation>
 <translation id="5627676517703583263">使用 Chrome 享受智能瀏覽體驗</translation>
@@ -5251,7 +5253,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{此項資料或您的裝置不符合您機構的部分安全政策規定。請向您的管理員查詢,瞭解需要修正的項目。}=1{此檔案或您的裝置不符合您機構的部分安全政策規定。請向您的管理員查詢,瞭解需要修正的項目。}other{這些檔案不符合您機構的部分安全政策規定。請向您的管理員查詢,瞭解需要修正的項目。}}</translation>
 <translation id="5736796278325406685">請輸入有效的使用者名稱</translation>
 <translation id="5738093759615225354">您需要使用此密鑰,才能在電腦上登入帳戶</translation>
-<translation id="5738329404678738022">透過同步處理功能儲存書籤和其他資料</translation>
 <translation id="5739017626473506901">需要登入才能為 <ph name="USER_NAME" /> 新增學校帳戶</translation>
 <translation id="5739235828260127894">正在等待驗證。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">非常大</translation>
@@ -5273,7 +5274,6 @@
 <translation id="5757375109985023827">選取要預覽的分頁</translation>
 <translation id="5758631781033351321">您可在此查看閱讀清單</translation>
 <translation id="5759728514498647443">您透過「<ph name="APP_NAME" />」傳送列印的文件可使用「<ph name="APP_NAME" />」讀取。</translation>
-<translation id="5760508342220592715">登入可享更多好處</translation>
 <translation id="5762787084360227629">輸入 Google 帳戶資料</translation>
 <translation id="5763751966069581670">找不到 USB 裝置</translation>
 <translation id="5764483294734785780">另存音效檔案為(&amp;V)…</translation>
@@ -5744,6 +5744,7 @@
 <translation id="617213288191670920">沒有新增任何語言</translation>
 <translation id="6173623053897475761">重新輸入 PIN</translation>
 <translation id="6175314957787328458">Microsoft 網域 GUID</translation>
+<translation id="6177412385419165772">正在移除…</translation>
 <translation id="6178664161104547336">選取憑證</translation>
 <translation id="6178682841350631965">您的登入資料已更新</translation>
 <translation id="6180510783007738939">線條工具</translation>
@@ -6220,6 +6221,7 @@
 <translation id="6619801788773578757">新增 Kiosk 應用程式</translation>
 <translation id="6619990499523117484">確認您的 PIN</translation>
 <translation id="6620254580880484313">容器名稱</translation>
+<translation id="6620927550847360014">要從 <ph name="DEVICE_TYPE" /> 中移除 Bruschetta 嗎?</translation>
 <translation id="6621391692573306628">如要將此分頁傳送至其他裝置,請在這兩部裝置上登入 Chrome</translation>
 <translation id="6622980291894852883">繼續封鎖圖片</translation>
 <translation id="6624036901798307345">在平板電腦模式中,輕按分頁計數器工具列按鈕便可開啟新的分頁列,並顯示每個分頁的縮圖。</translation>
@@ -6437,6 +6439,7 @@
 <translation id="6818547713623251698">查看手機上的相片、媒體、通知和應用程式</translation>
 <translation id="6818802132960437751">內置防毒功能</translation>
 <translation id="6818920801736417483">要儲存密碼嗎?</translation>
+<translation id="6820079682647046800">Kerberos 驗證失敗</translation>
 <translation id="6823174134746916417">觸控板輕按點撃功能</translation>
 <translation id="6824564591481349393">複製電郵地址(&amp;E)</translation>
 <translation id="6824584962142919697">檢查元素 (&amp;I)</translation>
@@ -6591,6 +6594,7 @@
 <translation id="6955698182324067397">您即將啟用 Chrome OS 偵錯功能;啟用後,系統會設定 sshd 協助程式,並啟用 USB 磁碟開機功能。</translation>
 <translation id="6955893174999506273">指派另外 1 個按鈕</translation>
 <translation id="6957044667612803194">此安全密鑰不支援 PIN</translation>
+<translation id="6960133692707095572">不使用票證瀏覽</translation>
 <translation id="6960507406838246615">Linux 需要更新</translation>
 <translation id="6960648667961844909">無法下載<ph name="LANGUAGE" />語音檔案。系統稍後將再次嘗試下載,語音會暫時傳送給 Google 處理,直至下載完成。</translation>
 <translation id="696103774840402661">已永久刪除此 <ph name="DEVICE_TYPE" /> 上所有使用者的所有檔案和本機資料。</translation>
@@ -7812,7 +7816,6 @@
 <translation id="8059417245945632445">檢查裝置 (&amp;I)</translation>
 <translation id="8059456211585183827">冇可以儲存嘅打印機。</translation>
 <translation id="8061091456562007989">還原設定</translation>
-<translation id="8061965471006133016">為密碼和其他資訊提供額外保護</translation>
 <translation id="8061970399284390013">拼字和文法檢查</translation>
 <translation id="8061991877177392872">您似乎已在另一部裝置上透過「Google 助理」設定了 Voice Match 功能。系統已使用先前的錄音在此裝置上建立語音模型。</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 張紙}other{{COUNT} 張紙}}</translation>
@@ -8053,6 +8056,7 @@
 <translation id="8272443605911821513">如要管理擴充功能,只需按一下 [其他工具] 選單裡的 [擴充功能] 即可。</translation>
 <translation id="8272786333453048167">再次授予權限</translation>
 <translation id="8273905181216423293">立即下載</translation>
+<translation id="827488840488530039">您嘗試瀏覽的頁面無法驗證您的 Kerberos 票證</translation>
 <translation id="8274921654076766238">放大鏡追蹤鍵盤焦點</translation>
 <translation id="8274924778568117936">在更新完成前,請勿關閉 <ph name="DEVICE_TYPE" />。您的 <ph name="DEVICE_TYPE" /> 將會在安裝完成後重新啟動。</translation>
 <translation id="8275038454117074363">匯入</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 59a3b0ff..9f4378b 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -69,6 +69,7 @@
 <translation id="1059484610606223931">超文字安全傳輸通訊協定 (HTTPS)</translation>
 <translation id="1059944192885972544">找到 <ph name="NUM" /> 個與「<ph name="SEARCH_TEXT" />」相符的分頁</translation>
 <translation id="1060292118287751956">決定畫面更新的頻率</translation>
+<translation id="1060570945511946595">管理票證</translation>
 <translation id="1061130374843955397">歡迎使用 <ph name="DEVICE_TYPE" /></translation>
 <translation id="1061373870045429865">為這個連結建立 QR 圖碼</translation>
 <translation id="1061904396131502319">快到休息時間了</translation>
@@ -1114,6 +1115,7 @@
 <translation id="1975841812214822307">移除...</translation>
 <translation id="1976150099241323601">登入安全性裝置</translation>
 <translation id="1977965994116744507">讓你的手機靠近 <ph name="DEVICE_TYPE" />,即可將其解鎖。</translation>
+<translation id="1978666928180318515">移除 Bruschetta</translation>
 <translation id="1979095679518582070">即使關閉了這項功能,這部裝置仍然可以傳送基本服務 (例如系統更新和安全防護) 所需的資訊。</translation>
 <translation id="1979280758666859181">你即將變更為較舊版本的 <ph name="PRODUCT_NAME" />。該版本的版本號與你電腦上所安裝的版本號必須相符,系統才會套用版本變更。</translation>
 <translation id="197989455406964291">KDC 不支援加密類型</translation>
@@ -1917,6 +1919,7 @@
 <translation id="2672142220933875349">crx 檔案損毀,無法解除封裝。</translation>
 <translation id="2673135533890720193">讀取你的瀏覽記錄</translation>
 <translation id="2674764818721168631">關閉</translation>
+<translation id="2675570801872027281">移除 Bruschetta 時發生錯誤,請再試一次。</translation>
 <translation id="2676492189600898281">提供有關自動填入功能的意見</translation>
 <translation id="2678063897982469759">重新啟用</translation>
 <translation id="2678100101831051676">無法投放。</translation>
@@ -2915,6 +2918,7 @@
 <translation id="3593965109698325041">憑證名稱限制</translation>
 <translation id="3596012367874587041">應用程式設定</translation>
 <translation id="3596414637720633074">在無痕模式中封鎖第三方 Cookie</translation>
+<translation id="3598010454707842106">按一下「自訂 Chrome」</translation>
 <translation id="3599221874935822507">外凸</translation>
 <translation id="3600051066689725006">網路要求資訊</translation>
 <translation id="360180734785106144">在新功能推出時立即提供你使用</translation>
@@ -3911,6 +3915,7 @@
 <translation id="4495419450179050807">不要顯示這個網頁</translation>
 <translation id="4497145443434063861">電腦和 Chromecast 使用不同的 Wi-Fi 網路 (例如分別使用 2.4GHz 和 5GHz)</translation>
 <translation id="4500114933761911433">「<ph name="PLUGIN_NAME" />」當機了</translation>
+<translation id="4500647907053779331">將所選內容翻譯成<ph name="LANGUAGE" /> (&amp;T)</translation>
 <translation id="450099669180426158">驚嘆號圖示</translation>
 <translation id="4501530680793980440">確認移除</translation>
 <translation id="4502423230170890588">從這個裝置中移除</translation>
@@ -4440,7 +4445,6 @@
 <translation id="4977942889532008999">確認存取權</translation>
 <translation id="4980805016576257426">這個擴充功能含有惡意軟體。</translation>
 <translation id="4981449534399733132">如要從所有同步的裝置和 Google 帳戶中清除瀏覽資料,請先<ph name="BEGIN_LINK" />登入<ph name="END_LINK" />。</translation>
-<translation id="4982111327868342436">使用任何裝置都能接續先前的活動進度</translation>
 <translation id="4986706507552097681">你隨時可以在設定中選擇要同步處理的資料。Google 可能會根據你的歷史記錄在 Google 搜尋等其他服務中提供個人化體驗。</translation>
 <translation id="4986728572522335985">這項操作將刪除這個安全金鑰上的所有資料,包括 PIN 碼</translation>
 <translation id="4988526792673242964">網頁</translation>
@@ -4557,7 +4561,6 @@
 <translation id="5097349930204431044">你造訪的網站可以判斷你喜愛的內容,並在接下來的瀏覽過程中顯示建議廣告</translation>
 <translation id="5097649414558628673">工具:<ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">游標停止時自動點擊</translation>
-<translation id="5101683448725092498">備份資料</translation>
 <translation id="5101839224773798795">游標停止時自動點擊</translation>
 <translation id="5106350808162641062">移除</translation>
 <translation id="510695978163689362"><ph name="USER_EMAIL" /> 目前受到 Family Link 的監督。你可以新增學校帳戶,以便在家長的監督之下存取學校資源。</translation>
@@ -5121,7 +5124,6 @@
 <translation id="5623842676595125836">記錄</translation>
 <translation id="5624120631404540903">管理密碼</translation>
 <translation id="5625225435499354052">在 Google Pay 中編輯</translation>
-<translation id="5625631605902707678">跨裝置作業</translation>
 <translation id="5626134646977739690">名稱:</translation>
 <translation id="5627086634964711283">這個擴充功能也會控管你點選 [首頁] 按鈕時所顯示的網頁。</translation>
 <translation id="5627676517703583263">使用 Chrome 享有智慧瀏覽體驗</translation>
@@ -5233,7 +5235,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{這項資料或裝置不符合貴機構的部分安全性政策規定。請洽詢管理員,瞭解需要修正的項目。}=1{這個檔案或裝置不符合貴機構的部分安全性政策規定。請洽詢管理員,瞭解需要修正的項目。}other{這些檔案不符合貴機構的部分安全性政策規定。請洽詢管理員,瞭解需要修正的項目。}}</translation>
 <translation id="5736796278325406685">請輸入有效的使用者名稱</translation>
 <translation id="5738093759615225354">你必須有這個密碼金鑰,才能登入 Windows 電腦</translation>
-<translation id="5738329404678738022">透過同步處理功能儲存書籤和其他資訊</translation>
 <translation id="5739017626473506901">登入以協助<ph name="USER_NAME" />新增學校帳戶</translation>
 <translation id="5739235828260127894">等待驗證中。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">非常大</translation>
@@ -5255,7 +5256,6 @@
 <translation id="5757375109985023827">選取要預覽的分頁</translation>
 <translation id="5758631781033351321">這裡會顯示你的閱讀清單</translation>
 <translation id="5759728514498647443">「<ph name="APP_NAME" />」可以讀取您透過「<ph name="APP_NAME" />」傳送的待列印文件。</translation>
-<translation id="5760508342220592715">登入即可享有更多實用功能</translation>
 <translation id="5762787084360227629">輸入 Google 帳戶資訊</translation>
 <translation id="5763751966069581670">找不到 USB 裝置</translation>
 <translation id="5764483294734785780">將音訊另存為(&amp;V)...</translation>
@@ -5725,6 +5725,7 @@
 <translation id="617213288191670920">尚未新增語言</translation>
 <translation id="6173623053897475761">重新輸入 PIN 碼</translation>
 <translation id="6175314957787328458">Microsoft 網域 GUID</translation>
+<translation id="6177412385419165772">移除中...</translation>
 <translation id="6178664161104547336">選取憑證</translation>
 <translation id="6178682841350631965">已更新你的登入資料</translation>
 <translation id="6180510783007738939">線條工具</translation>
@@ -6201,6 +6202,7 @@
 <translation id="6619801788773578757">新增 Kiosk 應用程式</translation>
 <translation id="6619990499523117484">確認你的 PIN 碼</translation>
 <translation id="6620254580880484313">容器名稱</translation>
+<translation id="6620927550847360014">要從 <ph name="DEVICE_TYPE" /> 中移除 Bruschetta 嗎?</translation>
 <translation id="6621391692573306628">如要將這個分頁傳送到其他裝置,請在這兩部裝置上登入 Chrome</translation>
 <translation id="6622980291894852883">繼續封鎖圖片</translation>
 <translation id="6624036901798307345">在平板電腦模式中,輕觸分頁計數器的工具列按鈕即可開啟新的分頁列,當中會顯示各分頁的縮圖。</translation>
@@ -6418,6 +6420,7 @@
 <translation id="6818547713623251698">查看手機上的相片、媒體、通知和應用程式</translation>
 <translation id="6818802132960437751">內建防毒機制</translation>
 <translation id="6818920801736417483">要儲存密碼嗎?</translation>
+<translation id="6820079682647046800">Kerberos 驗證失敗</translation>
 <translation id="6823174134746916417">觸控板點按功能</translation>
 <translation id="6824564591481349393">複製電子郵件地址(&amp;E)</translation>
 <translation id="6824584962142919697">檢查元素 (&amp;I)</translation>
@@ -6572,6 +6575,7 @@
 <translation id="6955698182324067397">你即將啟用 Chrome OS 偵錯功能,這會一併設定 sshd Daemon,並允許從 USB 隨身碟執行啟動作業。</translation>
 <translation id="6955893174999506273">再指派 1 個外接切換裝置</translation>
 <translation id="6957044667612803194">這個安全金鑰不支援 PIN 碼</translation>
+<translation id="6960133692707095572">不使用票證造訪</translation>
 <translation id="6960507406838246615">必須更新 Linux</translation>
 <translation id="6960648667961844909">無法下載<ph name="LANGUAGE" />語音檔案。系統稍後將再次嘗試下載。在下載作業完成前,系統會先將語音內容傳送給 Google 處理。</translation>
 <translation id="696103774840402661">系統已永久刪除這部「<ph name="DEVICE_TYPE" />」上所有使用者的所有檔案與本機資料。</translation>
@@ -7793,7 +7797,6 @@
 <translation id="8059417245945632445">檢查裝置 (&amp;I)</translation>
 <translation id="8059456211585183827">沒有可供儲存的印表機。</translation>
 <translation id="8061091456562007989">還原設定</translation>
-<translation id="8061965471006133016">為密碼和其他資訊提供額外防護</translation>
 <translation id="8061970399284390013">拼字與文法檢查</translation>
 <translation id="8061991877177392872">你似乎已在其他裝置上設定 Google 助理的 Voice Match 功能。系統已使用先前的錄音檔在這部裝置上建立語音模型。</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 張紙}other{{COUNT} 張紙}}</translation>
@@ -8034,6 +8037,7 @@
 <translation id="8272443605911821513">如要管理擴充功能,只需按一下 [其他工具] 選單裡的 [擴充功能] 即可。</translation>
 <translation id="8272786333453048167">重新授權</translation>
 <translation id="8273905181216423293">立即下載</translation>
+<translation id="827488840488530039">你嘗試造訪的網頁無法驗證你的 Kerberos 票證</translation>
 <translation id="8274921654076766238">放大鏡追蹤鍵盤焦點</translation>
 <translation id="8274924778568117936">完成更新前,請勿將 <ph name="DEVICE_TYPE" /> 關機。<ph name="DEVICE_TYPE" /> 會在安裝完成後重新啟動。</translation>
 <translation id="8275038454117074363">匯入</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index c586545..eed1dbb6 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -4457,7 +4457,6 @@
 <translation id="4977942889532008999">Qinisekisa ukufinyelela</translation>
 <translation id="4980805016576257426">Lesi sandiso siqukethe uhlelo olungayilungele ikhompuyutha.</translation>
 <translation id="4981449534399733132">Ukuze usule idatha yokuphequlula kusuka kuwo wonke amadivayisi akho avumelanisiwe ne-akhawunti yakho ye-Google, <ph name="BEGIN_LINK" />ngena ngemvume<ph name="END_LINK" />.</translation>
-<translation id="4982111327868342436">Qhubeka lapho ushiye khona kunoma iyiphi idivayisi</translation>
 <translation id="4986706507552097681">Ungahlala ukhetha ukuthi yini okumele ivunyelaniswe kuzilungiselelo. I-Google ingase iqondanise nomuntu siqu i-Search namanye amasevisi ngokususelwe emlandweni wakho.</translation>
 <translation id="4986728572522335985">Lokhu kuzosusa yonke idatha kukhiye wokuqinisekisa ubunikazi, efaka IPHINIKHODI yayo</translation>
 <translation id="4988526792673242964">Amakhasi</translation>
@@ -4574,7 +4573,6 @@
 <translation id="5097349930204431044">Amasayithi owavakashelayo anganquma ukuthi yini oyithandayo bese ephakamisa izikhangiso njengoba uqhubeka nokubhrawuza</translation>
 <translation id="5097649414558628673">Ithuluzi: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Chofoza ngokuzenzakalelayo uma i-cursor ima</translation>
-<translation id="5101683448725092498">Gcina izinto zakho</translation>
 <translation id="5101839224773798795">Chofoza ngokuzenzakalela uma ikhesa ima</translation>
 <translation id="5106350808162641062">Susa</translation>
 <translation id="510695978163689362">U-<ph name="USER_EMAIL" /> ugadwe yi-Family Link. Ungangeza ama-akhawunti wesikole ukuze ufinyelele izinsiza zesikole ngokuqashelwa kwabazali.</translation>
@@ -5143,7 +5141,6 @@
 <translation id="5623842676595125836">Ilogi</translation>
 <translation id="5624120631404540903">Phatha amaphasiwedi</translation>
 <translation id="5625225435499354052">Hlela ku-Google Pay</translation>
-<translation id="5625631605902707678">Kuwo wonke amadivayisi</translation>
 <translation id="5626134646977739690">Igama:</translation>
 <translation id="5627086634964711283">Iphinda ilawule ukuthi yiliphi ikhasi eliboniswayo uma uchofoza inkinobho ye-Ikhaya.</translation>
 <translation id="5627676517703583263">Phequlula ngokuhlakaniphile nge-Chrome</translation>
@@ -5255,7 +5252,6 @@
 <translation id="5736092224453113618">{NUM_FILES,plural, =0{Le datha noma idivayisi yakho akuhlangabezani nezinye izinqubomgomo zokuvikeleka zenhlangano yakho. Hlola nomphathi wakho mayelana nalokho okudingeka ukuthi kulungiswe.}=1{Leli fayela noma idivayisi yakho akuhlangabezani nezinye izinqubomgomo zokuvikeleka zenhlangano yakho. Hlola nomphathi wakho mayelana nalokho okudingeka ukuthi kulungiswe.}one{Lamafayela awahlangabezani nezinye izinqubomgomo zokuvikeleka zenhlangano yakho. Hlola nomphathi wakho mayelana nalokho okudingeka ukuthi kulungiswe.}other{Lamafayela awahlangabezani nezinye izinqubomgomo zokuvikeleka zenhlangano yakho. Hlola nomphathi wakho mayelana nalokho okudingeka ukuthi kulungiswe.}}</translation>
 <translation id="5736796278325406685">Sicela ufake igama lomsebenzisi elivumelekile</translation>
 <translation id="5738093759615225354">Udinga lo khiye wokungena ukuze ungene ngemvume kwikhompyutha yakho</translation>
-<translation id="5738329404678738022">Gcina amabhukhimakhi akho nokunye ngokuvumelanisa</translation>
 <translation id="5739017626473506901">Ngena ngemvume ukuze usize u-<ph name="USER_NAME" /> angeze i-akhawunti yesikole</translation>
 <translation id="5739235828260127894">Ilinde ukuqinisekisa. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">Yinkulu kakhulu</translation>
@@ -5277,7 +5273,6 @@
 <translation id="5757375109985023827">Khetha ithebhu yokubuka kuqala</translation>
 <translation id="5758631781033351321">Uzothola uhlu lwakho lokufunda lapha</translation>
 <translation id="5759728514498647443">Amadokhumenti owathumela ekuphrinteni nge-<ph name="APP_NAME" /> angafundwa nge-<ph name="APP_NAME" />.</translation>
-<translation id="5760508342220592715">Ngena ngemvume ukuze uthole izinzuzo ezengeziwe</translation>
 <translation id="5762787084360227629">Faka ulwazi lwe-Google Account</translation>
 <translation id="5763751966069581670">Awekho amadivayisi e-USB atholakele</translation>
 <translation id="5764483294734785780">Lo&amp;ndoloza umsindo njenge...</translation>
@@ -7816,7 +7811,6 @@
 <translation id="8059417245945632445">&amp;Hlola amadivayisi</translation>
 <translation id="8059456211585183827">Awekho amaphrinta atholakalayo ukuze alondolozwe.</translation>
 <translation id="8061091456562007989">Yibuyisele emuva</translation>
-<translation id="8061965471006133016">Ukuvikeleka okwengeziwe kumaphasiwedi akho nokunye okwengeziwe</translation>
 <translation id="8061970399284390013">Ukuhlolwa kokupela kanye ne-grammar</translation>
 <translation id="8061991877177392872">Kubonakala sengathi usuyisethile kakade i-Voice Match ngomsizi wakho kwenye idivayisi. Lokhu kurekhodwa kwangaphambilini kade kusetshenziselwa ukwenza imodeli yezwi kule divayisi.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{Ishidi lephepha eli-1}one{amashidi ephepha a-{COUNT}}other{amashidi wephepha a-{COUNT}}}</translation>
diff --git a/chrome/app/resources/google_chrome_strings_af.xtb b/chrome/app/resources/google_chrome_strings_af.xtb
index 5121b9f..59f6134 100644
--- a/chrome/app/resources/google_chrome_strings_af.xtb
+++ b/chrome/app/resources/google_chrome_strings_af.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Meer oor Chrome-bedryfstelsel</translation>
 <translation id="1154147086299354128">&amp;Maak in Chrome oop</translation>
 <translation id="1203500561924088507">Dankie dat jy geïnstalleer het. Jy moet jou blaaier herbegin voordat jy <ph name="BUNDLE_NAME" /> gebruik.</translation>
-<translation id="1236866257838264361">Jy kan Chrome ten beste benut</translation>
 <translation id="1278833599417554002">Begin weer om &amp;Chrome op te dateer</translation>
 <translation id="1302523850133262269">Wag asseblief terwyl Chrome die jongste stelselopdaterings installeer.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> vereis dat jy die volgende diensbepalings lees en aanvaar voordat jy hierdie toestel gebruik. Hierdie bepalings wysig, beperk of brei nie die Google Chrome OS Flex-bepalings uit nie.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Laai tans af … <ph name="HOURS" /> uur oor</translation>
 <translation id="6010556343189461180">Jy het macOS 10.15 of nuwer nodig om in die toekoms Google Chrome-opdaterings te kry. Hierdie rekenaar gebruik macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome gaan nou toemaak.}=1{Chrome gaan oor 1 sekonde toemaak.}other{Chrome gaan oor # sekondes toemaak.}}</translation>
+<translation id="6022659036123304283">Maak Chrome jou eie</translation>
 <translation id="6040143037577758943">Maak toe</translation>
 <translation id="6070348360322141662">Google Chrome sal jou data enkripteer vir bykomende sekuriteit</translation>
 <translation id="608006075545470555">Voeg werkprofiel by hierdie blaaier</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb
index dcd9308e8..43ced71 100644
--- a/chrome/app/resources/google_chrome_strings_am.xtb
+++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ስለChromeOS</translation>
 <translation id="1154147086299354128">&amp;በChrome ውስጥ ክፈት</translation>
 <translation id="1203500561924088507">ሰለተጫኑ እናመሰግናለን። <ph name="BUNDLE_NAME" />ን ከመጠቀምዎ በፊት አሳሽዎን እንደገና ማስጀመር አለብዎት።</translation>
-<translation id="1236866257838264361">ከChrome ማግኘት የሚችሉትን ሁሉ በማግኘት መደሰት ይችላሉ</translation>
 <translation id="1278833599417554002">&amp;Chromeን ለማዘመን ዳግም ያስነሱት</translation>
 <translation id="1302523850133262269">እባክዎ Chrome የቅርብ ጊዜዎቹን ዝማኔዎች እስኪጭን ድረስ ይጠብቁ።</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> ይህን መሣሪያ ከመጠቀምዎ በፊት የሚከተለውን የአገልግሎት ውል እንዲያነብቡ እና እንዲቀበሉ ይፈለጋል። ይህ ውል የGoogle ChromeOS Flex ውሉን አያስፋፋውም፣ አይቀይረውም ወይም አይገድበውም።</translation>
@@ -261,6 +260,7 @@
 <translation id="6003112304606738118">በማውረድ ላይ... <ph name="HOURS" /> ሰዓት(ታት) ይቀራል(ሉ)</translation>
 <translation id="6010556343189461180">የወደፊት የGoogle Chrome ዝማኔዎችን ለማግኘት macOS 10.15 ወይም ከዚያ በላይ ያስፈልግዎታል። ይህ ኮምፒውተር macOS 10.14 እየተጠቀመ ነው።</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome አሁን ይዘጋል።}=1{Chrome በ1 ሰከንድ ውስጥ ይዘጋል።}one{Chrome በ# ሰከንድ ውስጥ ይዘጋል።}other{Chrome በ# ሰከንዶች ውስጥ ይዘጋል።}}</translation>
+<translation id="6022659036123304283">Chromeን የራስዎ ያድርጉት</translation>
 <translation id="6040143037577758943">ዝጋ</translation>
 <translation id="6070348360322141662">ለተጨማሪ ደህንነት ሲባል Google Chrome ውሂብዎን ያመሰጥረዋል</translation>
 <translation id="608006075545470555">የስራ መገለጫ ወደዚህ አሳሽ ያክሉ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb
index 8a22384..41d5834 100644
--- a/chrome/app/resources/google_chrome_strings_ar.xtb
+++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">‏لمحة عن ChromeOS</translation>
 <translation id="1154147086299354128">‏&amp;فتح في Chrome</translation>
 <translation id="1203500561924088507">شكرًا على التثبيت. عليك إعادة تشغيل المتصفِّح قبل استخدام <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">‏يمكنك الاستفادة إلى أقصى حدّ من Chrome</translation>
 <translation id="1278833599417554002">‏إعادة تشغيل متصفِّح Chrome لتحديثه</translation>
 <translation id="1302523850133262269">‏يُرجى الانتظار لحين تثبيت Chrome لآخر تحديثات النظام.</translation>
 <translation id="1335640173511558774">‏يطلب <ph name="MANAGER" /> منك قراءة بنود الخدمة التالية وقبولها قبل استخدام هذا الجهاز، مع العلم بأنّ هذه البنود لا توسِّع نطاق بنود نظام التشغيل ChromeOS Flex من Google ولا تعدلِّها ولا تفرض قيودًا عليها.</translation>
@@ -258,6 +257,7 @@
 <translation id="6003112304606738118">جارٍ التنزيل… الساعات المتبقّية: <ph name="HOURS" /></translation>
 <translation id="6010556343189461180">‏للحصول على تحديثات Google Chrome في المستقبل، يجب استخدام جهاز يعمل بنظام التشغيل macOS 10.15 أو إصدار أحدث. يعمل هذا الكمبيوتر بنظام التشغيل macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{‏سيتم الآن إغلاق متصفِّح Chrome.}=1{‏سيتم إغلاق متصفِّح Chrome بعد ثانية واحدة.}two{‏سيتم إغلاق متصفِّح Chrome ثانيتَين.}few{‏سيتم إغلاق متصفِّح Chrome بعد # ثوانٍ.}many{‏سيتم إغلاق متصفِّح Chrome بعد # ثانيةً.}other{‏سيتم إغلاق متصفِّح Chrome بعد # ثانية.}}</translation>
+<translation id="6022659036123304283">‏اجعل Chrome متصفِّحك الدائم.</translation>
 <translation id="6040143037577758943">إغلاق</translation>
 <translation id="6070348360322141662">‏لمزيد من الأمان، سيشفِّر Google Chrome بياناتك</translation>
 <translation id="608006075545470555">إضافة ملف شخصي للعمل على هذا المتصفِّح</translation>
diff --git a/chrome/app/resources/google_chrome_strings_as.xtb b/chrome/app/resources/google_chrome_strings_as.xtb
index 59640d8..a33f2d1 100644
--- a/chrome/app/resources/google_chrome_strings_as.xtb
+++ b/chrome/app/resources/google_chrome_strings_as.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOSৰ বিষয়ে</translation>
 <translation id="1154147086299354128">Chromeত &amp;খোলক</translation>
 <translation id="1203500561924088507">ইনষ্টল কৰাৰ বাবে ধন্যবাদ। আপুনি <ph name="BUNDLE_NAME" /> ব্যৱহাৰ কৰাৰ পূৰ্বে আপোনাৰ ব্ৰাউজাৰটো ৰিষ্টাৰ্ট কৰিবই লাগিব।</translation>
-<translation id="1236866257838264361">আপুনি Chrome পাৰ্যমানে উপভোগ কৰিব পাৰে</translation>
 <translation id="1278833599417554002">&amp;Chrome আপডে'ট কৰিবলৈ পুনৰ লঞ্চ কৰক</translation>
 <translation id="1302523850133262269">Chromeএ শেহতীয়া ছিষ্টেম আপডে’ট ইনষ্টল কৰালৈ অপেক্ষা কৰক।</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" />ৰ বাবে আপুনি এই ডিভাইচটো ব্যৱহাৰ কৰাৰ পূৰ্বে তলত উল্লেখ কৰা সেৱাৰ চৰ্তাৱলী পঢ়ি তাত সন্মতি দিয়াৰ আৱশ্যক। এই চৰ্তাৱলীয়ে ChromeOS Flexৰ চৰ্তাৱলী বিস্তাৰ, সংশোধন অথবা সীমিত নকৰে।</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">ডাউনল’ড হৈ আছে... <ph name="HOURS" /> ঘণ্টা বাকী আছে</translation>
 <translation id="6010556343189461180">Google Chromeৰ ভৱিষ্যতৰ আপডে’টসমূহ পাবলৈ আপোনাক macOS 10.15 অথবা তাৰ পাছৰ সংস্কৰণৰ আৱশ্যক হ’ব। এই কম্পিউটাৰটোৱে macOS 10.14 ব্যৱহাৰ কৰি আছে।</translation>
 <translation id="6022388122721048220">{0,plural, =0{এতিয়া Chrome বন্ধ হ’ব।}=1{১ ছেকেণ্ডত Chrome বন্ধ হ’ব।}one{# ছেকেণ্ডত Chrome বন্ধ হ’ব।}other{# ছেকেণ্ডত Chrome বন্ধ হ’ব।}}</translation>
+<translation id="6022659036123304283">আপোনাৰ ডিভাইচত Chromeৰ ছেট আপ কৰক</translation>
 <translation id="6040143037577758943">বন্ধ কৰক</translation>
 <translation id="6070348360322141662">অতিৰিক্ত সুৰক্ষাৰ বাবে Google Chromeএ আপোনাৰ ডেটা এনক্ৰিপ্ট কৰিব</translation>
 <translation id="608006075545470555">এই ব্ৰাউজাৰত কৰ্মস্থানৰ প্ৰ’ফাইল যোগ দিয়ক</translation>
diff --git a/chrome/app/resources/google_chrome_strings_az.xtb b/chrome/app/resources/google_chrome_strings_az.xtb
index 07eb276c..ca94f1bd 100644
--- a/chrome/app/resources/google_chrome_strings_az.xtb
+++ b/chrome/app/resources/google_chrome_strings_az.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS haqqında</translation>
 <translation id="1154147086299354128">&amp;Chrome'da açın</translation>
 <translation id="1203500561924088507">Quraşdırdığınız üçün təşəkkür edirik. <ph name="BUNDLE_NAME" /> istifadə etməzdən əvvəl brauzerinizi yenidən başlatmalısınız.</translation>
-<translation id="1236866257838264361">Chrome'dan maksimum yararlana bilərsiniz</translation>
 <translation id="1278833599417554002">&amp;Chrome'u güncəlləmək üçün yenidən başladın</translation>
 <translation id="1302523850133262269">Chrome'un ən son sistem güncəlləşmələrini quraşdırmasını gözləyin.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> bu cihazı istifadə etməzdən əvvəl aşağıdakı Xidmət Şərtlərini oxumağınızı və qəbul etməyinizi tələb edir. Bu şərtlər Google ChromeOS Flex Şərtlərini artırmır, dəyişdirmir və ya məhdudlaşdırmır.</translation>
@@ -257,6 +256,7 @@
 <translation id="6003112304606738118">Endirilir... <ph name="HOURS" /> saat qalıb</translation>
 <translation id="6010556343189461180">Google Chrome güncəlləmələrini əldə etmək üçün macOS 10.15 və ya daha yeni versiya tələb olunur. Bu kompüter macOS 10.14 istifadə edir.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome indi bağlanacaq.}=1{Chrome 1 saniyə sonra bağlanacaq.}other{Chrome # saniyə sonra bağlanacaq.}}</translation>
+<translation id="6022659036123304283">Chrome'u özünüzküləşdirin</translation>
 <translation id="6040143037577758943">Qapat</translation>
 <translation id="6070348360322141662">Əlavə təhlükəsizlik üçün Google Chrome datanı şifrələyəcək</translation>
 <translation id="608006075545470555">Bu brauzerə İş Profili əlavə edin</translation>
diff --git a/chrome/app/resources/google_chrome_strings_be.xtb b/chrome/app/resources/google_chrome_strings_be.xtb
index 66108e6..3dc33fc 100644
--- a/chrome/app/resources/google_chrome_strings_be.xtb
+++ b/chrome/app/resources/google_chrome_strings_be.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Пра Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Адкрыць у браўзеры Chrome</translation>
 <translation id="1203500561924088507">Дзякуй, што ўсталявалі <ph name="BUNDLE_NAME" />. Каб завяршыць усталяванне, перазапусціце браўзер.</translation>
-<translation id="1236866257838264361">Вы зможаце карыстацца ўсімі магчымасцямі Chrome</translation>
 <translation id="1278833599417554002">Перазапусціць, каб абнавіць &amp;Chrome</translation>
 <translation id="1302523850133262269">Пачакайце, пакуль Chrome усталюе апошнія абнаўленні сістэмы.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> патрабуе ад вас прачытаць і прыняць наступныя Умовы выкарыстання, перш чым пачаць карыстацца прыладай. Гэтыя ўмовы не пашыраюць, не змяняюць і не абмяжоўваюць Умовы выкарыстання Chrome OS Flex.</translation>
@@ -254,12 +253,14 @@
 <translation id="5895138241574237353">Перазапусціць</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Уваход у сетку</translation>
 <translation id="5924017743176219022">Ідзе падключэнне да інтэрнэту...</translation>
+<translation id="5932997892801542621">Пры ўводзе тэксту ў адрасны радок або ў поле пошуку Chrome адпраўляе ваш запыт у Google Дыск, каб прапанаваць вам найбольш рэлевантныя файлы. У рэжыме інкогніта гэта функцыя не працуе.</translation>
 <translation id="5940385492829620908">Тут знаходзяцца вашы вэб-старонкі, закладкі і іншыя даныя браўзера Chrome.</translation>
 <translation id="5941711191222866238">Згарнуць</translation>
 <translation id="5941830788786076944">Зрабіць Google Chrome стандартным браўзерам</translation>
 <translation id="6003112304606738118">Ідзе спампоўванне… Застаецца <ph name="HOURS" /> гадз</translation>
 <translation id="6010556343189461180">Каб атрымліваць наступныя абнаўленні Google Chrome, вам патрэбная версія macOS 10.15 ці пазнейшая. На гэтым камп'ютары выкарыстоўваецца macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Браўзер Chrome будзе зараз закрыты.}=1{Браўзер Chrome будзе закрыты праз 1 секунду.}one{Браўзер Chrome будзе закрыты праз # секунду.}few{Браўзер Chrome будзе закрыты праз # секунды.}many{Браўзер Chrome будзе закрыты праз # секунд.}other{Браўзер Chrome будзе закрыты праз # секунды.}}</translation>
+<translation id="6022659036123304283">Наладзьце Chrome пад сябе</translation>
 <translation id="6040143037577758943">Закрыць</translation>
 <translation id="6070348360322141662">Для дадатковай бяспекі Google Chrome будзе шыфраваць вашы даныя</translation>
 <translation id="608006075545470555">Дадаванне працоўнага профілю ў гэты браўзер</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bg.xtb b/chrome/app/resources/google_chrome_strings_bg.xtb
index 5dde4ce..83348484 100644
--- a/chrome/app/resources/google_chrome_strings_bg.xtb
+++ b/chrome/app/resources/google_chrome_strings_bg.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Всичко за Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Отваряне в Chrome</translation>
 <translation id="1203500561924088507">Благодарим ви, че инсталирахте <ph name="BUNDLE_NAME" />. Трябва да рестартирате браузъра си, преди да използвате това приложение.</translation>
-<translation id="1236866257838264361">Можете да се възползвате максимално от Chrome</translation>
 <translation id="1278833599417554002">Повторно стартиране за актуализиране на &amp;Chrome</translation>
 <translation id="1302523850133262269">Моля, изчакайте, докато Chrome инсталира най-новите системни актуализации.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> изисква да прочетете и приемете следните Общи условия, преди да използвате това устройство. Те не разширяват, не променят, нито ограничават Общите условия на Google ChromeOS Flex.</translation>
@@ -249,12 +248,14 @@
 <translation id="5895138241574237353">Рестартиране</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Вход в мрежата</translation>
 <translation id="5924017743176219022">Установява се връзка с интернет...</translation>
+<translation id="5932997892801542621">Когато пишете в адресната лента или полето за търсене, Chrome изпраща въведеното от вас до Google Диск с цел получаване на предложения за елементи. Тази функция е изключена в режим „инкогнито“.</translation>
 <translation id="5940385492829620908">Тук ще намерите посещаваните от вас места в мрежата, отметките и другите си неща в Chrome.</translation>
 <translation id="5941711191222866238">Намаляване</translation>
 <translation id="5941830788786076944">Искам Google Chrome да бъде браузърът по подразбиране</translation>
 <translation id="6003112304606738118">Изтегля се... Оставащо време: <ph name="HOURS" /> ч</translation>
 <translation id="6010556343189461180">За да получавате бъдещи актуализации на Google Chrome, трябва да използвате macOS 10.15 или по-нова версия. Компютърът ви работи с macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ще се затвори сега.}=1{Chrome ще се затвори след 1 секунда.}other{Chrome ще се затвори след # секунди.}}</translation>
+<translation id="6022659036123304283">Персонализирайте Chrome според вкуса си</translation>
 <translation id="6040143037577758943">Затваряне</translation>
 <translation id="6070348360322141662">За повишаване на сигурността Google Chrome ще шифрова данните ви</translation>
 <translation id="608006075545470555">Добавяне на служебен потребителски профил към този браузър</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb
index 686ffe3..f06292c71 100644
--- a/chrome/app/resources/google_chrome_strings_bn.xtb
+++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">ChromeOS সম্পর্কে</translation>
 <translation id="1154147086299354128">&amp;Chrome এ খুলুন</translation>
 <translation id="1203500561924088507">ইনস্টল করার জন্য ধন্যবাদ। <ph name="BUNDLE_NAME" /> ব্যবহার করার আগে আপনাকে অবশ্যই ব্রাউজার রিস্টার্ট করতে হবে।</translation>
-<translation id="1236866257838264361">Chrome থেকে সবচেয়ে বেশি সুবিধা পেতে পারেন</translation>
 <translation id="1278833599417554002">&amp;Chrome আপডেট করতে আবার লঞ্চ করুন</translation>
 <translation id="1302523850133262269">Chrome যখন সাম্প্রতিক সিস্টেম আপডেটগুলিকে ইনস্টল করে তখন দয়া করে অপেক্ষা করুন৷</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" />-এ এই ডিভাইস ব্যবহার করার আগে আপনাকে নিম্নলিখিত পরিষেবার শর্তাবলী পড়ে নিতে হবে এবং তাতে সম্মতি দিতে হবে। এইসব শর্ত Google ChromeOS Flex-এর শর্তাবলীকে সম্প্রসারণ, পরিবর্তন বা সীমাবদ্ধ করে না।</translation>
@@ -258,6 +257,7 @@
 <translation id="6003112304606738118">ডাউনলোড হচ্ছে... <ph name="HOURS" /> ঘণ্টা বাকি আছে</translation>
 <translation id="6010556343189461180">ভবিষ্যতে Google Chrome আপডেট পেতে হলে, আপনার macOS 10.15 বা এর পরবর্তী ভার্সন থাকতে হবে। এই কম্পিউটারে macOS 10.14 ভার্সন ব্যবহার করা হচ্ছে।</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome এখন বন্ধ হবে।}=1{Chrome ১ সেকেন্ডের মধ্যে বন্ধ হয়ে যাবে।}one{Chrome # সেকেন্ডের মধ্যে বন্ধ হয়ে যাবে।}other{Chrome # সেকেন্ডের মধ্যে বন্ধ হয়ে যাবে।}}</translation>
+<translation id="6022659036123304283">Chrome-কে আপনার করে নিন</translation>
 <translation id="6040143037577758943">বন্ধ</translation>
 <translation id="6070348360322141662">অতিরিক্ত নিরাপত্তার জন্য, Google Chrome আপনার ডেটা এনক্রিপ্ট করবে</translation>
 <translation id="608006075545470555">এই ব্রাউজারে অফিস প্রোফাইল যোগ করুন</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bs.xtb b/chrome/app/resources/google_chrome_strings_bs.xtb
index f2812e8c..79433398 100644
--- a/chrome/app/resources/google_chrome_strings_bs.xtb
+++ b/chrome/app/resources/google_chrome_strings_bs.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">O ChromeOS-u</translation>
 <translation id="1154147086299354128">&amp;Otvori u Chromeu</translation>
 <translation id="1203500561924088507">Hvala što ste instalirali. Morate ponovo pokrenuti preglednik prije nego što možete koristiti <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Možete uživati u svim prednostima Chromea</translation>
 <translation id="1278833599417554002">Ponovo pokrenite da ažurirate Chrome</translation>
 <translation id="1302523850133262269">Sačekajte dok Chrome instalira najnovija sistemska ažuriranja.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> zahtijeva da prije korištenja uređaja pročitate i prihvatite sljedeće Uslove korištenja usluge. Ovi uslovi ne predstavljaju dodatak, izmjenu ili ograničenje Uslova za Google ChromeOS Flex.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Preuzimanje… Preostalo je <ph name="HOURS" /> h</translation>
 <translation id="6010556343189461180">Da primate buduća ažuriranja za Google Chrome, trebat će vam macOS 10.15 ili novija verzija. Ovaj računar koristi macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome će se zatvoriti odmah.}=1{Chrome će se zatvoriti za 1 sekundu.}one{Chrome će se zatvoriti za # sekundu.}few{Chrome će se zatvoriti za # sekunde.}other{Chrome će se zatvoriti za # sekundi.}}</translation>
+<translation id="6022659036123304283">Prilagodite Chrome svojim potrebama</translation>
 <translation id="6040143037577758943">Zatvori</translation>
 <translation id="6070348360322141662">Za dodatnu sigurnost, Google Chrome će šifrirati vaše podatke</translation>
 <translation id="608006075545470555">Dodajte radni profil na ovaj preglednik</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb
index 105c9fc..66a55b3 100644
--- a/chrome/app/resources/google_chrome_strings_ca.xtb
+++ b/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Sobre Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Obre a Chrome</translation>
 <translation id="1203500561924088507">T'agraïm la instal·lació. Has de reiniciar el navegador abans d'utilitzar <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Pots treure el màxim profit de Chrome</translation>
 <translation id="1278833599417554002">Reinicia per actualitzar &amp;Chrome</translation>
 <translation id="1302523850133262269">Espereu mentre Chrome instal·la les actualitzacions més recents del sistema.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> requereix que llegeixis i acceptis les condicions del servei següents abans d'utilitzar el dispositiu. Aquestes condicions no amplien, modifiquen ni limiten les condicions de Google ChromeOS Flex.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">S'està baixant… Queden <ph name="HOURS" /> hores</translation>
 <translation id="6010556343189461180">Per obtenir actualitzacions de Google Chrome en un futur, necessitaràs macOS 10.15 o una versió posterior. Aquest ordinador utilitza macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome es tancarà ara.}=1{Chrome es tancarà d'aquí a 1 segon.}other{Chrome es tancarà d'aquí a # segons.}}</translation>
+<translation id="6022659036123304283">Personalitza Chrome</translation>
 <translation id="6040143037577758943">Tanca</translation>
 <translation id="6070348360322141662">Per a més seguretat, Google Chrome encriptarà les teves dades</translation>
 <translation id="608006075545470555">Afegeix un perfil de treball a aquest navegador</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb
index dbf0c29f8..d8b1b76 100644
--- a/chrome/app/resources/google_chrome_strings_cs.xtb
+++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">O systému ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Otevřít v Chromu</translation>
 <translation id="1203500561924088507">Děkujeme za instalaci aplikace <ph name="BUNDLE_NAME" />. Před jejím použitím je potřeba restartovat prohlížeč.</translation>
-<translation id="1236866257838264361">Prohlížeč Chrome můžete využít na maximum</translation>
 <translation id="1278833599417554002">Znovu spustit a aktualizovat &amp;Chrome</translation>
 <translation id="1302523850133262269">Počkejte prosím, než Chrome nainstaluje nejnovější aktualizace systému.</translation>
 <translation id="1335640173511558774">Doména <ph name="MANAGER" /> vyžaduje, abyste si před použitím tohoto zařízení přečetli následující smluvní podmínky a odsouhlasili je. Tyto smluvní podmínky nerozšiřují, neupravují ani neomezují smluvní podmínky systému Google ChromeOS Flex.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Stahování… Zbývající čas: <ph name="HOURS" /> h.</translation>
 <translation id="6010556343189461180">Pokud chcete v budoucnu dostávat aktualizace prohlížeče Google Chrome, budete potřebovat systém MacOS 10.15 nebo novější. Tento počítač používá systém macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome se teď zavře.}=1{Chrome se za 1 sekundu zavře.}few{Chrome se za # sekundy zavře.}many{Chrome se za # sekundy zavře.}other{Chrome se za # sekund zavře.}}</translation>
+<translation id="6022659036123304283">Přizpůsobte si Chrome</translation>
 <translation id="6040143037577758943">Zavřít</translation>
 <translation id="6070348360322141662">V zájmu lepšího zabezpečení bude Google Chrome vaše data šifrovat</translation>
 <translation id="608006075545470555">Přidat do tohoto prohlížeče pracovní profil</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cy.xtb b/chrome/app/resources/google_chrome_strings_cy.xtb
index 547a11324..d3f79c9d 100644
--- a/chrome/app/resources/google_chrome_strings_cy.xtb
+++ b/chrome/app/resources/google_chrome_strings_cy.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Ynghylch ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Agor yn Chrome</translation>
 <translation id="1203500561924088507">Diolch am osod. Rhaid i chi ailgychwyn eich porwr cyn defnyddio <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Gallwch fwynhau'r mwyaf allan o Chrome</translation>
 <translation id="1278833599417554002">Ail-lansiwch i ddiweddaru &amp;Chrome</translation>
 <translation id="1302523850133262269">Arhoswch dra bod Chrome yn gosod y diweddariadau system diweddaraf.</translation>
 <translation id="1335640173511558774">Mae <ph name="MANAGER" /> yn gofyn i chi ddarllen a derbyn y Telerau Gwasanaeth canlynol cyn defnyddio'r ddyfais hon. Nid yw'r telerau hyn yn ehangu, addasu na chyfyngu ar Delerau Google ChromeOS Flex.</translation>
@@ -255,12 +254,14 @@
 <translation id="5895138241574237353">Ailgychwyn</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Mewngofnodi Rhwydwaith</translation>
 <translation id="5924017743176219022">Wrthi'n cysylltu â'r Rhyngrwyd...</translation>
+<translation id="5932997892801542621">Pan fyddwch yn teipio yn y bar cyfeiriad neu'r blwch chwilio, mae Chrome yn anfon yr hyn rydych yn ei deipio i Google Drive i gael awgrymiadau eitem. Mae hwn wedi'i ddiffodd yn y modd Anhysbys.</translation>
 <translation id="5940385492829620908">Mae'ch gwe, nodau tudalen, a phethau Chrome eraill yn byw yma.</translation>
 <translation id="5941711191222866238">Lleihau</translation>
 <translation id="5941830788786076944">Gwneud Google Chrome y porwr diofyn</translation>
 <translation id="6003112304606738118">Wrthi'n lawrlwytho... Mae <ph name="HOURS" /> awr ar ôl</translation>
 <translation id="6010556343189461180">I gael diweddariadau Google Chrome yn y dyfodol, bydd angen macOS 10.15 neu'n hwyrach arnoch. Mae'r cyfrifiadur hwn yn defnyddio macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Bydd Chrome yn cau nawr.}=1{Bydd Chrome yn cau ymhen 1 eiliad.}two{Bydd Chrome yn cau ymhen # eiliad.}few{Bydd Chrome yn cau ymhen # eiliad.}many{Bydd Chrome yn cau ymhen # eiliad.}other{Bydd Chrome yn cau ymhen # eiliad.}}</translation>
+<translation id="6022659036123304283">Personoleiddio Chrome</translation>
 <translation id="6040143037577758943">Cau</translation>
 <translation id="6070348360322141662">Er mwyn sicrhau mwy o ddiogelwch, bydd Google Chrome yn amgryptio eich data</translation>
 <translation id="608006075545470555">Ychwanegu Proffil Gwaith i'r porwr hwn</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb
index 338c2c2..6b6bf2b0 100644
--- a/chrome/app/resources/google_chrome_strings_da.xtb
+++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Om ChromeOS</translation>
 <translation id="1154147086299354128">Åbn i Chr&amp;ome</translation>
 <translation id="1203500561924088507">Tak for installationen. Du skal genstarte browseren, før du bruger <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Få mest muligt ud af Chrome</translation>
 <translation id="1278833599417554002">Genstart og opdater &amp;Chrome</translation>
 <translation id="1302523850133262269">Vent, mens Chrome installerer de nyeste systemopdateringer.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> kræver, at du læser og accepterer følgende servicevilkår, inden du bruger denne enhed. Disse vilkår udvider, ændrer eller begrænser på ingen måde vilkårene for Google ChromeOS Flex.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">Downloader… Der er <ph name="HOURS" /> timer tilbage</translation>
 <translation id="6010556343189461180">Hvis du vil have fremtidige Google Chrome-opdateringer, skal du have macOS 10.15 eller nyere. Denne computer anvender macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome lukker nu.}=1{Chrome lukker om 1 sekund.}one{Chrome lukker om # sekund.}other{Chrome lukker om # sekunder.}}</translation>
+<translation id="6022659036123304283">Gør Chrome til din egen</translation>
 <translation id="6040143037577758943">Luk</translation>
 <translation id="6070348360322141662">Som et ekstra sikkerhedsniveau krypterer Google Chrome dine data</translation>
 <translation id="608006075545470555">Føj arbejdsprofilen til denne browser</translation>
diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb
index 08fb690..aa852a5 100644
--- a/chrome/app/resources/google_chrome_strings_de.xtb
+++ b/chrome/app/resources/google_chrome_strings_de.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Über ChromeOS</translation>
 <translation id="1154147086299354128">In Chr&amp;ome öffnen</translation>
 <translation id="1203500561924088507">Vielen Dank für die Installation. Du musst deinen Browser neu starten, bevor du <ph name="BUNDLE_NAME" /> verwenden kannst.</translation>
-<translation id="1236866257838264361">Chrome optimal nutzen</translation>
 <translation id="1278833599417554002">Neu starten, um &amp;Chrome zu aktualisieren</translation>
 <translation id="1302523850133262269">Bitte warte, bis die aktuellen Systemupdates von Chrome installiert wurden.</translation>
 <translation id="1335640173511558774">Für <ph name="MANAGER" /> ist es erforderlich, dass du vor der Verwendung dieses Geräts die folgenden Nutzungsbedingungen liest und akzeptierst. Durch diese Nutzungsbedingungen werden die Google Chrome OS Flex-Nutzungsbedingungen nicht erweitert, geändert oder eingeschränkt.</translation>
@@ -247,12 +246,14 @@
 <translation id="5895138241574237353">Neu starten</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Netzwerkanmeldung</translation>
 <translation id="5924017743176219022">Internetverbindung wird hergestellt…</translation>
+<translation id="5932997892801542621">Wenn du etwas in die Adressleiste oder das Suchfeld eingibst, sendet Chrome deine Eingabe an Google Drive, damit du Vorschläge für Elemente erhältst. Im Inkognitomodus ist diese Funktion deaktiviert.</translation>
 <translation id="5940385492829620908">Hier kannst du im Web surfen und deine Lesezeichen und andere Chrome-Inhalte speichern.</translation>
 <translation id="5941711191222866238">Minimieren</translation>
 <translation id="5941830788786076944">Google Chrome als Standardbrowser festlegen</translation>
 <translation id="6003112304606738118">Wird heruntergeladen… Noch <ph name="HOURS" /> Stunde(n)</translation>
 <translation id="6010556343189461180">Du benötigst macOS 10.15 oder höher, um zukünftige Google Chrome-Updates zu erhalten. Auf diesem Computer wird macOS 10.14 ausgeführt.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome wird jetzt geschlossen.}=1{Chrome wird in 1 Sekunde geschlossen.}other{Chrome wird in # Sekunden geschlossen.}}</translation>
+<translation id="6022659036123304283">Chrome personalisieren</translation>
 <translation id="6040143037577758943">Schließen</translation>
 <translation id="6070348360322141662">Zur Erhöhung der Sicherheit verschlüsselt Google Chrome deine Daten</translation>
 <translation id="608006075545470555">Arbeitsprofil zu diesem Browser hinzufügen</translation>
diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb
index cb92503..6a91c9a 100644
--- a/chrome/app/resources/google_chrome_strings_el.xtb
+++ b/chrome/app/resources/google_chrome_strings_el.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Σχετικά με το Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Άνοιγμα στο Chrome</translation>
 <translation id="1203500561924088507">Ευχαριστούμε για την εγκατάσταση. Πρέπει να επανεκκινήσετε το πρόγραμμα περιήγησής σας πριν από τη χρήση του <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Μπορείτε να απολαύσετε στο έπακρο το Chrome</translation>
 <translation id="1278833599417554002">Επανεκκίνηση για ενημέρωση του &amp;Chrome</translation>
 <translation id="1302523850133262269">Περιμένετε μέχρι να γίνει εγκατάσταση των πιο πρόσφατων ενημερώσεων συστήματος από το Chrome.</translation>
 <translation id="1335640173511558774">Το <ph name="MANAGER" /> απαιτεί να διαβάσετε και να αποδεχτείτε τους παρακάτω Όρους Παροχής Υπηρεσιών πριν από τη χρήση αυτής της συσκευής. Οι συγκεκριμένοι όροι δεν επεκτείνουν, τροποποιούν ή περιορίζουν τους Όρους του Google ChromeOS Flex.</translation>
@@ -258,6 +257,7 @@
 <translation id="6003112304606738118">Λήψη… Απομένουν <ph name="HOURS" /> ώρες</translation>
 <translation id="6010556343189461180">Για τη λήψη μελλοντικών ενημερώσεων του Google Chrome, θα χρειαστείτε macOS 10.15 ή νεότερη έκδοση. Αυτός ο υπολογιστής χρησιμοποιεί macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Το Chrome θα κλείσει τώρα.}=1{Το Chrome θα κλείσει σε 1 δευτερόλεπτο.}other{Το Chrome θα κλείσει σε # δευτερόλεπτα.}}</translation>
+<translation id="6022659036123304283">Προσαρμόστε το Chrome για εσάς</translation>
 <translation id="6040143037577758943">Κλείσιμο</translation>
 <translation id="6070348360322141662">Για επιπλέον ασφάλεια, το Google Chrome θα κρυπτογραφήσει τα δεδομένα σας</translation>
 <translation id="608006075545470555">Προσθήκη προφίλ εργασίας σε αυτό το πρόγραμμα περιήγησης</translation>
diff --git a/chrome/app/resources/google_chrome_strings_en-GB.xtb b/chrome/app/resources/google_chrome_strings_en-GB.xtb
index a54bfff..f9593e5 100644
--- a/chrome/app/resources/google_chrome_strings_en-GB.xtb
+++ b/chrome/app/resources/google_chrome_strings_en-GB.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">About Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Open in Chrome</translation>
 <translation id="1203500561924088507">Thanks for installing. You must restart your browser before using <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">You can enjoy the most out of Chrome</translation>
 <translation id="1278833599417554002">Relaunch to update &amp;Chrome</translation>
 <translation id="1302523850133262269">Please wait while Chrome installs the latest system updates.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> requires that you read and accept the following Terms of Service before using this device. These terms do not expand, modify or limit the Google Chrome OS Flex terms.</translation>
@@ -261,6 +260,7 @@
 <translation id="6003112304606738118">Downloading… <ph name="HOURS" /> hour(s) remaining</translation>
 <translation id="6010556343189461180">To get future Google Chrome updates, you'll need macOS 10.15 or later. This computer is using macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome will close now.}=1{Chrome will close in 1 second.}other{Chrome will close in # seconds.}}</translation>
+<translation id="6022659036123304283">Make Chrome your own</translation>
 <translation id="6040143037577758943">Close</translation>
 <translation id="6070348360322141662">For added security, Google Chrome will encrypt your data</translation>
 <translation id="608006075545470555">Add work profile to this browser</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb
index 903d79f..28eb7182 100644
--- a/chrome/app/resources/google_chrome_strings_es-419.xtb
+++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Acerca de Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Abrir en Chrome</translation>
 <translation id="1203500561924088507">Gracias por instalar <ph name="BUNDLE_NAME" />. Debes reiniciar tu navegador antes de usarlo.</translation>
-<translation id="1236866257838264361">Aprovecha Chrome al máximo</translation>
 <translation id="1278833599417554002">Reiniciar para actualizar &amp;Chrome</translation>
 <translation id="1302523850133262269">Espera mientras Chrome instala las últimas actualizaciones del sistema.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> requiere que leas y aceptes las siguientes Condiciones del Servicio antes de usar este dispositivo. Estas condiciones no amplían, modifican ni limitan las Condiciones de Chrome OS Flex.</translation>
@@ -247,12 +246,14 @@
 <translation id="5895138241574237353">Reiniciar</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" />: Acceso a la red</translation>
 <translation id="5924017743176219022">Conectando a Internet...</translation>
+<translation id="5932997892801542621">Cuando escribes en la barra de direcciones o en el cuadro de búsqueda, Chrome envía lo que escribes a Google Drive a fin de obtener sugerencias de artículos. Esta función está desactivada en el modo Incógnito.</translation>
 <translation id="5940385492829620908">Aquí puedes encontrar tus páginas web, favoritos y otros contenidos de Chrome.</translation>
 <translation id="5941711191222866238">Minimizar</translation>
 <translation id="5941830788786076944">Haga de Google Chrome su navegador predeterminado</translation>
 <translation id="6003112304606738118">Descargando… Horas restantes: <ph name="HOURS" /></translation>
 <translation id="6010556343189461180">Para recibir las próximas actualizaciones de Google Chrome, necesitarás macOS 10.15 o versiones posteriores. Esta computadora usa macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome se cerrará ahora.}=1{Chrome se cerrará en 1 segundo.}other{Chrome se cerrará en # segundos.}}</translation>
+<translation id="6022659036123304283">Personaliza Chrome a tu medida</translation>
 <translation id="6040143037577758943">Cerrar</translation>
 <translation id="6070348360322141662">Para mejorar la seguridad, Google Chrome encriptará los datos</translation>
 <translation id="608006075545470555">Agrega un perfil de trabajo a este navegador</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb
index 8192ccb0..028946c9 100644
--- a/chrome/app/resources/google_chrome_strings_es.xtb
+++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Información de ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Abrir en Chrome</translation>
 <translation id="1203500561924088507">Gracias por realizar la instalación. Debes reiniciar tu navegador para poder usar <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Puedes disfrutar al máximo de Chrome</translation>
 <translation id="1278833599417554002">Reiniciar para actualizar &amp;Chrome</translation>
 <translation id="1302523850133262269">Espera mientras Chrome instala las últimas actualizaciones del sistema.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> requiere que leas y aceptes los siguientes Términos del Servicio antes de utilizar este dispositivo. Estos términos no amplían, modifican ni limitan los Términos de Google ChromeOS Flex.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Descargando... Horas restantes: <ph name="HOURS" />.</translation>
 <translation id="6010556343189461180">Para recibir futuras actualizaciones de Google Chrome, necesitarás macOS 10.15 o una versión posterior. Este ordenador utiliza macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome se cerrará ahora.}=1{Chrome se cerrará dentro de 1 segundo.}other{Chrome se cerrará dentro de # segundos.}}</translation>
+<translation id="6022659036123304283">Personaliza Chrome</translation>
 <translation id="6040143037577758943">Cerrar</translation>
 <translation id="6070348360322141662">Para mayor seguridad, Google Chrome cifrará tus datos</translation>
 <translation id="608006075545470555">Añadir perfil de trabajo a este navegador</translation>
diff --git a/chrome/app/resources/google_chrome_strings_et.xtb b/chrome/app/resources/google_chrome_strings_et.xtb
index aa5c2163..2f41d71 100644
--- a/chrome/app/resources/google_chrome_strings_et.xtb
+++ b/chrome/app/resources/google_chrome_strings_et.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Teave Chrome OS-i kohta</translation>
 <translation id="1154147086299354128">&amp;Ava Chrome'is</translation>
 <translation id="1203500561924088507">Täname teid installimise eest. Enne brauseri <ph name="BUNDLE_NAME" /> kasutamist peate selle taaskäivitama.</translation>
-<translation id="1236866257838264361">Kasutage Chrome'i kõiki funktsioone</translation>
 <translation id="1278833599417554002">Taaskäivitage &amp;Chrome'i värskendamiseks</translation>
 <translation id="1302523850133262269">Oodake, kuni Chrome installib uusimad süsteemivärskendused.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> nõuab, et loete enne selle seadme kasutamist läbi järgmised teenusetingimused ja nõustute nendega. Need tingimused ei laienda, muuda ega piira Google Chrome OS Flexi tingimusi.</translation>
@@ -250,12 +249,14 @@
 <translation id="5895138241574237353">Taaskäivitamine</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – võrku sisselogimine</translation>
 <translation id="5924017743176219022">Internetiga ühenduse loomine …</translation>
+<translation id="5932997892801542621">Kui sisestate aadressiribale või otsingukasti teksti, saadab Chrome sisestatud teksti üksusesoovituste hankimiseks Google Drive’i. See on inkognito režiimis välja lülitatud.</translation>
 <translation id="5940385492829620908">Siin asuvad teie veeb, järjehoidjad ja muu Chrome'i kraam.</translation>
 <translation id="5941711191222866238">Minimeeri</translation>
 <translation id="5941830788786076944">Tee Google Chrome vaikebrauseriks</translation>
 <translation id="6003112304606738118">Allalaadimine … <ph name="HOURS" /> tund(i) on jäänud</translation>
 <translation id="6010556343189461180">Google Chrome'i tulevaste värskenduste saamiseks on teil vaja operatsioonisüsteemi macOS 10.15 või uuemat versiooni. See arvuti kasutab operatsioonisüsteemi macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome suletakse nüüd.}=1{Chrome suletakse ühe sekundi pärast.}other{Chrome suletakse # sekundi pärast.}}</translation>
+<translation id="6022659036123304283">Isikupärastage Chrome'i</translation>
 <translation id="6040143037577758943">Sulge</translation>
 <translation id="6070348360322141662">Turvalisuse suurendamiseks krüpteerib Google Chrome teie andmed</translation>
 <translation id="608006075545470555">Tööprofiili lisamine sellesse brauserisse</translation>
diff --git a/chrome/app/resources/google_chrome_strings_eu.xtb b/chrome/app/resources/google_chrome_strings_eu.xtb
index be815ef..3518f606 100644
--- a/chrome/app/resources/google_chrome_strings_eu.xtb
+++ b/chrome/app/resources/google_chrome_strings_eu.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Chrome OS-ri buruz</translation>
 <translation id="1154147086299354128">&amp;Ireki Chrome-n</translation>
 <translation id="1203500561924088507">Eskerrik asko instalatzeagatik. <ph name="BUNDLE_NAME" /> erabiltzeko, arakatzailea berrabiarazi behar duzu.</translation>
-<translation id="1236866257838264361">Atera ahalik eta etekin handiena Chrome-ri</translation>
 <translation id="1278833599417554002">Abiaraz ezazu berriro &amp;Chrome eguneratzeko</translation>
 <translation id="1302523850133262269">Itxaron Chrome-k sistemaren azken eguneratzeak instalatu arte.</translation>
 <translation id="1335640173511558774">Gailua erabili aurretik, <ph name="MANAGER" /> kudeatzaileak jarraian azalduko diren Zerbitzu-baldintzak irakurtzeko eta onartzeko eskatzen dizu. Baldintzok ez dituzte hedatuko, aldatuko edo mugatuko Google Chrome OS Flex-en Baldintzak.</translation>
@@ -261,6 +260,7 @@
 <translation id="6003112304606738118">Deskargatzen… <ph name="HOURS" /> ordu geratzen dira.</translation>
 <translation id="6010556343189461180">Etorkizunean Google Chrome-ren eguneratzeak eskuratzeko, macOS 10.15 edo berriago bat beharko duzu. Ordenagailu hau macOS 10.14 erabiltzen ari da.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Orain itxiko da Chrome.}=1{1 segundo barru itxiko da Chrome.}other{# segundo barru itxiko da Chrome.}}</translation>
+<translation id="6022659036123304283">Zeureganatu Chrome</translation>
 <translation id="6040143037577758943">Itxi</translation>
 <translation id="6070348360322141662">Segurtasun gehiago izateko, Google Chrome-k datuak enkriptatuko ditu</translation>
 <translation id="608006075545470555">Gehitu laneko profila arakatzaile honetan</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb
index 0e38c0b..8581592 100644
--- a/chrome/app/resources/google_chrome_strings_fa.xtb
+++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">‏درباره ChromeOS</translation>
 <translation id="1154147086299354128">‏&amp;باز کردن در Chrome</translation>
 <translation id="1203500561924088507">بابت نصب از شما سپاس‌گزاریم. قبل‌از استفاده از <ph name="BUNDLE_NAME" />، باید مرورگر را بازراه‌اندازی کنید.</translation>
-<translation id="1236866257838264361">‏می‌توانید از Chrome نهایت استفاده را ببرید</translation>
 <translation id="1278833599417554002">‏راه‌اندازی مجدد برای به‌روزرسانی Chrome</translation>
 <translation id="1302523850133262269">‏لطفاً صبر کنید تا Chrome جدیدترین به‌روزرسانی‌های سیستم را نصب کند.</translation>
 <translation id="1335640173511558774">‏<ph name="MANAGER" /> لازم می‌داند که پیش‌از استفاده از این دستگاه، «شرایط خدمات» زیر را بخوانید و آن‌ها را بپذیرید. این شرایط باعث بسط داده شدن، تغییر یافتن،‌ یا محدود شدن «شرایط Google ChromeOS Flex» نمی‌شود.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">درحال بارگیری… <ph name="HOURS" /> ساعت باقی مانده است</translation>
 <translation id="6010556343189461180">‏برای دریافت به‌روزرسانی‌های بعدی Google Chrome، باید macOS نسخه ۱۰.۱۵ یا بالاتر داشته باشید. این رایانه از macOS نسخه ۱۰.۱۴ استفاده می‌کند.</translation>
 <translation id="6022388122721048220">{0,plural, =0{‏Chrome اکنون بسته می‌شود.}=1{‏Chrome تا یک ثانیه دیگر بسته می‌شود.}one{‏Chrome تا # ثانیه دیگر بسته می‌شود.}other{‏Chrome تا # ثانیه دیگر بسته می‌شود.}}</translation>
+<translation id="6022659036123304283">‏Chrome را برای خود اختصاصی کنید</translation>
 <translation id="6040143037577758943">بستن</translation>
 <translation id="6070348360322141662">‏برای امنیت بیشتر، Google Chrome داده‌های شما را رمزگذاری می‌کند</translation>
 <translation id="608006075545470555">افزودن نمایه کاری به این مرورگر</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb
index 36d4626..8850f12 100644
--- a/chrome/app/resources/google_chrome_strings_fi.xtb
+++ b/chrome/app/resources/google_chrome_strings_fi.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Tietoa Chrome-käyttöjärjestelmästä</translation>
 <translation id="1154147086299354128">Avaa Chr&amp;omessa</translation>
 <translation id="1203500561924088507">Kiitos asennuksesta. Selain pitää käynnistää uudelleen ennen kuin <ph name="BUNDLE_NAME" /> otetaan käyttöön.</translation>
-<translation id="1236866257838264361">Saat eniten irti Chromesta</translation>
 <translation id="1278833599417554002">Päivitä &amp;Chrome käynnistämällä se uudelleen</translation>
 <translation id="1302523850133262269">Odota hetki, Chrome asentaa uusimpia järjestelmäpäivityksiä.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> edellyttää, että luet ja hyväksyt seuraavat käyttöehdot ennen tämän laitteen käyttöä. Nämä ehdot eivät laajenna, muokkaa tai rajoita Google ChromeOS Flexin ehtoja.</translation>
@@ -247,12 +246,14 @@
 <translation id="5895138241574237353">Käynnistä uudelleen</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Kirjautuminen verkkoon</translation>
 <translation id="5924017743176219022">Muodostetaan internetyhteyttä…</translation>
+<translation id="5932997892801542621">Kun kirjoitat osoitepalkkiin tai hakukenttään, Chrome lähettää kirjoittamasi tekstin Google Driveen, niin saat parempia ehdotuksia. Tämä on poissa päältä incognito-tilassa.</translation>
 <translation id="5940385492829620908">Tämä on verkkosi, kirjanmerkkiesi ja muun Chrome-sisältösi koti.</translation>
 <translation id="5941711191222866238">Pienennä</translation>
 <translation id="5941830788786076944">Tee Google Chromesta oletusselain</translation>
 <translation id="6003112304606738118">Ladataan… <ph name="HOURS" /> tuntia jäljellä</translation>
 <translation id="6010556343189461180">Sinulla on oltava macOS 10.15 tai uudempi, jotta saat tulevia Google Chromen päivityksiä. Tällä tietokoneella on macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome suljetaan nyt.}=1{Chrome suljetaan 1 sekunnin kuluttua.}other{Chrome suljetaan # sekunnin kuluttua.}}</translation>
+<translation id="6022659036123304283">Tee Chromesta näköisesi</translation>
 <translation id="6040143037577758943">Sulje</translation>
 <translation id="6070348360322141662">Google Chrome lisää suojausta salaamalla tietosi</translation>
 <translation id="608006075545470555">Lisää työprofiili tähän selaimeen</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb
index 518581a..31f4721 100644
--- a/chrome/app/resources/google_chrome_strings_fil.xtb
+++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Tungkol sa ChromeOS</translation>
 <translation id="1154147086299354128">Buksan sa Chr&amp;ome</translation>
 <translation id="1203500561924088507">Salamat sa pag-install. Dapat mong i-restart ang iyong browser bago gamitin ang <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Masusulit mo ang Chrome</translation>
 <translation id="1278833599417554002">Ilunsad ulit para ma-update ang Chrome</translation>
 <translation id="1302523850133262269">Mangyaring maghintay habang ini-install ng Chrome ang mga pinakabagong update sa system.</translation>
 <translation id="1335640173511558774">Hinihiling ng <ph name="MANAGER" /> na basahin at tanggapin mo ang sumusunod na Mga Tuntunin ng Serbisyo bago gamitin ang device na ito. Hindi pinapalawak, binabago, o nililimitahan ng mga tuntuning ito ang Mga Tuntunin ng Google ChromeOS Flex.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Nagda-download... <ph name="HOURS" /> (na) oras na lang ang natitira</translation>
 <translation id="6010556343189461180">Para makakuha ng mga update sa Google Chrome sa hinaharap, mangangailangan ka ng macOS 10.15 o mas bago. Gumagamit ang computer na ito ng macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Magsasara na ngayon ang Chrome.}=1{Magsasara ang Chrome sa loob ng 1 segundo.}one{Magsasara ang Chrome sa loob ng # segundo.}other{Magsasara ang Chrome sa loob ng # na segundo.}}</translation>
+<translation id="6022659036123304283">Gawing iyo ang Chrome</translation>
 <translation id="6040143037577758943">Isara</translation>
 <translation id="6070348360322141662">Para sa karagdagang seguridad, ie-encrypt ng Google Chrome ang iyong data</translation>
 <translation id="608006075545470555">Magdagdag ng Profile sa Trabaho sa browser na ito</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr-CA.xtb b/chrome/app/resources/google_chrome_strings_fr-CA.xtb
index 09493a0c..c6da2b2 100644
--- a/chrome/app/resources/google_chrome_strings_fr-CA.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr-CA.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">À propos de Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Ouvrir dans Chrome</translation>
 <translation id="1203500561924088507">Merci pour l'installation. Vous devez redémarrer votre navigateur avant d'utiliser <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Vous pouvez profiter au maximum de Chrome</translation>
 <translation id="1278833599417554002">Relancer &amp;Chrome pour le mettre à jour</translation>
 <translation id="1302523850133262269">Veuillez patienter pendant que Chrome installe les dernières mises à jour système.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> exige que vous lisiez et acceptiez les conditions d'utilisation suivantes pour utiliser cet appareil. Ces dernières n'étendent pas, ne modifient pas, ni ne restreignent les conditions d'utilisation de Google Chrome OS Flex.</translation>
@@ -261,6 +260,7 @@
 <translation id="6003112304606738118">Téléchargement en cours… <ph name="HOURS" /> heure(s) restante(s)</translation>
 <translation id="6010556343189461180">Vous devez disposer de macOS 10.15 ou d'une version ultérieure pour recevoir les futures mises à jour de Google Chrome. Cet ordinateur fonctionne sous macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome va maintenant se fermer.}=1{Chrome se fermera dans 1 seconde.}one{Chrome se fermera dans # seconde.}other{Chrome se fermera dans # secondes.}}</translation>
+<translation id="6022659036123304283">Appropriez-vous Chrome</translation>
 <translation id="6040143037577758943">Fermer</translation>
 <translation id="6070348360322141662">Pour une sécurité accrue, Google Chrome va crypter vos données</translation>
 <translation id="608006075545470555">Ajouter le profil professionnel à ce navigateur</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb
index 102d436..5bba574b 100644
--- a/chrome/app/resources/google_chrome_strings_fr.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -14,7 +14,6 @@
 <translation id="1152920704813762236">À propos de Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Ouvrir dans Chrome</translation>
 <translation id="1203500561924088507">Merci d'avoir installé notre produit. Vous devez redémarrer votre navigateur avant d'utiliser <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Profitez pleinement de Chrome</translation>
 <translation id="1278833599417554002">Relancer et mettre à jour &amp;Chrome</translation>
 <translation id="1302523850133262269">Veuillez patienter pendant que Chrome installe les dernières mises à jour du système.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> exige que vous lisiez et acceptiez les conditions d'utilisation suivantes pour utiliser cet appareil. Celles-ci n'étendent, ne modifient ni ne restreignent les conditions d'utilisation de Google ChromeOS Flex.</translation>
@@ -254,12 +253,14 @@
 <translation id="5895138241574237353">Redémarrer</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Connexion au réseau</translation>
 <translation id="5924017743176219022">Connexion à Internet…</translation>
+<translation id="5932997892801542621">Lorsque vous saisissez du texte dans la barre d'adresse ou dans le champ de recherche, Chrome envoie ce que vous saisissez à Google Drive pour obtenir des suggestions d'éléments. Ce paramètre est désactivé en navigation privée.</translation>
 <translation id="5940385492829620908">Votre contenu Web, vos favoris et toutes vos données Chrome sont conservés ici.</translation>
 <translation id="5941711191222866238">Réduire</translation>
 <translation id="5941830788786076944">Définir Google Chrome comme navigateur par défaut</translation>
 <translation id="6003112304606738118">Téléchargement… <ph name="HOURS" /> heure(s) restante(s)</translation>
 <translation id="6010556343189461180">Vous devez disposer de macOS 10.15 ou d'une version ultérieure pour recevoir les futures mises à jour de Google Chrome. Or, c'est la version macOS 10.14 qui est installée sur cet ordinateur.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome va se fermer.}=1{Chrome va se fermer dans 1 seconde.}one{Chrome va se fermer dans # seconde.}other{Chrome va se fermer dans # secondes.}}</translation>
+<translation id="6022659036123304283">Personnalisez Chrome</translation>
 <translation id="6040143037577758943">Fermer</translation>
 <translation id="6070348360322141662">Pour plus de sécurité, vos données seront chiffrées dans Google Chrome</translation>
 <translation id="608006075545470555">Ajouter un profil professionnel à ce navigateur</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gl.xtb b/chrome/app/resources/google_chrome_strings_gl.xtb
index 20483b8..fd647cd 100644
--- a/chrome/app/resources/google_chrome_strings_gl.xtb
+++ b/chrome/app/resources/google_chrome_strings_gl.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Acerca de Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Abrir en Chrome</translation>
 <translation id="1203500561924088507">Grazas por levar a cabo a instalación. Para utilizar <ph name="BUNDLE_NAME" />, debes reiniciar o navegador.</translation>
-<translation id="1236866257838264361">Podes gozar ao máximo de Chrome</translation>
 <translation id="1278833599417554002">Reiniciar para actualizar &amp;Chrome</translation>
 <translation id="1302523850133262269">Espera a que Chrome instale as actualizacións do sistema máis recentes.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> require que leas e aceptes as seguintes Condicións de servizo antes de utilizar este dispositivo. Estas condicións non amplían, modifican nin limitan as de Google Chrome OS Flex.</translation>
@@ -254,12 +253,14 @@
 <translation id="5895138241574237353">Reiniciar</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> (inicio de sesión de rede)</translation>
 <translation id="5924017743176219022">Conectando a Internet…</translation>
+<translation id="5932997892801542621">Cando escribes algo na barra de enderezos ou na caixa de busca, Chrome envíao a Google Drive para mostrarche suxestións de elementos. Esta opción está desactivada no modo de incógnito.</translation>
 <translation id="5940385492829620908">Aquí podes atopar as túas páxinas web, marcadores e outros contidos de Chrome.</translation>
 <translation id="5941711191222866238">Minimizar</translation>
 <translation id="5941830788786076944">Converter Google Chrome no navegador predeterminado</translation>
 <translation id="6003112304606738118">Descargando… Tempo restante: <ph name="HOURS" /> h</translation>
 <translation id="6010556343189461180">Se queres recibir actualizacións de Google Chrome no futuro, debes instalar o sistema operativo macOS 10.15 ou unha versión posterior. Este ordenador ten macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome pecharase agora.}=1{Chrome pecharase en 1 segundo.}other{Chrome pecharase en # segundos.}}</translation>
+<translation id="6022659036123304283">Personaliza Chrome</translation>
 <translation id="6040143037577758943">Pechar</translation>
 <translation id="6070348360322141662">Para obter unha maior seguranza, Google Chrome encriptará os teus datos</translation>
 <translation id="608006075545470555">Engadir un perfil de traballo a este navegador</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb
index c8bcdb7..789e2b2 100644
--- a/chrome/app/resources/google_chrome_strings_gu.xtb
+++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS વિશે</translation>
 <translation id="1154147086299354128">&amp;Chromeમાં ખોલો</translation>
 <translation id="1203500561924088507">ઇન્સ્ટૉલ કરવા બદલ આભાર. <ph name="BUNDLE_NAME" />નો ઉપયોગ કરતા પહેલાં તમારે તમારું બ્રાઉઝર ફરી શરૂ કરવું આવશ્યક છે.</translation>
-<translation id="1236866257838264361">તમે Chromeનો મહત્તમ લાભ મેળવી શકો છો</translation>
 <translation id="1278833599417554002">&amp;Chrome અપડેટ કરવા માટે, ફરીથી લૉન્ચ કરો</translation>
 <translation id="1302523850133262269">કૃપા કરીને Chrome નવીનતમ સિસ્ટમ અપડેટ્સ ઇન્સ્ટોલ કરે ત્યાં સુધી રાહ જુઓ.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> માટે જરૂરી છે કે તમે આ ડિવાઇસનો ઉપયોગ કરતા પહેલાં નીચેની સેવાની શરતો વાંચો અને સ્વીકારો. આ શરતો Google ChromeOS Flexની શરતોને વધારતી નથી, તેમાં ફેરફાર કરતી નથી અથવા તેને મર્યાદિત કરતી નથી.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">ડાઉનલોડ કરી રહ્યાં છીએ… <ph name="HOURS" /> કલાક બાકી છે</translation>
 <translation id="6010556343189461180">Google Chromeની ભાવિ અપડેટ મેળવવા માટે, તમારે macOS 10.15 કે તે પછીના વર્ઝન પર અપડેટ કરવું જરૂરી રહેશે. આ કમ્પ્યુટર macOS 10.14નો ઉપયોગ કરી રહ્યું છે.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome હમણાં બંધ થશે.}=1{Chrome 1 સેકન્ડમાં બંધ થશે.}one{Chrome # સેકન્ડમાં બંધ થશે.}other{Chrome # સેકન્ડમાં બંધ થશે.}}</translation>
+<translation id="6022659036123304283">Chromeને તમારી જરૂરિયાત અનુરૂપ બનાવો</translation>
 <translation id="6040143037577758943">બંધ કરો</translation>
 <translation id="6070348360322141662">વધારાની સુરક્ષા માટે, Google Chrome, તમારા ડેટાને એન્ક્રિપ્ટ કરશે</translation>
 <translation id="608006075545470555">આ બ્રાઉઝરમાં ઑફિસની પ્રોફાઇલ ઉમેરો</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb
index 77229d2e..a495150f 100644
--- a/chrome/app/resources/google_chrome_strings_hi.xtb
+++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">ChromeOS के बारे में जानकारी</translation>
 <translation id="1154147086299354128">Chrome में &amp;खोलें</translation>
 <translation id="1203500561924088507">इंस्टॉल करने के लिए धन्यवाद. <ph name="BUNDLE_NAME" /> का इस्तेमाल करने से पहले, ब्राउज़र को रीस्टार्ट करना ज़रूरी है.</translation>
-<translation id="1236866257838264361">Chrome का ज़्यादा से ज़्यादा फ़ायदा लिया जा सकता है</translation>
 <translation id="1278833599417554002">&amp;Chrome को अपडेट करने के लिए फिर से लॉन्च करें</translation>
 <translation id="1302523850133262269">कृपया Chrome के द्वारा नवीनतम सिस्टम अपडेट इंस्टॉल करने के दौरान प्रतीक्षा करें.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> के मुताबिक, यह ज़रूरी है कि इस डिवाइस का इस्तेमाल करने से पहले आप सेवा की इन शर्तों को पढ़ें और स्वीकार करें. इन शर्तों से, Google ChromeOS Flex की शर्तों में कोई नई शर्त नहीं जुड़ती, न ही उनमें कोई बदलाव होता है, और न ही उन्हें सीमित किया जाता है.</translation>
@@ -258,6 +257,7 @@
 <translation id="6003112304606738118">डाउनलोड हो रहा है... <ph name="HOURS" /> घंटे बचे हैं</translation>
 <translation id="6010556343189461180">आगे भी Google Chrome के अपडेट पाते रहने के लिए, आपके कंप्यूटर में macOS 10.15 या इसके बाद का वर्शन इंस्टॉल होना चाहिए. फ़िलहाल, इस कंप्यूटर में macOS 10.14 का इस्तेमाल किया जा रहा है.</translation>
 <translation id="6022388122721048220">{0,plural, =0{अब Chrome बंद हो जाएगा.}=1{Chrome 1 सेकंड में बंद हो जाएगा.}one{Chrome # सेकंड में बंद हो जाएगा.}other{Chrome # सेकंड में बंद हो जाएगा.}}</translation>
+<translation id="6022659036123304283">Chrome को अपने मुताबिक बनाएं</translation>
 <translation id="6040143037577758943">बंद करें</translation>
 <translation id="6070348360322141662">ज़्यादा सुरक्षा के लिए, Google Chrome आपका डेटा सुरक्षित करेगा</translation>
 <translation id="608006075545470555">इस ब्राउज़र में वर्क प्रोफ़ाइल जोड़ें</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb
index 84bd706..8d27628a 100644
--- a/chrome/app/resources/google_chrome_strings_hr.xtb
+++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">O Chrome OS-u</translation>
 <translation id="1154147086299354128">&amp;Otvori u Chromeu</translation>
 <translation id="1203500561924088507">Zahvaljujemo što ste izvršili instaliranje. Da biste mogli koristiti <ph name="BUNDLE_NAME" />, morate ponovno pokrenuti preglednik.</translation>
-<translation id="1236866257838264361">Iskoristite sve prednosti Chromea</translation>
 <translation id="1278833599417554002">Ponovo pokrenite da biste ažurirali &amp;Chrome</translation>
 <translation id="1302523850133262269">Pričekajte da Chrome instalira najnovija ažuriranja sustava.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> zahtijeva da pročitate i prihvatite sljedeće uvjete pružanja usluge prije upotrebe ovog uređaja. Ti uvjeti ne predstavljaju proširenje, izmjenu ili ograničenje uvjeta ChromeOS Flexa.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">Preuzimanje... Još <ph name="HOURS" /> h</translation>
 <translation id="6010556343189461180">Da biste primali buduća ažuriranja Google Chromea, trebat će vam macOS 10.15 ili novija verzija. Na ovom se računalu upotrebljava macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome će se sada zatvoriti.}=1{Chrome će se zatvoriti za jednu sekundu.}one{Chrome će se zatvoriti za # sekundu.}few{Chrome će se zatvoriti za # sekunde.}other{Chrome će se zatvoriti za # sekundi.}}</translation>
+<translation id="6022659036123304283">Prilagodite Chrome sebi</translation>
 <translation id="6040143037577758943">Zatvori</translation>
 <translation id="6070348360322141662">Radi dodatne sigurnosti Google Chrome kriptirat će vaše podatke</translation>
 <translation id="608006075545470555">Dodavanje poslovnog profila u ovaj preglednik</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb
index 7825b33..c7c2884 100644
--- a/chrome/app/resources/google_chrome_strings_hu.xtb
+++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">A ChromeOS névjegye</translation>
 <translation id="1154147086299354128">&amp;Megnyitás Chrome-ban</translation>
 <translation id="1203500561924088507">Köszönjük, hogy elvégezte a telepítést. A(z) <ph name="BUNDLE_NAME" /> használata előtt újra kell indítania a böngészőt.</translation>
-<translation id="1236866257838264361">Kihozhatja a legtöbbet a Chrome-ból</translation>
 <translation id="1278833599417554002">Indítsa újra a Chrome frissítéshez</translation>
 <translation id="1302523850133262269">Kérjük, várjon, amíg a Chrome telepíti a legutóbbi rendszerfrissítéseket.</translation>
 <translation id="1335640173511558774">A(z) <ph name="MANAGER" /> megköveteli, hogy olvassa el, majd fogadja el a következő Általános Szerződési Feltételeket, mielőtt használná ezt az eszközt. Ezek a feltételek nem bővítik, módosítják vagy korlátozzák a Google ChromeOS Flex Általános Szerződési Feltételeit.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">Letöltés… <ph name="HOURS" /> óra van hátra</translation>
 <translation id="6010556343189461180">Ha a jövőben Google Chrome-frissítéseket szeretne kapni, akkor a macOS 10.15-ös vagy újabb verziójára lesz szüksége. Ezen a számítógépen a macOS 10.14 fut.</translation>
 <translation id="6022388122721048220">{0,plural, =0{A Chrome most bezárul.}=1{A Chrome 1 másodperc múlva bezárul.}other{A Chrome # másodperc múlva bezárul.}}</translation>
+<translation id="6022659036123304283">Tegye személyessé a Chrome-ot</translation>
 <translation id="6040143037577758943">Bezárás</translation>
 <translation id="6070348360322141662">A nagyobb biztonság érdekében a Google Chrome titkosítja az Ön adatait</translation>
 <translation id="608006075545470555">Munkaprofil hozzáadása a böngészőhöz</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hy.xtb b/chrome/app/resources/google_chrome_strings_hy.xtb
index 6c5f552..8cac002 100644
--- a/chrome/app/resources/google_chrome_strings_hy.xtb
+++ b/chrome/app/resources/google_chrome_strings_hy.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS-ի մասին</translation>
 <translation id="1154147086299354128">&amp;Բացել Chrome-ում</translation>
 <translation id="1203500561924088507">Շնորհակալություն տեղադրելու համար։ Նախքան <ph name="BUNDLE_NAME" />-ն օգտագործելը դուք պետք է վերագործարկեք ձեր դիտարկիչը։</translation>
-<translation id="1236866257838264361">Դուք կկարողանաք օգտվել Chrome-ի բոլոր գործառույթներից</translation>
 <translation id="1278833599417554002">Վերագործարկել՝ &amp;Chrome-ը թարմացնելու համար</translation>
 <translation id="1302523850133262269">Սպասեք` մինչ Chrome-ը տեղադրում է համակարգի նորագույն թարմացումները:</translation>
 <translation id="1335640173511558774">Ադմինիստրատորը (<ph name="MANAGER" />) պահանջում է, որ դուք նախքան սարքն օգտագործելը կարդաք և ընդունեք հետևյալ Օգտագործման պայմանները։ Այս պայմանները չեն ընդլայնում, փոփոխում կամ սահմանափակում Google ChromeOS Flex-ի պայմանները։</translation>
@@ -252,12 +251,14 @@
 <translation id="5895138241574237353">Վերագործարկել</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Ցանցի մուտք</translation>
 <translation id="5924017743176219022">Միացում համացանցին…</translation>
+<translation id="5932997892801542621">Երբ դուք տեքստ եք մուտքագրում հասցեագոտում կամ որոնման դաշտում, Chrome-ը ձեր հարցումն ուղարկում է Google Drive-ին՝ ավելի լավ առաջարկներ ստանալու համար։ Այս գործառույթն անջատված է ինկոգնիտո ռեժիմում։</translation>
 <translation id="5940385492829620908">Ձեր վեբ էջերը, էջանիշները և Chrome-ի մնացած տվյալներն այստեղ են:</translation>
 <translation id="5941711191222866238">Նվազեցնել</translation>
 <translation id="5941830788786076944">Դարձնել Google Chrome-ը կանխադրված դիտարկիչը</translation>
 <translation id="6003112304606738118">Ներբեռնում… Մնաց <ph name="HOURS" /> ժամ</translation>
 <translation id="6010556343189461180">Google Chrome-ի հետագա թարմացումները ստանալու համար ձեզ անհրաժեշտ է macOS 10.15 կամ ավելի նոր տարբերակ։ Այս համակարգիչն օգտագործում է macOS 10.14 տարբերակը։</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome-ը կփակվի հիմա։}=1{Chrome-ը կփակվի 1 վայրկյանից։}one{Chrome-ը կփակվի # վայրկյանից։}other{Chrome-ը կփակվի # վայրկյանից։}}</translation>
+<translation id="6022659036123304283">Անհատականացրեք Chrome դիտարկիչը</translation>
 <translation id="6040143037577758943">Փակել</translation>
 <translation id="6070348360322141662">Լրացուցիչ անվտանգության համար Google Chrome-ը կգաղտնագրի ձեր տվյալները</translation>
 <translation id="608006075545470555">Աշխատանքային պրոֆիլի ավելացում այս դիտարկիչում</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb
index 0abcbc3..e44463f 100644
--- a/chrome/app/resources/google_chrome_strings_id.xtb
+++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Tentang ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Buka di Chrome</translation>
 <translation id="1203500561924088507">Terima kasih telah menginstal. Anda harus memulai ulang browser sebelum menggunakan <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Anda dapat menikmati manfaat optimal Chrome</translation>
 <translation id="1278833599417554002">Luncurkan kembali untuk mengupdate &amp;Chrome</translation>
 <translation id="1302523850133262269">Harap tunggu selagi Chrome memasang pembaruan sistem terkini.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> mewajibkan Anda membaca dan menyetujui Persyaratan Layanan berikut sebelum menggunakan perangkat ini. Persyaratan ini tidak memperluas, mengubah, atau membatasi Persyaratan Google ChromeOS Flex.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">Mendownload... <ph name="HOURS" /> jam lagi</translation>
 <translation id="6010556343189461180">Untuk mendapatkan update Google Chrome berikutnya, Anda perlu macOS 10.15 atau yang lebih baru. Komputer ini menggunakan macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome akan ditutup sekarang.}=1{Chrome akan ditutup dalam 1 detik.}other{Chrome akan ditutup dalam # detik.}}</translation>
+<translation id="6022659036123304283">Sesuaikan Chrome dengan selera Anda</translation>
 <translation id="6040143037577758943">Tutup</translation>
 <translation id="6070348360322141662">Untuk keamanan tambahan, Google Chrome akan mengenkripsi data Anda</translation>
 <translation id="608006075545470555">Tambahkan Profil Kerja ke browser ini</translation>
diff --git a/chrome/app/resources/google_chrome_strings_is.xtb b/chrome/app/resources/google_chrome_strings_is.xtb
index a705194..fcefbea 100644
--- a/chrome/app/resources/google_chrome_strings_is.xtb
+++ b/chrome/app/resources/google_chrome_strings_is.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Um ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Opna í Chrome</translation>
 <translation id="1203500561924088507">Takk fyrir að setja upp. Þú þarft að endurræsa vafrann áður en þú getur notað <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Þú getur nýtt Chrome til fulls</translation>
 <translation id="1278833599417554002">Endurræstu til að uppfæra &amp;Chrome</translation>
 <translation id="1302523850133262269">Bíddu á meðan Chrome setur upp nýjustu kerfisuppfærslurnar.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> krefst þess að þú lesir og samþykkir eftirfarandi þjónustuskilmála áður en þú notar þetta tæki. Þessir skilmálar auka ekki við, breyta eða takmarka skilmála Google ChromeOS Flex.</translation>
@@ -254,12 +253,14 @@
 <translation id="5895138241574237353">Endurræsa</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – innskráning á net</translation>
 <translation id="5924017743176219022">Tengist internetinu…</translation>
+<translation id="5932997892801542621">Þegar þú skrifar í veffangastikuna eða leitarreitinn sendir Chrome það sem þú skrifar á Google Drive til að fá tillögur að atriðum. Slökkt er á þessu í huliðsstillingu.</translation>
 <translation id="5940385492829620908">Hér er vefefnið þitt, bókamerkin og annað dót úr Chrome.</translation>
 <translation id="5941711191222866238">Minnka</translation>
 <translation id="5941830788786076944">Gera Google Chrome að sjálfgefnum vafra</translation>
 <translation id="6003112304606738118">Sækir... <ph name="HOURS" /> klst. eftir</translation>
 <translation id="6010556343189461180">Til að fá frekari uppfærslur á Google Chrome þarftu macOS 10.15 eða nýrri útgáfu. Þessi tölva notar macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome lokast núna.}=1{Chrome lokast eftir 1 sekúndu.}one{Chrome lokast eftir # sekúndu.}other{Chrome lokast eftir # sekúndur.}}</translation>
+<translation id="6022659036123304283">Gerðu Chrome að þínu</translation>
 <translation id="6040143037577758943">Loka</translation>
 <translation id="6070348360322141662">Google Chrome dulkóðar gögnin þín til að auka öryggið</translation>
 <translation id="608006075545470555">Bæta vinnusniði við þennan vafra</translation>
diff --git a/chrome/app/resources/google_chrome_strings_it.xtb b/chrome/app/resources/google_chrome_strings_it.xtb
index 505974d..dc75b38b 100644
--- a/chrome/app/resources/google_chrome_strings_it.xtb
+++ b/chrome/app/resources/google_chrome_strings_it.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Informazioni su ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Apri in Chrome</translation>
 <translation id="1203500561924088507">L'installazione è terminata. Dovrai riavviare il browser per poter utilizzare <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Puoi goderti al meglio l'esperienza di Chrome</translation>
 <translation id="1278833599417554002">Riavvia per aggiornare &amp;Chrome</translation>
 <translation id="1302523850133262269">Attendi mentre Chrome installa gli aggiornamenti di sistema più recenti.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> richiede di leggere e accettare i seguenti Termini di servizio prima di utilizzare il dispositivo. Questi termini non ampliano, modificano né limitano i Termini di Google ChromeOS Flex.</translation>
@@ -246,12 +245,14 @@
 <translation id="5895138241574237353">Riavvia</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Accesso rete</translation>
 <translation id="5924017743176219022">Connessione a Internet in corso…</translation>
+<translation id="5932997892801542621">Quando digiti nella barra degli indirizzi o nella casella di ricerca, Chrome invia ciò che digiti a Google Drive per ricevere suggerimenti sugli elementi. Questa opzione è disattivata in incognito.</translation>
 <translation id="5940385492829620908">Il tuoi siti web, i tuoi segnalibri e gli altri contenuti Chrome sempre disponibili e aggiornati qui.</translation>
 <translation id="5941711191222866238">Riduci a icona</translation>
 <translation id="5941830788786076944">Imposta Google Chrome come browser predefinito</translation>
 <translation id="6003112304606738118">Download in corso… Ore rimanenti: <ph name="HOURS" /></translation>
 <translation id="6010556343189461180">Per ricevere gli aggiornamenti futuri di Google Chrome, devi avere macOS 10.15 o versioni successive. Su questo computer è installato macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome verrà chiuso adesso.}=1{Chrome verrà chiuso tra 1 secondo.}other{Chrome verrà chiuso tra # secondi.}}</translation>
+<translation id="6022659036123304283">Personalizza il tuo Chrome</translation>
 <translation id="6040143037577758943">Chiudi</translation>
 <translation id="6070348360322141662">Per maggiore sicurezza, Google Chrome cripterà i tuoi dati</translation>
 <translation id="608006075545470555">Aggiungi profilo di lavoro a questo browser</translation>
diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb
index 194370fe..1c8c176 100644
--- a/chrome/app/resources/google_chrome_strings_iw.xtb
+++ b/chrome/app/resources/google_chrome_strings_iw.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">‏מידע על ChromeOS</translation>
 <translation id="1154147086299354128">‏&amp;פתיחה ב-Chrome</translation>
 <translation id="1203500561924088507">תודה שהתקנת. עליך להפעיל מחדש את הדפדפן לפני השימוש ב-<ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">‏אפשר ליהנות מהמיטב של Chrome</translation>
 <translation id="1278833599417554002">‏הפעלה מחדש לצורך עדכון &amp;Chrome</translation>
 <translation id="1302523850133262269">‏יש להמתין בזמן ש-Chrome מתקין את עדכוני המערכת האחרונים.</translation>
 <translation id="1335640173511558774">‏לפי דרישת <ph name="MANAGER" />, צריך לקרוא את התנאים וההגבלות הבאים ולהסכים להם לפני השימוש במכשיר הזה. התנאים האלה לא מרחיבים, משנים או מגבילים את התנאים לשימוש ב-Google ChromeOS Flex.</translation>
@@ -247,12 +246,14 @@
 <translation id="5895138241574237353">הפעלה מחדש</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – כניסה לרשת</translation>
 <translation id="5924017743176219022">מתבצעת התחברות לאינטרנט…</translation>
+<translation id="5932997892801542621">‏כשמקלידים טקסט בסרגל הכתובות או בתיבת החיפוש, Chrome שולח את הטקסט הזה ל-Google Drive כדי לקבל הצעות לפריטים. האפשרות הזו מושבתת במצב הפרטי.</translation>
 <translation id="5940385492829620908">‏היסטוריית האתרים, הסימניות ופריטים נוספים מ-Chrome נמצאים כאן.</translation>
 <translation id="5941711191222866238">מזעור</translation>
 <translation id="5941830788786076944">‏Google Chrome יהיה דפדפן ברירת המחדל</translation>
 <translation id="6003112304606738118">מתבצעת הורדה… יש עוד <ph name="HOURS" /> שע'</translation>
 <translation id="6010556343189461180">‏כדי לקבל עדכונים של Google Chrome בעתיד, צריך להשתמש ב-macOS מגרסה 10.15 ואילך. במחשב הזה מותקנת מערכת ההפעלה macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{‏Chrome נסגר עכשיו.}=1{‏Chrome ייסגר בעוד שנייה.}one{‏Chrome ייסגר בעוד # שניות.}two{‏Chrome ייסגר בעוד # שניות.}other{‏Chrome ייסגר בעוד # שניות.}}</translation>
+<translation id="6022659036123304283">‏אפשר להתאים אישית את Chrome בדרך שנוחה לך</translation>
 <translation id="6040143037577758943">סגירה</translation>
 <translation id="6070348360322141662">‏לשיפור האבטחה, Google Chrome יצפין את הנתונים</translation>
 <translation id="608006075545470555">הוספת פרופיל עבודה לדפדפן זה</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb
index 65f01f13..865b83c 100644
--- a/chrome/app/resources/google_chrome_strings_ja.xtb
+++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">ChromeOS について</translation>
 <translation id="1154147086299354128">Chrome で開く(&amp;O)</translation>
 <translation id="1203500561924088507">インストールいただきありがとうございます。<ph name="BUNDLE_NAME" /> を使用するにはブラウザを再起動してください。</translation>
-<translation id="1236866257838264361">Chrome を最大限に活用できます</translation>
 <translation id="1278833599417554002">再起動して Chrome を更新(&amp;C)</translation>
 <translation id="1302523850133262269">Chrome は最新のシステム アップデートをインストールしています。しばらくお待ちください。</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> では、このデバイスを使用する前に下記の利用規約を確認しこれに同意していただく必要があります。これらの規約は Google ChromeOS Flex 利用規約を拡張、変更、制限するものではありません。</translation>
@@ -253,6 +252,7 @@
 <translation id="6003112304606738118">ダウンロードしています... 残り <ph name="HOURS" /> 時間です</translation>
 <translation id="6010556343189461180">今後、Google Chrome のアップデートを受信するには、macOS 10.15 以降が必要となります。このコンピュータでは macOS 10.14 が実行されています。</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome は今すぐ終了します。}=1{Chrome は 1 秒後に終了します。}other{Chrome は # 秒後に終了します。}}</translation>
+<translation id="6022659036123304283">Chrome を独自にカスタマイズ</translation>
 <translation id="6040143037577758943">閉じる</translation>
 <translation id="6070348360322141662">セキュリティ強化のため、データは Google Chrome で暗号化されます</translation>
 <translation id="608006075545470555">このブラウザに仕事用プロファイルを追加</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ka.xtb b/chrome/app/resources/google_chrome_strings_ka.xtb
index bd4f3c4d..79a43dc2 100644
--- a/chrome/app/resources/google_chrome_strings_ka.xtb
+++ b/chrome/app/resources/google_chrome_strings_ka.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS-ის შესახებ</translation>
 <translation id="1154147086299354128">Chrome-ში &amp;გახსნა</translation>
 <translation id="1203500561924088507">გმადლობთ დაინსტალირებისთვის. <ph name="BUNDLE_NAME" />-ის გამოყენებამდე თქვენი ბრაუზერი უნდა გადატვირთოთ.</translation>
-<translation id="1236866257838264361">თქვენ საშუალება გაქვთ, Chrome-ის შესაძლებლობები მაქსიმალურად გამოიყენოთ</translation>
 <translation id="1278833599417554002">ხელახლა გაშვება &amp;Chrome-ის გასაახლებლად</translation>
 <translation id="1302523850133262269">დაელოდეთ, სანამ Chrome დააინსტალირებს სისტემის უახლეს განახლებებს.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> მოითხოვს, რომ ამ მოწყობილობის გამოყენებამდე წაიკითხოთ ქვემოთ მოცემული მომსახურების პირობები და დაეთანხმოთ მათ. აღნიშნული პირობები არ არის Google ChromeOS Flex-ის წესების დამატება, ასევე, არ ცვლის და არც ზღუდავს მათ.</translation>
@@ -261,6 +260,7 @@
 <translation id="6003112304606738118">მიმდინარეობს ჩამოტვირთვა… დარჩენილია <ph name="HOURS" /> საათი</translation>
 <translation id="6010556343189461180">მომავალში Google Chrome-ის განახლებების მისაღებად დაგჭირდებათ macOS 10.15 ან უფრო ახალი ვერსია. ეს კომპიუტერი იყენებს macOS 10.14-ს.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ახლა დაიხურება.}=1{Chrome დაიხურება 1 წამში.}other{Chrome დაიხურება # წამში.}}</translation>
+<translation id="6022659036123304283">მოირგეთ Chrome</translation>
 <translation id="6040143037577758943">დახურვა</translation>
 <translation id="6070348360322141662">დამატებითი უსაფრთხოებისთვის, Google Chrome თქვენს მონაცემებს დაშიფრავს</translation>
 <translation id="608006075545470555">დაამატეთ სამსახურის პროფილი ამ ბრაუზერს</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kk.xtb b/chrome/app/resources/google_chrome_strings_kk.xtb
index 57b60619..a46fca1 100644
--- a/chrome/app/resources/google_chrome_strings_kk.xtb
+++ b/chrome/app/resources/google_chrome_strings_kk.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS туралы</translation>
 <translation id="1154147086299354128">&amp;Chrome браузерінде ашу</translation>
 <translation id="1203500561924088507">Орнатқаныңыз үшін рақмет. <ph name="BUNDLE_NAME" /> пайдаланбас бұрын браузерді жауып, қайта ашуыңыз керек.</translation>
-<translation id="1236866257838264361">Chrome-ды толық қолдануға болады.</translation>
 <translation id="1278833599417554002">&amp;Chrome-ды жаңарту үшін қайта іске қосу</translation>
 <translation id="1302523850133262269">Chrome ең соңғы жүйе жаңартуларын орнатуда, күте тұрыңыз.</translation>
 <translation id="1335640173511558774">Бұл құрылғыны пайдаланбас бұрын, <ph name="MANAGER" /> келесі Қызмет көрсету шарттарын оқып, қабылдауыңызды талап етеді. Бұл шарттар Google ChromeOS Flex Шарттарын толықтырмайды, өзгертпейді және шектемейді.</translation>
@@ -261,6 +260,7 @@
 <translation id="6003112304606738118">Жүктеп алынып жатыр… <ph name="HOURS" /> сағат қалды.</translation>
 <translation id="6010556343189461180">Google Chrome-ның жаңа нұсқаларын алып тұру үшін macOS 10.15 не одан кейінгі операциялық жүйе керек болады. Бұл компьютерде macOS 10.14 нұсқасы орнатылған.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome қазір жабылады.}=1{Chrome 1 секундтан кейін жабылады.}other{Chrome # секундтан кейін жабылады.}}</translation>
+<translation id="6022659036123304283">Chrome браузерін өз талғамыңызға сай реттеңіз</translation>
 <translation id="6040143037577758943">Жабу</translation>
 <translation id="6070348360322141662">Қауіпсіздікті күшейту үшін Google Chrome деректеріңізді шифрлайды</translation>
 <translation id="608006075545470555">Осы браузерге жұмыс профилін қосу</translation>
diff --git a/chrome/app/resources/google_chrome_strings_km.xtb b/chrome/app/resources/google_chrome_strings_km.xtb
index 2e49f37..0b9925a 100644
--- a/chrome/app/resources/google_chrome_strings_km.xtb
+++ b/chrome/app/resources/google_chrome_strings_km.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">អំពី ChromeOS</translation>
 <translation id="1154147086299354128">&amp;​បើក​នៅក្នុង Chrome</translation>
 <translation id="1203500561924088507">សូមអរគុណសម្រាប់ការដំឡើង។ អ្នកត្រូវតែចាប់ផ្ដើមកម្មវិធីរុករកតាមអ៊ីនធឺណិតរបស់អ្នកឡើងវិញ មុនពេលប្រើ <ph name="BUNDLE_NAME" />។</translation>
-<translation id="1236866257838264361">អ្នកអាច​រីករាយ​នឹង​អត្ថប្រយោជន៍​ច្រើន​បំផុត​ពី Chrome</translation>
 <translation id="1278833599417554002">ចាប់​ផ្តើមឡើងវិញដើម្បីដំឡើងកំណែ &amp;Chrome</translation>
 <translation id="1302523850133262269">សូមរង់ចាំ ខណៈពេលដែល Chrome តំឡើងការធ្វើបច្ចុប្បន្នភាពប្រព័ន្ធចុងក្រោយបំផុត។</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> តម្រូវឱ្យអ្នកអាន និងយល់ព្រមតាមលក្ខខណ្ឌប្រើប្រាស់ខាងក្រោម មុនពេលប្រើឧបករណ៍នេះ។ លក្ខខណ្ឌទាំងនេះមិនបន្ថែម កែប្រែ ឬដាក់កំហិតលើលក្ខខណ្ឌ Google ChromeOS Flex ទេ។</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">កំពុងទាញ​យក... នៅសល់ <ph name="HOURS" /> ម៉ោងទៀត</translation>
 <translation id="6010556343189461180">ដើម្បីទទួលបានកំណែថ្មីៗរបស់ Google Chrome នាពេលអនាគត អ្នកនឹងត្រូវការ macOS 10.15 ឡើងទៅ។ កុំព្យូទ័រនេះកំពុងប្រើ macOS 10.14។</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome នឹង​បិទ​ឥឡូវ​នេះ។}=1{Chrome នឹង​បិទ​ក្នុង​រយៈពេល 1 វិនាទី។}other{Chrome នឹង​បិទ​ក្នុង​រយៈពេល # វិនាទី។}}</translation>
+<translation id="6022659036123304283">ធ្វើឱ្យ Chrome ក្លាយជា​របស់អ្នក</translation>
 <translation id="6040143037577758943">បិទ</translation>
 <translation id="6070348360322141662">ដើម្បី​ទទួលបាន​សុវត្ថិភាព​បន្ថែម Google Chrome នឹង​អ៊ិនគ្រីប​ទិន្នន័យ​របស់​អ្នក</translation>
 <translation id="608006075545470555">បញ្ចូលកម្រងព័ត៌មានការងារទៅក្នុងកម្មវិធីរុករកតាមអ៊ីនធឺណិតនេះ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index dc967d7c..7198061 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">ChromeOS ಕುರಿತು</translation>
 <translation id="1154147086299354128">ಮತ್ತು Chrome ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="1203500561924088507">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದಕ್ಕಾಗಿ ಧನ್ಯವಾದಗಳು. <ph name="BUNDLE_NAME" /> ಅನ್ನು ಬಳಸುವ ಮೊದಲು ನೀವು ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು.</translation>
-<translation id="1236866257838264361">ನೀವು Chrome ನಿಂದ ಹೆಚ್ಚಿನದನ್ನು ಆನಂದಿಸಬಹುದು</translation>
 <translation id="1278833599417554002">&amp;Chrome ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="1302523850133262269">ಇತ್ತೀಚಿನ ಸಿಸ್ಟಂ ನವೀಕರಣಗಳನ್ನು Chrome ಸ್ಥಾಪಿಸುವಾಗ ದಯವಿಟ್ಟು ಕಾಯಿರಿ.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> ನ ನೀತಿಯ ಪ್ರಕಾರ ಈ ಸಾಧನವನ್ನು ಬಳಸುವ ಮೊದಲು ನೀವು ಈ ಕೆಳಗಿನ ಸೇವಾ ನಿಯಮಗಳನ್ನು ಓದಿ, ಅವುಗಳಿಗೆ ಸಮ್ಮತಿಸಬೇಕಾಗುತ್ತದೆ. ಈ ನಿಯಮಗಳು Google ChromeOS Flex ನಿಯಮಗಳನ್ನು ವಿಸ್ತರಿಸುವುದಿಲ್ಲ, ಮಾರ್ಪಡಿಸುವುದಿಲ್ಲ, ಅಥವಾ ಸೀಮಿತಗೊಳಿಸುವುದಿಲ್ಲ.</translation>
@@ -255,6 +254,7 @@
 <translation id="6003112304606738118">ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ… <ph name="HOURS" /> ಗಂಟೆ(ಗಳು) ಬಾಕಿಯಿವೆ.</translation>
 <translation id="6010556343189461180">ಭವಿಷ್ಯದ Google Chrome ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪಡೆಯಲು, ನಿಮಗೆ macOS 10.15 ಅಥವಾ ಅದರ ನಂತರದ ಆವೃತ್ತಿಗಳ ಅಗತ್ಯವಿದೆ. ಈ ಕಂಪ್ಯೂಟರ್ macOS 10.14 ಅನ್ನು ಬಳಸುತ್ತಿದೆ.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ಅನ್ನು ಇದೀಗ ಮುಚ್ಚಲಾಗುತ್ತದೆ.}=1{Chrome ಅನ್ನು 1 ಸೆಕೆಂಡ್‌ನಲ್ಲಿ ಮುಚ್ಚಲಾಗುತ್ತದೆ.}one{Chrome ಅನ್ನು # ಸೆಕೆಂಡ್‌ಗಳಲ್ಲಿ ಮುಚ್ಚಲಾಗುತ್ತದೆ.}other{Chrome ಅನ್ನು # ಸೆಕೆಂಡ್‌ಗಳಲ್ಲಿ ಮುಚ್ಚಲಾಗುತ್ತದೆ.}}</translation>
+<translation id="6022659036123304283">Chrome ಅನ್ನು ನಿಮ್ಮದಾಗಿಸಿಕೊಳ್ಳಿ</translation>
 <translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation>
 <translation id="6070348360322141662">ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಗಾಗಿ, Google Chrome ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡುತ್ತದೆ</translation>
 <translation id="608006075545470555">ಈ ಬ್ರೌಸರ್‌ಗೆ ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌ ಸೇರಿಸಿ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb
index 90b63a3a..5c2e65e6 100644
--- a/chrome/app/resources/google_chrome_strings_ko.xtb
+++ b/chrome/app/resources/google_chrome_strings_ko.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS 정보</translation>
 <translation id="1154147086299354128">Chrome에서 열기(&amp;O)</translation>
 <translation id="1203500561924088507">설치해 주셔서 감사합니다. <ph name="BUNDLE_NAME" />을(를) 사용하려면 브라우저를 다시 시작해야 합니다.</translation>
-<translation id="1236866257838264361">Chrome을 최대한 활용하세요</translation>
 <translation id="1278833599417554002">다시 실행하여 Chrome 업데이트</translation>
 <translation id="1302523850133262269">Chrome에서 최신 시스템 업데이트를 설치하는 동안 잠시 기다려 주세요.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" />에서는 기기를 사용하기 전에 다음 서비스 약관을 읽고 이에 동의하도록 하고 있습니다. 이 약관은 Google ChromeOS Flex 약관을 확대하거나 수정 또는 제한하지 않습니다.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">다운로드 중... <ph name="HOURS" />시간 남음</translation>
 <translation id="6010556343189461180">향후 Chrome 업데이트를 받으려면 macOS 10.15 이상이 필요합니다. 이 컴퓨터에서는 macOS 10.14를 사용 중입니다.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome이 지금 닫힙니다.}=1{Chrome이 1초 후에 닫힙니다.}other{Chrome이 #초 후에 닫힙니다.}}</translation>
+<translation id="6022659036123304283">나만의 Chrome 만들기</translation>
 <translation id="6040143037577758943">닫기</translation>
 <translation id="6070348360322141662">보안 강화를 위해 Chrome에서 사용자 데이터를 암호화합니다.</translation>
 <translation id="608006075545470555">이 브라우저에 직장 프로필 추가</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ky.xtb b/chrome/app/resources/google_chrome_strings_ky.xtb
index c6784178..a017e717 100644
--- a/chrome/app/resources/google_chrome_strings_ky.xtb
+++ b/chrome/app/resources/google_chrome_strings_ky.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS жөнүндө</translation>
 <translation id="1154147086299354128">&amp;Chrome'до ачуу</translation>
 <translation id="1203500561924088507">Орнотуп алганыңыз үчүн рахмат. <ph name="BUNDLE_NAME" /> топтомун колдонуп баштоодон мурда серепчини өчүрүп күйгүзүңүз.</translation>
-<translation id="1236866257838264361">Chrome'дун бардык мүмкүнчүлүктөрүн пайдалана аласыз</translation>
 <translation id="1278833599417554002">&amp;Chrome'ду жаңыртуу үчүн кайра иштетиңиз</translation>
 <translation id="1302523850133262269">Chrome эң акыркы тутум жаңыртууларын орнотуп бүткүчө күтө туруңуз.</translation>
 <translation id="1335640173511558774">Бул түзмөктү колдонуудан мурун, <ph name="MANAGER" /> төмөнкү Тейлөө шарттарын окуп, кабыл алууңузду талап кылат. Бул шарттар ChromeOS Flex шарттарын кеңейтип, өзгөртүп же чектебейт.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Жүктөлүп алынууда... <ph name="HOURS" /> саат калды</translation>
 <translation id="6010556343189461180">Google Chrome жаңыртууларын алып туруу үчүн macOS 10.15 же андан кийинки версиясын орнотушуңуз керек. Бул компьютерде macOS 10.14 версиясы колдонулууда.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome азыр жабылат.}=1{Chrome 1 секунддан кийин жабылат.}other{Chrome # секунддан кийин жабылат.}}</translation>
+<translation id="6022659036123304283">Chrome'ду каалагандай ыңгайлаштырып алыңыз</translation>
 <translation id="6040143037577758943">Жабуу</translation>
 <translation id="6070348360322141662">Кошумча коопсуздук максатында, Google Chrome дайын-даректериңизди шифрлеп коёт</translation>
 <translation id="608006075545470555">Ушул серепчиге жумуш профилин кошуу</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lo.xtb b/chrome/app/resources/google_chrome_strings_lo.xtb
index 48137a6..49cf3f07 100644
--- a/chrome/app/resources/google_chrome_strings_lo.xtb
+++ b/chrome/app/resources/google_chrome_strings_lo.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ກ່ຽວກັບ ChromeOS</translation>
 <translation id="1154147086299354128">&amp;ເປີດໃນ Chrome</translation>
 <translation id="1203500561924088507">ຂໍຂອບໃຈສຳລັບການຕິດຕັ້ງ. ທ່ານຈະຕ້ອງຣີສະຕາດໂປຣແກຣມທ່ອງເວັບຂອງທ່ານກ່ອນການໃຊ້ <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">ທ່ານສາມາດເພີດເພີນໄປກັບການນຳໃຊ້ປະໂຫຍດສູງສຸດຈາກ Chrome</translation>
 <translation id="1278833599417554002">ເລີ່ມເປີດໃຊ້ໃໝ່ເພື່ອອັບເດດ &amp;Chrome</translation>
 <translation id="1302523850133262269">ກະ​ລຸ​ນາ​ລໍ​ຖ້າ​ໃນ​ຂະ​ນະ​ທີ່ Chrome ​ຕິດ​ຕັ້ງ​ການອັບເດດລະບົບຫລ້າ​ສຸດ.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> ຕ້ອງການໃຫ້ທ່ານອ່ານ ແລະ ຍອມຮັບຂໍ້ກໍານົດບໍລິການຕໍ່ໄປນີ້ກ່ອນທີ່ຈະໃຊ້ອຸປະກອນນີ້. ຂໍ້ກໍານົດເຫຼົ່ານີ້ບໍ່ຂະຫຍາຍ, ແກ້ໄຂ ຫຼື ຈຳກັດຂໍ້ກໍານົດຂອງ Google ChromeOS Flex.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">ກຳລັງດາວໂຫຼດ... ຍັງເຫຼືອ <ph name="HOURS" /> ຊົ່ວໂມງ</translation>
 <translation id="6010556343189461180">ເພື່ອຮັບການອັບເດດ Google Chrome ໃນອະນາຄົດ, ທ່ານຈະຕ້ອງໃຊ້ macOS 10.15 ຂຶ້ນໄປ. ຄອມພິວເຕີນີ້ກຳລັງໃຊ້ macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ຈະປິດດຽວນີ້.}=1{Chrome ຈະປິດໃນ 1 ວິນາທີ}other{Chrome ຈະປິດໃນ # ວິນາທີ.}}</translation>
+<translation id="6022659036123304283">ເຮັດໃຫ້ Chrome ເປັນຂອງທ່ານ</translation>
 <translation id="6040143037577758943">ປິດ</translation>
 <translation id="6070348360322141662">ເພື່ອຄວາມປອດໄພເພີ່ມເຕີມ, Google Chrome ຈະເຂົ້າລະຫັດລັບຂໍ້ມູນຂອງທ່ານ</translation>
 <translation id="608006075545470555">ເພີ່ມໂປຣໄຟລ໌ບ່ອນເຮັດວຽກໃສ່ໂປຣແກຣມທ່ອງເວັບນີ້</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb
index 4285013..b8223c8 100644
--- a/chrome/app/resources/google_chrome_strings_lt.xtb
+++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Apie „Chrome“ OS</translation>
 <translation id="1154147086299354128">&amp;Atidaryti naudojant „Chrome“</translation>
 <translation id="1203500561924088507">Dėkojame už diegimą. Turite iš naujo paleisti naršyklę, prieš naudodami „<ph name="BUNDLE_NAME" />“.</translation>
-<translation id="1236866257838264361">Galite mėgautis visomis „Chrome“ galimybėmis</translation>
 <translation id="1278833599417554002">Paleisti iš naujo atnaujinant „&amp;Chrome“</translation>
 <translation id="1302523850133262269">Palaukite, kol „Chrome“ įdiegs naujausius sistemos naujinius.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> reikia, kad prieš naudodami šį įrenginį perskaitytumėte toliau pateiktas paslaugų teikimo sąlygas. Šios sąlygos neišplečia, nepakeičia ir neapriboja „ChromeOS Flex“ sąlygų.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Atsisiunčiama… Liko <ph name="HOURS" /> val.</translation>
 <translation id="6010556343189461180">Jei norite gauti būsimus „Google Chrome“ naujinius, jums reikės 10.15 ar naujesnės „macOS“ versijos. Šiame kompiuteryje naudojama 10.14 versijos „macOS“.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Dabar „Chrome“ bus uždaryta.}=1{„Chrome“ bus uždaryta po vienos sekundės.}one{„Chrome“ bus uždaryta po # sekundės.}few{„Chrome“ bus uždaryta po # sekundžių.}many{„Chrome“ bus uždaryta po # sekundės.}other{„Chrome“ bus uždaryta po # sekundžių.}}</translation>
+<translation id="6022659036123304283">Suasmeninkite „Chrome“</translation>
 <translation id="6040143037577758943">Uždaryti</translation>
 <translation id="6070348360322141662">Kad būtų papildomai užtikrintas saugumas, „Google Chrome“ užšifruos duomenis</translation>
 <translation id="608006075545470555">Darbo profilio pridėjimas prie šios naršyklės</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb
index 7f23964a..b906b8d1 100644
--- a/chrome/app/resources/google_chrome_strings_lv.xtb
+++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Par Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Atvērt pārlūkā Chrome</translation>
 <translation id="1203500561924088507">Pateicamies, ka veicāt instalēšanu. Pirms <ph name="BUNDLE_NAME" /> izmantošanas ir jārestartē pārlūkprogramma.</translation>
-<translation id="1236866257838264361">Varat pilnvērtīgi izmantot pārlūku Chrome</translation>
 <translation id="1278833599417554002">Atkārtoti palaist, lai atjauninātu &amp;Chrome</translation>
 <translation id="1302523850133262269">Lūdzu, uzgaidiet, kamēr Chrome instalē jaunākos sistēmas atjauninājumus.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> pieprasa, lai pirms šīs ierīces lietošanas jūs izlasītu tālāk izklāstītos pakalpojumu sniegšanas noteikumus un piekristu tiem. Šie noteikumi nepaplašina, nepārveido un neierobežo operētājsistēmas Google Chrome OS Flex noteikumus.</translation>
@@ -250,12 +249,14 @@
 <translation id="5895138241574237353">Restartēt</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> — pierakstīšanās tīklā</translation>
 <translation id="5924017743176219022">Notiek savienojuma izveide ar internetu...</translation>
+<translation id="5932997892801542621">Kad rakstāt adreses joslā vai meklēšanas lodziņā, pārlūks Chrome nosūta ierakstīto tekstu Google diskam, lai iegūtu vienumu ieteikumus. Inkognito režīmā šis iestatījums ir izslēgts.</translation>
 <translation id="5940385492829620908">Šeit atrodas jūsu tīmekļa saturs, grāmatzīmes un cits Chrome saturs.</translation>
 <translation id="5941711191222866238">Minimizēt</translation>
 <translation id="5941830788786076944">Izveidot Google Chrome par noklusējuma pārlūku</translation>
 <translation id="6003112304606738118">Notiek lejupielāde... Atlikušais laiks: <ph name="HOURS" /> stunda(-as).</translation>
 <translation id="6010556343189461180">Lai saņemtu turpmākus Google Chrome atjauninājumus, ir nepieciešama operētājsistēma macOS 10.15 vai jaunāka versija. Šajā datorā tiek izmantota operētājsistēma macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome tūlīt tiks aizvērts.}=1{Chrome tiks aizvērts pēc 1 sekundes.}zero{Chrome tiks aizvērts pēc # sekundēm.}one{Chrome tiks aizvērts pēc # sekundes.}other{Chrome tiks aizvērts pēc # sekundēm.}}</translation>
+<translation id="6022659036123304283">Pielāgojiet Chrome savām prasībām</translation>
 <translation id="6040143037577758943">Aizvērt</translation>
 <translation id="6070348360322141662">Papildu drošības nolūkos Google Chrome šifrēs jūsu datus.</translation>
 <translation id="608006075545470555">Darba profila pievienošana šai pārlūkprogrammai</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mk.xtb b/chrome/app/resources/google_chrome_strings_mk.xtb
index 58027de..f7650076 100644
--- a/chrome/app/resources/google_chrome_strings_mk.xtb
+++ b/chrome/app/resources/google_chrome_strings_mk.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">За Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Отвори во Chrome</translation>
 <translation id="1203500561924088507">Фала за инсталирањето. Мора да го рестартирате прелистувачот пред да користите <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Можете да го извлечете максимумот од Chrome</translation>
 <translation id="1278833599417554002">Рестартирајте за да се ажурира &amp;Chrome</translation>
 <translation id="1302523850133262269">Почекајте додека Chrome ги инсталира последните системски ажурирања.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> бара да ги прочитате и да ги прифатите следните „Услови за користење“ пред да го користите уредов. Овие услови не ги прошируваат, менуваат или ограничуваат „Условите на Google ChromeOS Flex“.</translation>
@@ -255,12 +254,14 @@
 <translation id="5895138241574237353">Рестартирај</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Мрежно најавување</translation>
 <translation id="5924017743176219022">Се поврзува на интернет…</translation>
+<translation id="5932997892801542621">Кога ќе напишете нешто во лентата за адреси или полето за пребарување, Chrome го испраќа напишаното до Google Drive за да добиете предлози за ставки. Ова е исклучено во „Инкогнито“.</translation>
 <translation id="5940385492829620908">Вебот, обележувачите и останатите работи на Chrome живеат тука.</translation>
 <translation id="5941711191222866238">Минимизирај</translation>
 <translation id="5941830788786076944">Постави го Google Chrome за стандарден прелистувач</translation>
 <translation id="6003112304606738118">Се презема… Уште <ph name="HOURS" /> ч.</translation>
 <translation id="6010556343189461180">За да добивате идни ажурирања на Google Chrome, потребен ви е macOS 10.15 или понова верзија. Компјутеров користи macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ќе се затвори сега.}=1{Chrome ќе се затвори по 1 секунда.}one{Chrome ќе се затвори по # секунда.}other{Chrome ќе се затвори по # секунди.}}</translation>
+<translation id="6022659036123304283">Направете го Chrome свој</translation>
 <translation id="6040143037577758943">Затвори</translation>
 <translation id="6070348360322141662">За дополнителна безбедност, Google Chrome ќе ги шифрира вашите податоци</translation>
 <translation id="608006075545470555">Додајте работен профил во овој прелистувач</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index d6b3c6e5..595f5b8 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS-നെ കുറിച്ച്</translation>
 <translation id="1154147086299354128">&amp;Chrome-ൽ തുറക്കുക</translation>
 <translation id="1203500561924088507">ഇൻസ്റ്റാൾ ചെയ്തതിന് നന്ദി. <ph name="BUNDLE_NAME" /> ഉപയോഗിക്കും മുമ്പ് നിങ്ങളുടെ ബ്രൗസർ റീസ്റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്.</translation>
-<translation id="1236866257838264361">നിങ്ങൾക്ക് Chrome പരമാവധി പ്രയോജനപ്പെടുത്താം</translation>
 <translation id="1278833599417554002">&amp;Chrome അപ്‌ഡേറ്റ് ചെയ്യാൻ വീണ്ടും ആരംഭിക്കുക</translation>
 <translation id="1302523850133262269">ഏറ്റവും പുതിയ സിസ്‌റ്റം അപ്‌ഡേറ്റുകൾ Chrome ഇൻസ്റ്റാളുചെയ്യുന്നതുവരെ കാത്തിരിക്കുക.</translation>
 <translation id="1335640173511558774">ഈ ഉപകരണം ഉപയോഗിക്കുന്നതിന് മുമ്പ് ഇനിപ്പറയുന്ന സേവന നിബന്ധനകൾ നിങ്ങൾ വായിച്ച് അംഗീകരിക്കണമെന്ന് <ph name="MANAGER" /> ആവശ്യപ്പെടുന്നു. ഈ നിബന്ധനകൾ Google ChromeOS Flex നിബന്ധനകൾ വിപുലീകരിക്കുകയോ പരിഷ്‌കരിക്കുകയോ പരിമിതപ്പെടുത്തുകയോ ചെയ്യുന്നില്ല.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">ഡൗൺലോഡ് ചെയ്യുന്നു... <ph name="HOURS" /> മണിക്കൂർ ശേഷിക്കുന്നു</translation>
 <translation id="6010556343189461180">ഭാവിയിൽ Google Chrome അപ്ഡേറ്റുകൾ ലഭിക്കാൻ, നിങ്ങൾക്ക് macOS 10.15 അല്ലെങ്കിൽ അതിന് ശേഷമുള്ള പതിപ്പ് ആവശ്യമാണ്. ഈ കമ്പ്യൂട്ടർ macOS 10.14 ആണ് ഉപയോഗിക്കുന്നത്.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ഇപ്പോൾ അടയ്‌ക്കും.}=1{Chrome ഒരു സെക്കൻഡിൽ അടയ്‌ക്കും.}other{Chrome # സെക്കൻഡിൽ അടയ്‌ക്കും.}}</translation>
+<translation id="6022659036123304283">Chrome-നെ നിങ്ങളുടേതാക്കുക</translation>
 <translation id="6040143037577758943">അടയ്ക്കുക</translation>
 <translation id="6070348360322141662">കൂടുതൽ സുരക്ഷ ലഭ്യമാക്കാൻ, Google Chrome നിങ്ങളുടെ ഡാറ്റ എന്‍‌ക്രിപ്‌റ്റ് ചെയ്യും</translation>
 <translation id="608006075545470555">ഈ ബ്രൗസറിലേക്ക് ഔദ്യോഗിക പ്രൊഫൈൽ ചേർക്കുക</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mn.xtb b/chrome/app/resources/google_chrome_strings_mn.xtb
index 8a4e5ec..c2200c8 100644
--- a/chrome/app/resources/google_chrome_strings_mn.xtb
+++ b/chrome/app/resources/google_chrome_strings_mn.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS-н тухай</translation>
 <translation id="1154147086299354128">&amp;Chrome-д нээх</translation>
 <translation id="1203500561924088507">Суулгасанд баярлалаа. Та <ph name="BUNDLE_NAME" />-г ашиглахаасаа өмнө хөтчөө дахин эхлүүлэх ёстой.</translation>
-<translation id="1236866257838264361">Та Chrome-г таатайгаар бүрэн ашиглах боломжтой</translation>
 <translation id="1278833599417554002">&amp;Chrome-г шинэчлэхийн тулд дахин ачаалах</translation>
 <translation id="1302523850133262269">Chrome-оос хамгийн сүүлийн үеийн системийн шинэчлэлтүүдийг суулгаж байгаа тул түр хүлээнэ үү.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> танаас энэ төхөөрөмжийг ашиглахаасаа өмнө дараах үйлчилгээний нөхцөлийг уншиж, зөвшөөрөхийг шаардаж байна. Эдгээр нөхцөл нь Google ChromeOS Flex-н нөхцөлийг өргөтгөх, өөрчлөх эсвэл хязгаарлахгүй.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Татаж байна... <ph name="HOURS" /> цаг үлдсэн</translation>
 <translation id="6010556343189461180">Google Chrome-н цаашдын шинэчлэлтийг авахын тулд танд macOS 10.15 эсвэл түүнээс хойших хувилбар хэрэгтэй болно. Энэ компьютер macOS 10.14 хувилбарыг ашиглаж байна.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome-г одоо хаана.}=1{Chrome-г 1 секундийн дараа хаана.}other{Chrome-г # секундийн дараа хаана.}}</translation>
+<translation id="6022659036123304283">Chrome-г хүссэнээрээ тохируулаарай</translation>
 <translation id="6040143037577758943">Хаах</translation>
 <translation id="6070348360322141662">Таны аюулгүй байдлыг сайжруулахын тулд Google Chrome таны өгөгдлийг шифрлэнэ</translation>
 <translation id="608006075545470555">Энэ хөтчид ажлын профайл нэмэх</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index 18f8a9ac..3e734ae 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -14,7 +14,6 @@
 <translation id="1152920704813762236">ChromeOS बद्दल</translation>
 <translation id="1154147086299354128">Chrome मध्‍ये &amp;उघडा</translation>
 <translation id="1203500561924088507">इंस्टॉल केल्याबद्दल धन्यवाद. तुम्ही <ph name="BUNDLE_NAME" /> वापरण्यापूर्वी तुमचा ब्राउझर रीस्टार्ट करणे आवश्यक आहे.</translation>
-<translation id="1236866257838264361">तुम्ही Chrome चा पुरेपूर आनंद घेऊ शकता</translation>
 <translation id="1278833599417554002">&amp;Chrome अपडेट करण्यासाठी पुन्हा लाँच करा</translation>
 <translation id="1302523850133262269">कृपया Chrome नवीनतम सिस्टम अपडेट इंस्टॉल करताना प्रतीक्षा करा.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> नुसार तुम्ही हे डिव्हाइस वापरण्यापूर्वी खालील सेवा अटी वाचणे आणि स्वीकारणे आवश्यक आहे. या अटी Google ChromeOS Flex अटींचा विस्तार करत नाहीत, त्यामध्ये सुधारणा करत नाहीत किंवा त्या मर्यादित करत नाहीत.</translation>
@@ -253,12 +252,14 @@
 <translation id="5895138241574237353">रीस्टार्ट करा</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - नेटवर्क साइन इन</translation>
 <translation id="5924017743176219022">इंटरनेटशी कनेक्ट करत आहे...</translation>
+<translation id="5932997892801542621">तुम्ही अ‍ॅड्रेस बार किंवा सर्च बॉक्समध्ये टाइप करता, तेव्हा आयटमसंबंधित सूचना मिळवण्यासाठी, Chrome तुम्ही जे टाइप करता ते Google Drive ला पाठवते. हे गुप्त मोड मध्ये बंद आहे.</translation>
 <translation id="5940385492829620908">तुमचे वेब, बुकमार्क आणि अन्य Chrome आशय येथे थेट आहे.</translation>
 <translation id="5941711191222866238">कमी करा</translation>
 <translation id="5941830788786076944">Google Chromeला डीफॉल्ट ब्राउझर बनवा</translation>
 <translation id="6003112304606738118">डाउनलोड करत आहे... <ph name="HOURS" /> तास शिल्लक आहे(आहेत)</translation>
 <translation id="6010556343189461180">भविष्यातील Google Chrome अपडेट मिळवण्यासाठी, तुमच्याकडे macOS 10.15 किंवा त्यानंतरची आवृत्ती असणे आवश्यक आहे. हा कॉंप्युटर macOS 10.14 वापरत आहे.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome will close now.}=1{Chrome एका सेकंदामध्ये बंद होईल.}other{Chrome # सेकंदांमध्ये बंद होईल.}}</translation>
+<translation id="6022659036123304283">Chrome ला तुमच्या आवडीनुसार बनवा</translation>
 <translation id="6040143037577758943">बंद करा</translation>
 <translation id="6070348360322141662">अतिरिक्त सुरक्षिततेसाठी, Google Chrome तुमचा डेटा एंक्रिप्ट करेल</translation>
 <translation id="608006075545470555">या ब्राउझरवर कार्य प्रोफाइल जोडा</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb
index 51f801d6..1324aa5 100644
--- a/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Perihal Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Buka dalam Chrome</translation>
 <translation id="1203500561924088507">Terima kasih kerana memasang. Anda perlu memulakan semula penyemak imbas anda sebelum menggunakan <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Anda boleh memanfaatkan Chrome sepenuhnya</translation>
 <translation id="1278833599417554002">Lancarkan semula untuk mengemas kini &amp;Chrome</translation>
 <translation id="1302523850133262269">Sila tunggu sementara Chrome memasang kemas kini sistem terkini.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> menghendaki anda membaca dan menerima Syarat Perkhidmatan berikut sebelum menggunakan peranti ini. Syarat ini tidak memperluas, mengubah suai atau mengehadkan Syarat Chrome OS Flex.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">Memuat turun… <ph name="HOURS" /> jam lagi</translation>
 <translation id="6010556343189461180">Untuk mendapatkan kemaskinian Google Chrome yang akan datang, anda memerlukan macOS 10.15 atau yang lebih baharu. Komputer ini menggunakan macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome akan ditutup sekarang.}=1{Chrome akan ditutup dalam masa 1 saat.}other{Chrome akan ditutup dalam masa # saat.}}</translation>
+<translation id="6022659036123304283">Peribadikan Chrome anda</translation>
 <translation id="6040143037577758943">Tutup</translation>
 <translation id="6070348360322141662">Untuk keselamatan tambahan, Google Chrome akan menyulitkan data anda</translation>
 <translation id="608006075545470555">Tambahkan Profil Kerja pada penyemak imbas ini</translation>
diff --git a/chrome/app/resources/google_chrome_strings_my.xtb b/chrome/app/resources/google_chrome_strings_my.xtb
index 5f18f8d..0d6df9a 100644
--- a/chrome/app/resources/google_chrome_strings_my.xtb
+++ b/chrome/app/resources/google_chrome_strings_my.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS အကြောင်း</translation>
 <translation id="1154147086299354128">&amp;Chrome တွင် ဖွင့်ရန်</translation>
 <translation id="1203500561924088507">ထည့်သွင်းသည့်အတွက် ကျေးဇူးတင်ပါသည်။ <ph name="BUNDLE_NAME" /> အသုံးမပြုမီ သင့်ဘရောင်ဇာကို ပြန်စရမည်။</translation>
-<translation id="1236866257838264361">Chrome ကို အကောင်းဆုံး အသုံးချနိုင်သည်</translation>
 <translation id="1278833599417554002">&amp;Chrome အပ်ဒိတ်လုပ်ရန် ပြန်ဖွင့်ပါ</translation>
 <translation id="1302523850133262269">​​ကျေးဇူးပြုပြီး Chrome က စနစ်၏ နောက်ဆုံး မွမ်းမံမှုများကို တပ်ဆင်ပေးနေတာကို စောင့်ပါ။</translation>
 <translation id="1335640173511558774">ဤစက်ကိုမသုံးမီ အောက်ပါ ‘ဝန်ဆောင်မှုစည်းမျဉ်းများ’ ကို ဖတ်ရှုပြီး လက်ခံရန် <ph name="MANAGER" /> က သတ်မှတ်ထားသည်။ ဤစည်းမျဉ်းများက ‘Google ChromeOS Flex စည်းမျဉ်းများ’ ကို ထပ်ထည့်ခြင်း၊ မွမ်းမံခြင်း သို့မဟုတ် ကန့်သတ်ခြင်း မရှိပါ။</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">ဒေါင်းလုဒ်လုပ်နေသည်… <ph name="HOURS" /> နာရီ ကျန်သည်</translation>
 <translation id="6010556343189461180">နောက်ပိုင်းထွက်မည့် Google Chrome အပ်ဒိတ်များ ရယူရန် macOS 10.15 နှင့်အထက် လိုအပ်ပါမည်။ ဤကွန်ပျူတာက macOS 10.14 အသုံးပြုနေသည်။</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ကို ယခုပိတ်ပါမည်။}=1{Chrome ကို ၁ စက္ကန့်အကြာတွင် ပိတ်ပါမည်။}other{Chrome ကို # စက္ကန့်အကြာတွင် ပိတ်ပါမည်။}}</translation>
+<translation id="6022659036123304283">Chrome ကို သင့်စိတ်ကြိုက်ပြင်ဆင်လိုက်ပါ</translation>
 <translation id="6040143037577758943">ပိတ်ရန်</translation>
 <translation id="6070348360322141662">လုံခြုံရေး ပိုမိုတင်းကြပ်စေရန်အတွက် Google Chrome သည် သင်၏ ဒေတာများကို အသွင်ဝှက်ထားပါမည်</translation>
 <translation id="608006075545470555">ဤဘရောင်ဇာတွင် အလုပ်ပရိုဖိုင်ထည့်ခြင်း</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ne.xtb b/chrome/app/resources/google_chrome_strings_ne.xtb
index 3ace561..f3d325a9 100644
--- a/chrome/app/resources/google_chrome_strings_ne.xtb
+++ b/chrome/app/resources/google_chrome_strings_ne.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS का बारेमा</translation>
 <translation id="1154147086299354128">Chrome मा खोल्नुहोस्</translation>
 <translation id="1203500561924088507">इन्स्टल गर्नुभएकोमा धन्यवाद। <ph name="BUNDLE_NAME" /> प्रयोग गर्नुअघि तपाईंले अनिवार्य रूपमा आफ्नो ब्राउजर रिस्टार्ट गर्नु पर्छ।</translation>
-<translation id="1236866257838264361">तपाईं Chrome बाट बढीभन्दा बढी फाइदाहरूको आनन्द लिन सक्नुहुन्छ</translation>
 <translation id="1278833599417554002">&amp;Chrome अपडेट गर्न पुनः सुरु गर्नुहोस्</translation>
 <translation id="1302523850133262269">Chrome ले नवीनतम सिस्टम अपडेटहरू स्थापित गर्दै गर्दा कृपया प्रतिक्षा गर्नुहोस्।</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> को नीतिअनुसार तपाईंले यो डिभाइस प्रयोग गर्नुअघि सेवाका निम्न सर्तहरू पढेर स्वीकार गर्नु पर्ने हुन्छ। यी सर्तले Google ChromeOS Flex का सर्तहरू विस्तार, परिमार्जन वा सीमित गर्दैनन्।</translation>
@@ -258,6 +257,7 @@
 <translation id="6003112304606738118">डाउनलोड गरिँदै छ... <ph name="HOURS" /> घण्टा बाँकी छ</translation>
 <translation id="6010556343189461180">तपाईंको कम्प्युटरमा macOS १०.१५ वा सोभन्दा नयाँ संस्करण इन्स्टल गरिएको छ भने मात्र तपाईं भविष्यमा Google Chrome का अपडेट प्राप्त गर्नुहुन्छ। यो कम्प्युटरमा macOS १०.१४ प्रयोग भइरहेको छ।</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome अब बन्द हुने छ।}=1{Chrome १ सेकेन्डपछि बन्द हुने छ।}other{Chrome # सेकेन्डपछि बन्द हुने छ।}}</translation>
+<translation id="6022659036123304283">Chrome लाई आफ्नै बनाउनुहोस्</translation>
 <translation id="6040143037577758943">बन्द गर्नुहोस्</translation>
 <translation id="6070348360322141662">थप गरिएको सुरक्षाका लागि Google Chrome ले तपाईंको डेटालाई इन्क्रिप्ट गर्ने छ</translation>
 <translation id="608006075545470555">यो ब्राउजरमा कार्य प्रोफाइल हाल्नुहोस्</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb
index 87f306b..9925110 100644
--- a/chrome/app/resources/google_chrome_strings_nl.xtb
+++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Over Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Openen in Chrome</translation>
 <translation id="1203500561924088507">Bedankt voor het installeren. Je moet de browser opnieuw opstarten voordat je <ph name="BUNDLE_NAME" /> kunt gebruiken.</translation>
-<translation id="1236866257838264361">Je kunt optimaal gebruik maken van Chrome</translation>
 <translation id="1278833599417554002">Opnieuw starten om &amp;Chrome te updaten</translation>
 <translation id="1302523850133262269">Wacht terwijl Chrome de nieuwste systeemupdates installeert.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> vereist dat je de volgende Servicevoorwaarden leest en accepteert voordat je dit apparaat gebruikt. Deze voorwaarden zijn geen uitbreiding, aanpassing of beperking van de Voorwaarden van Google Chrome OS Flex.</translation>
@@ -259,6 +258,7 @@
 <translation id="6003112304606738118">Downloaden... Nog <ph name="HOURS" /> uur</translation>
 <translation id="6010556343189461180">Als je toekomstige Google Chrome-updates wilt krijgen, heb je macOS 10.15 of hoger nodig. Deze computer gebruikt macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome wordt nu gesloten.}=1{Chrome wordt over 1 seconde gesloten.}other{Chrome wordt over # seconden gesloten.}}</translation>
+<translation id="6022659036123304283">Personaliseer Chrome voor jou</translation>
 <translation id="6040143037577758943">Sluiten</translation>
 <translation id="6070348360322141662">Je gegevens worden voor extra beveiliging door Google Chrome versleuteld</translation>
 <translation id="608006075545470555">Werkprofiel toevoegen aan deze browser</translation>
diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb
index 1ff7509..48a7191 100644
--- a/chrome/app/resources/google_chrome_strings_no.xtb
+++ b/chrome/app/resources/google_chrome_strings_no.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Om ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Åpne i Chrome</translation>
 <translation id="1203500561924088507">Installasjonen er fullført. Start nettleseren på nytt før du tar i bruk <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Du kan få mest mulig ut av Chrome</translation>
 <translation id="1278833599417554002">Start på nytt for å oppdatere &amp;Chrome</translation>
 <translation id="1302523850133262269">Vent mens Chrome installerer de nyeste systemoppdateringene.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> krever at du leser og godtar følgende vilkår før du bruker denne enheten. Disse vilkårene verken utvider, endrer eller begrenser Google ChromeOS Flex-vilkårene.</translation>
@@ -253,6 +252,7 @@
 <translation id="6003112304606738118">Laster ned … <ph name="HOURS" /> time(r) igjen</translation>
 <translation id="6010556343189461180">For å få fremtidige Google Chrome-oppdateringer må du ha macOS 10.15 eller nyere. Denne datamaskinen bruker macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome lukkes nå.}=1{Chrome lukkes om 1 sekund.}other{Chrome lukkes om # sekunder.}}</translation>
+<translation id="6022659036123304283">Gi Chrome et personlig preg</translation>
 <translation id="6040143037577758943">Lukk</translation>
 <translation id="6070348360322141662">Google Chrome krypterer dataene dine for å øke sikkerheten</translation>
 <translation id="608006075545470555">Legg til en jobbprofil i denne nettleseren</translation>
diff --git a/chrome/app/resources/google_chrome_strings_or.xtb b/chrome/app/resources/google_chrome_strings_or.xtb
index d9fa0df..5f6e9fd2 100644
--- a/chrome/app/resources/google_chrome_strings_or.xtb
+++ b/chrome/app/resources/google_chrome_strings_or.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS ବିଷୟରେ</translation>
 <translation id="1154147086299354128">&amp;Chromeରେ ଖୋଲନ୍ତୁ</translation>
 <translation id="1203500561924088507">ଇନଷ୍ଟଲ କରିଥିବା ଯୋଗୁଁ ଧନ୍ୟବାଦ। ଆପଣ <ph name="BUNDLE_NAME" /> ବ୍ୟବହାର କରିବା ପୂର୍ବରୁ ଆପଣଙ୍କ ବ୍ରାଉଜରକୁ ରିଷ୍ଟାର୍ଟ କରିବା ଆବଶ୍ୟକ।</translation>
-<translation id="1236866257838264361">ଆପଣ Chromeରୁ ସବୁଠୁ ଅଧିକ ମଜା ନେଇପାରିବେ</translation>
 <translation id="1278833599417554002">&amp;Chrome ଅପଡେଟ୍ କରିବା ପାଇଁ ପୁଣି ଲଞ୍ଚ କରନ୍ତୁ</translation>
 <translation id="1302523850133262269">Chrome ନବୀନତମ ସିଷ୍ଟମ୍ ଅପ୍‌ଡେଟ୍‌ଗୁଡ଼ିକ ଇନ୍‌ଷ୍ଟଲ୍ କରୁଛି, ଦୟାକରି ଅପେକ୍ଷା କରନ୍ତୁ।</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> ପାଇଁ ଆପଣଙ୍କୁ ଏହି ଡିଭାଇସକୁ ବ୍ୟବହାର କରିବା ପୂର୍ବରୁ ନିମ୍ନୋକ୍ତ ସେବାର ସର୍ତ୍ତାବଳୀକୁ ପଢ଼ି ସେଗୁଡ଼ିକୁ ଗ୍ରହଣ କରିବାର ଆବଶ୍ୟକତା ଅଛି। ଏହି ସର୍ତ୍ତାବଳୀ Google ChromeOS Flexର ସର୍ତ୍ତାବଳୀକୁ ବିସ୍ତାର, ପରିବର୍ତ୍ତନ କିମ୍ବା ସୀମିତ କରେ ନାହିଁ।</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">ଡାଉନଲୋଡ ହେଉଛି… <ph name="HOURS" /> ଘଣ୍ଟା ବାକି ଅଛି</translation>
 <translation id="6010556343189461180">ଭବିଷ୍ୟତରେ Google Chromeର ଅପଡେଟଗୁଡ଼ିକ ପାଇବା ପାଇଁ ଆପଣ macOS 10.15 କିମ୍ବା ତା'ପରର ସଂସ୍କରଣ ଆବଶ୍ୟକ କରିବେ। ଏହି କମ୍ପ୍ୟୁଟରରେ macOS 10.14 ସଂସ୍କରଣ ବ୍ୟବହାର କରାଯାଉଛି।</translation>
 <translation id="6022388122721048220">{0,plural, =0{ବର୍ତ୍ତମାନ Chrome ବନ୍ଦ ହୋଇଯିବ।}=1{1 ସେକେଣ୍ଡରେ Chrome ବନ୍ଦ ହୋଇଯିବ।}other{# ସେକେଣ୍ଡରେ Chrome ବନ୍ଦ ହୋଇଯିବ।}}</translation>
+<translation id="6022659036123304283">Chromeକୁ ନିଜ ପସନ୍ଦରେ ତିଆରି କରନ୍ତୁ</translation>
 <translation id="6040143037577758943">ବନ୍ଦ</translation>
 <translation id="6070348360322141662">ଅତିରିକ୍ତ ସୁରକ୍ଷା ପାଇଁ, Google Chrome ଆପଣଙ୍କର ଡାଟା ଏନକ୍ରିପ୍ଟ କରିବ</translation>
 <translation id="608006075545470555">ଏହି ବ୍ରାଉଜରରେ ୱାର୍କ ପ୍ରୋଫାଇଲ୍ ଯୋଗ କରନ୍ତୁ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pa.xtb b/chrome/app/resources/google_chrome_strings_pa.xtb
index 471db07c..c62fe63 100644
--- a/chrome/app/resources/google_chrome_strings_pa.xtb
+++ b/chrome/app/resources/google_chrome_strings_pa.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS ਬਾਰੇ</translation>
 <translation id="1154147086299354128">&amp;Chrome ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
 <translation id="1203500561924088507">ਸਥਾਪਨਾ ਕਰਨ ਲਈ ਧੰਨਵਾਦ। <ph name="BUNDLE_NAME" /> ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨਾ ਲਾਜ਼ਮੀ ਹੈ।</translation>
-<translation id="1236866257838264361">ਤੁਸੀਂ Chrome ਦਾ ਵੱਧ ਤੋਂ ਵੱਧ ਲਾਹਾ ਲੈ ਸਕਦੇ ਹੋ</translation>
 <translation id="1278833599417554002">&amp;Chrome ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਮੁੜ-ਲਾਂਚ ਕਰੋ</translation>
 <translation id="1302523850133262269">ਕਿਰਪਾ ਕਰਕੇ Chrome ਵੱਲੋਂ ਨਵੀਨਤਮ ਸਿਸਟਮ ਅੱਪਡੇਟਾਂ ਨੂੰ ਸਥਾਪਤ ਕੀਤੇ ਜਾਣ ਤੱਕ ਉਡੀਕ ਕਰੋ।</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> ਦੀ ਸ਼ਰਤ ਹੈ ਕਿ ਤੁਸੀਂ ਇਸ ਡੀਵਾਈਸ ਨੂੰ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ ਹੇਠਾਂ ਦਿੱਤੇ ਸੇਵਾ ਦੇ ਨਿਯਮ ਪੜ੍ਹ ਕੇ ਸਵੀਕਾਰ ਕਰੋ। ਇਹ ਨਿਯਮ Google ChromeOS Flex ਦੇ ਨਿਯਮਾਂ ਦਾ ਵਿਸਤਾਰ ਨਹੀਂ ਕਰਦੇ, ਇਨ੍ਹਾਂ ਵਿੱਚ ਕੋਈ ਸੋਧ ਨਹੀਂ ਕਰਦੇ ਜਾਂ ਇਨ੍ਹਾਂ ਨੂੰ ਸੀਮਤ ਨਹੀਂ ਕਰਦੇ ਹਨ।</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ... <ph name="HOURS" /> ਘੰਟੇ ਬਾਕੀ</translation>
 <translation id="6010556343189461180">Google Chrome ਸੰਬੰਧੀ ਭਵਿੱਖੀ ਅੱਪਡੇਟ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ macOS 10.15 ਜਾਂ ਇਸ ਤੋਂ ਬਾਅਦ ਵਾਲੇ ਵਰਜਨ ਦੀ ਲੋੜ ਪਵੇਗੀ। ਇਸ ਕੰਪਿਊਟਰ 'ਤੇ macOS 10.14 ਵਰਜਨ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ।</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ਹੁਣ ਬੰਦ ਹੋ ਜਾਵੇਗਾ।}=1{Chrome 1 ਸਕਿੰਟ ਵਿੱਚ ਬੰਦ ਹੋ ਜਾਵੇਗਾ।}other{Chrome # ਸਕਿੰਟਾਂ ਵਿੱਚ ਬੰਦ ਹੋ ਜਾਵੇਗਾ।}}</translation>
+<translation id="6022659036123304283">Chrome ਨੂੰ ਆਪਣੇ ਅਨੁਸਾਰ ਵਿਵਸਥਿਤ ਕਰੋ</translation>
 <translation id="6040143037577758943">ਬੰਦ ਕਰੋ</translation>
 <translation id="6070348360322141662">ਬਿਹਤਰ ਸੁਰੱਖਿਆ ਲਈ, Google Chrome ਤੁਹਾਡੇ ਡਾਟੇ ਨੂੰ ਇਨਕ੍ਰਿਪਟ ਕਰੇਗਾ</translation>
 <translation id="608006075545470555">ਇਸ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਸ਼ਾਮਲ ਕਰੋ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb
index da92d06a..4d88ec1 100644
--- a/chrome/app/resources/google_chrome_strings_pl.xtb
+++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">System operacyjny Chrome – informacje</translation>
 <translation id="1154147086299354128">&amp;Otwórz w Chrome</translation>
 <translation id="1203500561924088507">Dziękujemy za instalację. Przed rozpoczęciem korzystania z programu <ph name="BUNDLE_NAME" /> musisz ponownie uruchomić przeglądarkę.</translation>
-<translation id="1236866257838264361">Możesz w pełni wykorzystać możliwości Chrome</translation>
 <translation id="1278833599417554002">Uruchom ponownie, aby zaktualizować &amp;Chrome</translation>
 <translation id="1302523850133262269">Poczekaj, aż Chrome zainstaluje najnowsze aktualizacje systemu.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> wymaga, aby przed skorzystaniem z tego urządzenia przeczytać i zaakceptować Warunki korzystania z usługi. Nie rozszerzają, nie zmieniają ani nie ograniczają one Warunków korzystania z Google ChromeOS Flex.</translation>
@@ -253,6 +252,7 @@
 <translation id="6003112304606738118">Pobieram… Pozostało: <ph name="HOURS" /> godz.</translation>
 <translation id="6010556343189461180">Aby otrzymywać w przyszłości aktualizacje Google Chrome, musisz mieć system macOS 10.15 lub nowszy. Na tym komputerze jest zainstalowany system macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Aplikacja Chrome zostanie teraz zamknięta.}=1{Aplikacja Chrome zostanie zamknięta za 1 sekundę.}few{Aplikacja Chrome zostanie zamknięta za # sekundy.}many{Aplikacja Chrome zostanie zamknięta za # sekund.}other{Aplikacja Chrome zostanie zamknięta za # sekundy.}}</translation>
+<translation id="6022659036123304283">Dostosuj Chrome do swoich potrzeb</translation>
 <translation id="6040143037577758943">Zamknij</translation>
 <translation id="6070348360322141662">Dla większego bezpieczeństwa Google Chrome szyfruje dane</translation>
 <translation id="608006075545470555">Dodaj profil służbowy w tej przeglądarce</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
index 24e33ee..930090e 100644
--- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Sobre o ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Abrir no Chrome</translation>
 <translation id="1203500561924088507">Agradecemos por fazer a instalação. É necessário reiniciar o navegador antes de utilizar o <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Aproveite o Chrome ao máximo</translation>
 <translation id="1278833599417554002">Reinicializar para atualizar o &amp;Chrome</translation>
 <translation id="1302523850133262269">Aguarde enquanto o Chrome instala as últimas atualizações do sistema.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> requer que você leia e aceite os Termos de Serviço a seguir antes de usar o dispositivo. Esses termos não ampliam, modificam nem limitam os Termos do Google ChromeOS Flex.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">Fazendo o download… <ph name="HOURS" /> hora(s) restante(s)</translation>
 <translation id="6010556343189461180">Para receber as próximas atualizações do Google Chrome, você vai precisar do macOS 10.15 ou versão mais recente. Este computador está usando o macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{O Chrome vai ser fechado agora.}=1{O Chrome vai ser fechado em 1 segundo.}one{O Chrome vai ser fechado em # segundo.}other{O Chrome vai ser fechado em # segundos.}}</translation>
+<translation id="6022659036123304283">Deixe o Chrome do seu jeito</translation>
 <translation id="6040143037577758943">Fechar</translation>
 <translation id="6070348360322141662">Para maior segurança, o Google Chrome criptografará seus dados</translation>
 <translation id="608006075545470555">Adicionar um perfil de trabalho a este navegador</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
index ab2befe6..a7e504a 100644
--- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Acerca do ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Abrir no Chrome</translation>
 <translation id="1203500561924088507">Agradecemos a instalação. Tem de reiniciar o navegador antes de utilizar o <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Pode tirar o máximo partido do Chrome</translation>
 <translation id="1278833599417554002">Reiniciar para atualizar o &amp;Chrome</translation>
 <translation id="1302523850133262269">Aguarde até que o Chrome instale as atualizações do sistema mais recentes.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> requer a leitura e aceitação dos seguintes Termos de Utilização antes de usar este dispositivo. Estes termos não ampliam, não modificam nem limitam os Termos do Google ChromeOS Flex.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">A transferir… Falta(m) <ph name="HOURS" /> hora(s)</translation>
 <translation id="6010556343189461180">Para obter atualizações futuras do Google Chrome, precisa do macOS 10.15 posterior. Este computador está a usar o macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{O Chrome vai fechar agora.}=1{O Chrome vai fechar dentro de 1 segundo.}other{O Chrome vai fechar dentro de # segundos.}}</translation>
+<translation id="6022659036123304283">Personalize o Google Chrome</translation>
 <translation id="6040143037577758943">Fechar</translation>
 <translation id="6070348360322141662">Para uma segurança adicional, o Google Chrome encripta os seus dados</translation>
 <translation id="608006075545470555">Adicione um perfil de trabalho a este navegador</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb
index 6dc402b..c6e61b0 100644
--- a/chrome/app/resources/google_chrome_strings_ro.xtb
+++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Despre sistemul de operare Chrome</translation>
 <translation id="1154147086299354128">&amp;Deschide în Chrome</translation>
 <translation id="1203500561924088507">Mulțumim pentru instalare. Înainte să folosești <ph name="BUNDLE_NAME" /> trebuie să repornești browserul.</translation>
-<translation id="1236866257838264361">Poți profita din plin de Chrome</translation>
 <translation id="1278833599417554002">Relansează pentru a actualiza &amp;Chrome</translation>
 <translation id="1302523850133262269">Așteaptă până când Chrome instalează cele mai recente actualizări de sistem.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> îți solicită să citești și să accepți Termenii și condițiile următoare înainte de a folosi acest dispozitiv. Aceste condiții nu extind, nu modifică și nu limitează Condițiile pentru sistemul de operare Google Chrome Flex.</translation>
@@ -253,6 +252,7 @@
 <translation id="6003112304606738118">Se descarcă… Au rămas <ph name="HOURS" /> ore</translation>
 <translation id="6010556343189461180">Pentru a primi actualizările Google Chrome viitoare, vei avea nevoie de macOS 10.15 sau o versiune ulterioară. Acest computer folosește macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome se va închide acum.}=1{Chrome se va închide într-o secundă.}few{Chrome se va închide în # secunde.}other{Chrome se va închide în # de secunde.}}</translation>
+<translation id="6022659036123304283">Personalizează Chrome</translation>
 <translation id="6040143037577758943">Închide</translation>
 <translation id="6070348360322141662">Pentru un plus de securitate, Google Chrome îți va cripta datele</translation>
 <translation id="608006075545470555">Adaugă un profil de serviciu în acest browser</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb
index 9b9ff76..aa08731f 100644
--- a/chrome/app/resources/google_chrome_strings_ru.xtb
+++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Подробнее о ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Открыть в Chrome</translation>
 <translation id="1203500561924088507">Спасибо, что установили <ph name="BUNDLE_NAME" />. Чтобы изменения вступили в силу, перезапустите браузер.</translation>
-<translation id="1236866257838264361">Так вы сможете пользоваться всеми возможностями Chrome.</translation>
 <translation id="1278833599417554002">Перезапустить для обновления &amp;Chrome</translation>
 <translation id="1302523850133262269">Подождите, пока Chrome устанавливает последние обновления системы</translation>
 <translation id="1335640173511558774">Согласно действующим правилам (источник правил: <ph name="MANAGER" />) до начала работы с устройством необходимо ознакомиться с приведенными ниже Условиями использования и принять их. Они не дополняют, не заменяют и не ограничивают Условия использования Google Chrome OS Flex.</translation>
@@ -253,6 +252,7 @@
 <translation id="6003112304606738118">Скачивание… Осталось: <ph name="HOURS" /> ч.</translation>
 <translation id="6010556343189461180">На вашем компьютере используется macOS 10.14. Чтобы получать обновления Google Chrome, установите на устройство macOS 10.15 или более поздней версии.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Браузер Chrome будет закрыт.}=1{Браузер Chrome будет закрыт через 1 секунду.}one{Браузер Chrome будет закрыт через # секунду.}few{Браузер Chrome будет закрыт через # секунды.}many{Браузер Chrome будет закрыт через # секунд.}other{Браузер Chrome будет закрыт через # секунды.}}</translation>
+<translation id="6022659036123304283">Настройте Chrome для себя</translation>
 <translation id="6040143037577758943">Закрыть</translation>
 <translation id="6070348360322141662">В целях повышения безопасности Google Chrome шифрует ваши данные</translation>
 <translation id="608006075545470555">Добавление рабочего профиля в браузер</translation>
diff --git a/chrome/app/resources/google_chrome_strings_si.xtb b/chrome/app/resources/google_chrome_strings_si.xtb
index 8e79628..c2ee5b9 100644
--- a/chrome/app/resources/google_chrome_strings_si.xtb
+++ b/chrome/app/resources/google_chrome_strings_si.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">ChromeOS ගැන</translation>
 <translation id="1154147086299354128">&amp;Chrome තුළ විවෘත කරන්න</translation>
 <translation id="1203500561924088507">ස්ථාපනය කිරීම වෙනුවෙන් ස්තුතියි. ඔබ <ph name="BUNDLE_NAME" /> භාවිත කිරීමට පෙර ඔබගේ බ්‍රවුසරය යළි ඇරඹිය යුතුය.</translation>
-<translation id="1236866257838264361">ඔබට Chrome වෙතින් උපරිමය භුක්ති විඳිය හැක</translation>
 <translation id="1278833599417554002">&amp;Chrome යාවත්කාලීන කිරීමට යළි දියත් කරන්න</translation>
 <translation id="1302523850133262269">කරුණාකර Chrome නවතම පද්ධති යාවත්කාලීන ස්ථාපනය කරන අතරතුර රැඳී සිටින්න.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> හට ඔබ මෙම උපාංගය භාවිත කිරීමට පෙර පහත සේවා නියම කියවා පිළිගැනීමට අවශ්‍යයි. මෙම නියම Google ChromeOS Flex නියම පුළුල් කිරීම, වෙනස් කිරීම හෝ සීමා කිරීම නොකරයි.</translation>
@@ -261,6 +260,7 @@
 <translation id="6003112304606738118">බාගනිමින්... පැය <ph name="HOURS" />ක් ඉතිරිව ඇත</translation>
 <translation id="6010556343189461180">අනාගත Google Chrome යාවත්කාලීන ලබා ගැනීම සඳහා, ඔබට macOS 10.15 හෝ පසු අනුවාදයක් අවශ්‍ය වනු ඇත. මෙම පරිගණකය macOS 10.14 භාවිතා කරයි.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome දැන් වැසෙනු ඇත.}=1{Chrome තත්පර 1කින් වැසෙනු ඇත.}one{Chrome තත්පර #කින් වැසෙනු ඇත.}other{Chrome තත්පර #කින් වැසෙනු ඇත.}}</translation>
+<translation id="6022659036123304283">Chrome ඔබේම කර ගන්න</translation>
 <translation id="6040143037577758943">වසන්න</translation>
 <translation id="6070348360322141662">අමතර ආරක්ෂාව සඳහා, Google Chrome ඔබේ දත්ත සංකේතනය කරනු ඇත</translation>
 <translation id="608006075545470555">මෙම බ්‍රව්සරයට කාර්යාල පැතිකඩ එක් කරන්න</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb
index e36c46f..694d567 100644
--- a/chrome/app/resources/google_chrome_strings_sk.xtb
+++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Otvoriť v Chrome</translation>
 <translation id="1203500561924088507">Ďakujeme za inštaláciu. Než začnete aplikáciu <ph name="BUNDLE_NAME" /> používať, musíte reštartovať prehliadač.</translation>
-<translation id="1236866257838264361">Môžete naplno využívať Chrome</translation>
 <translation id="1278833599417554002">Znova spustiť a aktualizovať Chrome</translation>
 <translation id="1302523850133262269">Počkajte, kým Chrome nainštaluje najnovšie aktualizácie systému.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> vyžaduje, aby ste si pred používaním tohto zariadenia prečítali nasledujúce zmluvné podmienky a vyjadrili s nimi súhlas. Tieto zmluvné podmienky nerozširujú, neupravujú ani neobmedzujú zmluvné podmienky systému Google Chrome OS Flex.</translation>
@@ -260,6 +259,7 @@
 <translation id="6003112304606738118">Sťahuje sa… Zostávajúci čas: <ph name="HOURS" /> h</translation>
 <translation id="6010556343189461180">Ak chcete dostávať budúce aktualizácie prehliadača Google Chrome, musíte používať systém macOS 10.15 alebo novší. V tomto počítači používate macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome sa teraz zavrie.}=1{Chrome sa zavrie o 1 sekundu.}few{Chrome sa zavrie o # sekundy.}many{Chrome sa zavrie o # sekundy.}other{Chrome sa zavrie o # sekúnd.}}</translation>
+<translation id="6022659036123304283">Upravte si Chrome podľa seba</translation>
 <translation id="6040143037577758943">Zavrieť</translation>
 <translation id="6070348360322141662">V záujme vyššej miery zabezpečenia budú dáta v prehliadači Google Chrome šifrované</translation>
 <translation id="608006075545470555">Pridanie pracovného profilu do tohto prehliadača</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb
index 1db1e8b..cb627c4 100644
--- a/chrome/app/resources/google_chrome_strings_sl.xtb
+++ b/chrome/app/resources/google_chrome_strings_sl.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">O sistemu Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Odpri v Chromu</translation>
 <translation id="1203500561924088507">Hvala, ker ste se odločili za namestitev. Preden uporabite <ph name="BUNDLE_NAME" />, morate znova zagnati brskalnik.</translation>
-<translation id="1236866257838264361">Kar najbolje lahko izkoristite Chrome</translation>
 <translation id="1278833599417554002">Znova zaženite, če želite posodobiti &amp;Chrome</translation>
 <translation id="1302523850133262269">Počakajte, da Chrome namesti najnovejše sistemske posodobitve.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> zahteva, da preberete in sprejmete pogoje storitve, preden začnete uporabljati napravo. Ti pogoji ne dopolnjujejo, spreminjajo ali omejujejo pogojev za Google ChromeOS Flex.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Prenašanje … Še <ph name="HOURS" /> h.</translation>
 <translation id="6010556343189461180">Če želite prejemati prihodnje posodobitve Google Chroma, potrebujete macOS 10.15 ali novejšega. V tem računalniku je nameščen macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome se bo zdaj zaprl.}=1{Chrome se bo zaprl čez 1 sekundo.}one{Chrome se bo zaprl čez # sekundo.}two{Chrome se bo zaprl čez # sekundi.}few{Chrome se bo zaprl čez # sekunde.}other{Chrome se bo zaprl čez # sekund.}}</translation>
+<translation id="6022659036123304283">Prilagodite si Chrome</translation>
 <translation id="6040143037577758943">Zapri</translation>
 <translation id="6070348360322141662">Zaradi večje varnosti bo Google Chrome šifriral vaše podatke</translation>
 <translation id="608006075545470555">Dodajanje delovnega profila v ta brskalnik</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sq.xtb b/chrome/app/resources/google_chrome_strings_sq.xtb
index 3e58c6b..55cc580 100644
--- a/chrome/app/resources/google_chrome_strings_sq.xtb
+++ b/chrome/app/resources/google_chrome_strings_sq.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Rreth ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Hape në Chrome</translation>
 <translation id="1203500561924088507">Faleminderit që e instalove. Duhet të rinisësh shfletuesin përpara se të përdorësh <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Mund të përfitosh në maksimum nga Chrome</translation>
 <translation id="1278833599417554002">Nise përsëri për të përditësuar &amp;Chrome</translation>
 <translation id="1302523850133262269">Prit ndërsa Chrome instalon përditësimet më të fundit të sistemit.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> kërkon që të lexosh dhe të pranosh "Kushtet e shërbimit" më poshtë para se ta përdorësh këtë pajisje. Këto kushte nuk i zgjerojnë, modifikojnë apo kufizojnë kushtet e Google Chrome OS Flex.</translation>
@@ -254,12 +253,14 @@
 <translation id="5895138241574237353">Rinis</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - identifikimi në rrjet</translation>
 <translation id="5924017743176219022">Po lidhet me internetin...</translation>
+<translation id="5932997892801542621">Kur shkruan në shiritin e adresës ose në kutinë e kërkimit, Chrome i dërgon ato që shkruan te "Disku i Google" për të marrë sugjerime për artikujt. Kjo është joaktive në modalitetin "e fshehtë".</translation>
 <translation id="5940385492829620908">Këtu janë materialet e tua të uebit, të faqeshënuesve dhe të tjera nga Chrome.</translation>
 <translation id="5941711191222866238">Minimizo</translation>
 <translation id="5941830788786076944">Bëje Google Chrome shfletuesin e parazgjedhur</translation>
 <translation id="6003112304606738118">Po shkarkohet... Kanë mbetur edhe <ph name="HOURS" /> orë</translation>
 <translation id="6010556343189461180">Për të marrë përditësimet e ardhshme të Google Chrome, do të të duhet macOS 10.15 ose një version i mëvonshëm. Ky kompjuter përdor macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome do të mbyllet tani.}=1{Chrome do të mbyllet pas 1 sekonde.}other{Chrome do të mbyllet pas # sekondash.}}</translation>
+<translation id="6022659036123304283">Bëje Chrome shfletuesin tënd</translation>
 <translation id="6040143037577758943">Mbyll</translation>
 <translation id="6070348360322141662">Për më shumë siguri, Google Chrome do t'i enkriptojë të dhënat e tua</translation>
 <translation id="608006075545470555">Shto profilin e punës në këtë shfletues</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
index 71de054..d947af8 100644
--- a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">O Chrome OS-u</translation>
 <translation id="1154147086299354128">&amp;Otvori u Chrome-u</translation>
 <translation id="1203500561924088507">Hvala vam na instalaciji. Potrebno je da restartujete pregledač pre nego što počnete da koristite <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Možete da uživate u Chrome-u na najbolji način</translation>
 <translation id="1278833599417554002">Ponovo pokreni da bi se &amp;Chrome ažurirao</translation>
 <translation id="1302523850133262269">Sačekajte da Chrome instalira najnovija ažuriranja sistema.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> zahteva da pročitate i prihvatite sledeće Uslove korišćenja usluge pre korišćenja ovog uređaja. Ovi uslovi ne proširuju, menjaju niti ograničavaju Uslove za Google Chrome OS Flex.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Preuzima se... Još <ph name="HOURS" /> č</translation>
 <translation id="6010556343189461180">Da biste dobijali buduća Google Chrome ažuriranja, treba vam macOS 10.15 ili novija verzija. Ovaj računar koristi macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome će se sada zatvoriti.}=1{Chrome će se zatvoriti za 1 sekundu.}one{Chrome će se zatvoriti za # sekundu.}few{Chrome će se zatvoriti za # sekunde.}other{Chrome će se zatvoriti za # sekundi.}}</translation>
+<translation id="6022659036123304283">Prilagodite Chrome sebi</translation>
 <translation id="6040143037577758943">Zatvori</translation>
 <translation id="6070348360322141662">Google Chrome će šifrovati podatke radi dodatne sigurnosti</translation>
 <translation id="608006075545470555">Dodajte poslovni profil u ovaj pregledač</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb
index 1f3fe8e..7af44fd7 100644
--- a/chrome/app/resources/google_chrome_strings_sr.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">О Chrome ОС-у</translation>
 <translation id="1154147086299354128">&amp;Отвори у Chrome-у</translation>
 <translation id="1203500561924088507">Хвала вам на инсталацији. Потребно је да рестартујете прегледач пре него што почнете да користите <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Можете да уживате у Chrome-у на најбољи начин</translation>
 <translation id="1278833599417554002">Поново покрени да би се &amp;Chrome ажурирао</translation>
 <translation id="1302523850133262269">Сачекајте да Chrome инсталира најновија ажурирања система.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> захтева да прочитате и прихватите следеће Услове коришћења услуге пре коришћења овог уређаја. Ови услови не проширују, мењају нити ограничавају Услове за Google Chrome OS Flex.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Преузима се... Још <ph name="HOURS" /> ч</translation>
 <translation id="6010556343189461180">Да бисте добијали будућа Google Chrome ажурирања, треба вам macOS 10.15 или новија верзија. Овај рачунар користи macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ће се сада затворити.}=1{Chrome ће се затворити за 1 секунду.}one{Chrome ће се затворити за # секунду.}few{Chrome ће се затворити за # секунде.}other{Chrome ће се затворити за # секунди.}}</translation>
+<translation id="6022659036123304283">Прилагодите Chrome себи</translation>
 <translation id="6040143037577758943">Затвори</translation>
 <translation id="6070348360322141662">Google Chrome ће шифровати податке ради додатне сигурности</translation>
 <translation id="608006075545470555">Додајте пословни профил у овај прегледач</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb
index c0b4a55..0632ff1f 100644
--- a/chrome/app/resources/google_chrome_strings_sv.xtb
+++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Om Chrome OS</translation>
 <translation id="1154147086299354128">&amp;Öppna i Chrome</translation>
 <translation id="1203500561924088507">Tack för att du installerat programmet. Du måste starta om webbläsaren innan du använder <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Få ut mesta möjliga av Chrome</translation>
 <translation id="1278833599417554002">Starta om för att uppdatera &amp;Chrome</translation>
 <translation id="1302523850133262269">Vänta medan de senaste systemuppdateringarna installeras av Chrome.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> kräver att du läser och godkänner följande användarvillkor innan du använder enheten. Villkoren varken utökar, ändrar eller begränsar villkoren för Google ChromeOS Flex.</translation>
@@ -255,12 +254,14 @@
 <translation id="5895138241574237353">Starta om</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – nätverksinloggning</translation>
 <translation id="5924017743176219022">Ansluter till internet …</translation>
+<translation id="5932997892801542621">När du skriver i adressfältet eller sökrutan skickar Chrome det du skriver till Google Drive för att få förslag på objekt. Detta är inaktiverat i inkognitoläge.</translation>
 <translation id="5940385492829620908">Här finns webben, bokmärken och allt annat du använder Chrome till.</translation>
 <translation id="5941711191222866238">Minimera</translation>
 <translation id="5941830788786076944">Använd Google Chrome som standardwebbläsare</translation>
 <translation id="6003112304606738118">Laddar ned … <ph name="HOURS" /> timme/timmar kvar</translation>
 <translation id="6010556343189461180">Du behöver macOS 10.15 eller senare för att få kommande uppdateringar av Google Chrome. På den här datorn används macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome stängs nu.}=1{Chrome stängs om 1 sekund.}other{Chrome stängs om # sekunder.}}</translation>
+<translation id="6022659036123304283">Anpassa Chrome</translation>
 <translation id="6040143037577758943">Stäng</translation>
 <translation id="6070348360322141662">Din data krypteras i Google Chrome för att öka säkerheten</translation>
 <translation id="608006075545470555">Lägg till en jobbprofil i den här webbläsaren</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb
index 5d268a7..cf6fadf 100644
--- a/chrome/app/resources/google_chrome_strings_sw.xtb
+++ b/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Kuhusu Mfumo wa Uendeshaji wa Chrome</translation>
 <translation id="1154147086299354128">na Fungua katika Chrome</translation>
 <translation id="1203500561924088507">Asante kwa kusakinisha. Ni lazima uzime kisha uwashe tena kivinjari chako kabla ya kutumia <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Unaweza kunufaika zaidi unapotumia Chrome</translation>
 <translation id="1278833599417554002">Fungua tena ili usasishe &amp;Chrome</translation>
 <translation id="1302523850133262269">Tafadhali subiri Chrome inaposakinisha sasisho mpya za mfumo.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> inahitaji usome na ukubali Sheria na Masharti yafuatayo kabla ya kutumia kifaa hiki. Masharti haya hayapanui, hayarekebishi wala hayapunguzi Sheria na Masharti ya Google ChromeOS Flex.</translation>
@@ -255,12 +254,14 @@
 <translation id="5895138241574237353">Zzima na uwashe</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - Kuingia katika Akaunti ya Mtandao</translation>
 <translation id="5924017743176219022">Inaunganisha kwenye Intaneti...</translation>
+<translation id="5932997892801542621">Unapoandika kwenye sehemu ya anwani au kisanduku cha kutafutia, Chrome hutuma unachokiandika kwenda kwenye Hifadhi ya Google ili upate mapendekezo ya kipengee. Kipengele hiki huwa kimezimwa katika Hali fiche.</translation>
 <translation id="5940385492829620908">Wavuti, alamisho, na vitu vyako vingine vya Chrome vinapatikana hapa.</translation>
 <translation id="5941711191222866238">Punguza</translation>
 <translation id="5941830788786076944">Fanya Google Chrome iwe kivinjari chaguomsingi</translation>
 <translation id="6003112304606738118">Inapakua... Zimesalia saa <ph name="HOURS" /></translation>
 <translation id="6010556343189461180">Ili upate masasisho ya Google Chrome ya hapo baadaye, utahitaji toleo la macOS 10.15 au toleo jipya zaidi. Kompyuta hii inatumia macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome itajifunga sasa.}=1{Chrome itajifunga ndani ya sekunde 1.}other{Chrome itajifunga ndani ya sekunde #.}}</translation>
+<translation id="6022659036123304283">Weka mapendeleo kwenye Chrome iwe unavyopenda</translation>
 <translation id="6040143037577758943">Funga</translation>
 <translation id="6070348360322141662">Kwa usalama wa ziada, Google Chrome itasimba data yako kwa njia fiche</translation>
 <translation id="608006075545470555">Ongeza Wasifu wa Kazini kwenye kivinjari hiki</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb
index b8740768..eed54c8 100644
--- a/chrome/app/resources/google_chrome_strings_ta.xtb
+++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">ChromeOS - ஓர் அறிமுகம்</translation>
 <translation id="1154147086299354128">&amp;Chrome இல் திற</translation>
 <translation id="1203500561924088507">நிறுவியதற்கு நன்றி. <ph name="BUNDLE_NAME" /> ஐப் பயன்படுத்துவதற்கு முன் உலாவியை மீண்டும் தொடங்க வேண்டும்.</translation>
-<translation id="1236866257838264361">Chromeமில் இருந்து அதிகப் பலன்களைப் பெறலாம்</translation>
 <translation id="1278833599417554002">&amp;Chromeமைப் புதுப்பிக்க மீண்டும் தொடங்கு</translation>
 <translation id="1302523850133262269">சமீபத்திய முறைமை புதுப்பிப்புகளை Chrome நிறுவும் வரை காத்திருக்கவும்.</translation>
 <translation id="1335640173511558774">இந்தச் சாதனத்தைப் பயன்படுத்துவதற்கு முன்பு பின்வரும் சேவை விதிமுறைகளைப் படித்து ஏற்குமாறு <ph name="MANAGER" /> கோருகிறது. இவை Google ChromeOS Flex விதிமுறைகளுடன் கூடுதலானவற்றைச் சேர்க்கவோ மாற்றவோ குறைக்கவோ செய்யாது.</translation>
@@ -247,12 +246,14 @@
 <translation id="5895138241574237353">மறுதொடக்கம்</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - நெட்வொர்க் உள்நுழைவு</translation>
 <translation id="5924017743176219022">இணையத்துடன் இணைக்கிறது...</translation>
+<translation id="5932997892801542621">முகவரிப் பட்டியிலோ தேடல் பெட்டியிலோ நீங்கள் டைப் செய்யும்போது, ஃபைல்களுக்கான பரிந்துரைகளைப் பெறுவதற்காக அவற்றை உங்கள் Google Driveவுக்கு Chrome அனுப்பும். இந்த அம்சம் மறைநிலைப் பயன்முறையில் முடக்கப்பட்டிருக்கும்.</translation>
 <translation id="5940385492829620908">உங்களின் இணையம், புக்மார்க்குகள் மற்றும் பிற Chrome உருப்படிகள் இங்கே உள்ளன.</translation>
 <translation id="5941711191222866238">சிறிதாக்கு</translation>
 <translation id="5941830788786076944">Google Chrome ஐ இயல்புநிலை உலாவியாக அமை</translation>
 <translation id="6003112304606738118">பதிவிறக்குகிறது... <ph name="HOURS" /> மணிநேரம் மீதமுள்ளது</translation>
 <translation id="6010556343189461180">இனிவரும் Google Chrome புதுப்பிப்புகளைப் பெற macOS 10.15 அல்லது அதற்குப் பிந்தைய பதிப்பு தேவை. இந்தக் கம்ப்யூட்டர் macOS 10.14 பதிப்பில் இயங்குகிறது.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome இப்போது மூடப்படும்.}=1{1 வினாடியில் Chrome மூடப்படும்.}other{# வினாடிகளில் Chrome மூடப்படும்.}}</translation>
+<translation id="6022659036123304283">Chromeமை உங்களுடையதாக்குங்கள்</translation>
 <translation id="6040143037577758943">மூடு</translation>
 <translation id="6070348360322141662">கூடுதல் பாதுகாப்பிற்கு, Google Chrome உங்கள் தரவை என்கிரிப்ட் செய்யும்</translation>
 <translation id="608006075545470555">இந்த உலாவியில் பணிக் கணக்கைச் சேர்த்தல்</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
index e6968fd..ee48661d 100644
--- a/chrome/app/resources/google_chrome_strings_te.xtb
+++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">ChromeOS గురించి</translation>
 <translation id="1154147086299354128">&amp;Chromeలో తెరువు</translation>
 <translation id="1203500561924088507">ఇన్‌స్టాల్ చేసినందుకు ధన్యవాదాలు. <ph name="BUNDLE_NAME" />‌ను ఉపయోగించడానికి ముందు మీరు బ్రౌజర్‌ను తప్పకుండా రీస్టార్ట్ చేయాలి.</translation>
-<translation id="1236866257838264361">Chrome అందించే ప్రయోజనాలన్నింటినీ మీరు ఆస్వాదించవచ్చు</translation>
 <translation id="1278833599417554002">&amp;Chromeను అప్‌డేట్ చేయడానికి రీ-లాంచ్ చేయండి</translation>
 <translation id="1302523850133262269">దయచేసి Chrome తాజా సిస్టమ్ అప్‌డేట్‌లను ఇన్‌స్టాల్ చేస్తున్నప్పుడు వేచి ఉండండి.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> కోసం ఈ పరికరాన్ని ఉపయోగించడానికి ముందు కింది సర్వీస్ నియమాలను మీరు చదివి, అంగీకరించాలి. ఈ నియమాలు Google ChromeOS Flex నియమాలను విస్తరింపజేయవు, సవరించవు లేదా పరిమితం చేయవు.</translation>
@@ -254,6 +253,7 @@
 <translation id="6003112304606738118">డౌన్‌లోడ్ అవుతోంది... <ph name="HOURS" /> గంట(లు) సమయం మిగిలి ఉంది</translation>
 <translation id="6010556343189461180">భవిష్యత్తులో Google Chrome అప్‌డేట్‌లను పొందడానికి, మీకు macOS 10.15 లేదా ఆ తర్వాతి వెర్షన్ అవసరం అవుతుంది. ఈ కంప్యూటర్ macOS 10.14 వెర్షన్‌ను ఉపయోగిస్తోంది.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome ఇప్పుడు మూసివేయబడుతుంది.}=1{Chrome 1 సెకనులో మూసివేయబడుతుంది.}other{Chrome # సెకన్లలో మూసివేయబడుతుంది.}}</translation>
+<translation id="6022659036123304283">Chromeని మీకు నచ్చినట్లు తయారు చేసుకోండి</translation>
 <translation id="6040143037577758943">మూసివేయి</translation>
 <translation id="6070348360322141662">అదనపు భద్రత దృష్ట్యా, Google Chrome మీ డేటాను ఎన్‌క్రిప్ట్ చేస్తుంది</translation>
 <translation id="608006075545470555">ఈ బ్రౌజర్‌కు వర్క్ ప్రొఫైల్‌ను జోడించండి</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index 608b9f2..b43fd21 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">เกี่ยวกับ Chrome OS</translation>
 <translation id="1154147086299354128">เ&amp;ปิดใน Chrome</translation>
 <translation id="1203500561924088507">ขอขอบคุณที่ติดตั้ง คุณต้องรีสตาร์ทเบราว์เซอร์ก่อนใช้ <ph name="BUNDLE_NAME" /></translation>
-<translation id="1236866257838264361">ใช้งาน Chrome อย่างเต็มประสิทธิภาพ</translation>
 <translation id="1278833599417554002">เปิดอีกครั้งเพื่ออัปเดต Chrome</translation>
 <translation id="1302523850133262269">โปรดรอขณะที่ Chrome ติดตั้งการอัปเดตระบบล่าสุด</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> กำหนดว่าคุณต้องอ่านและยอมรับข้อกำหนดในการให้บริการต่อไปนี้ก่อนใช้อุปกรณ์นี้ ข้อกำหนดเหล่านี้ไม่ขยาย แก้ไข หรือจำกัดข้อกำหนดของ Google Chrome OS Flex</translation>
@@ -253,6 +252,7 @@
 <translation id="6003112304606738118">กำลังดาวน์โหลด... เหลืออีก <ph name="HOURS" /> ชั่วโมง</translation>
 <translation id="6010556343189461180">คุณจะต้องใช้ macOS 10.15 ขึ้นไปเพื่อรับการอัปเดต Google Chrome ในอนาคต คอมพิวเตอร์เครื่องนี้ใช้ macOS 10.14</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome จะปิดลงในตอนนี้}=1{Chrome จะปิดลงใน 1 วินาที}other{Chrome จะปิดลงใน # วินาที}}</translation>
+<translation id="6022659036123304283">ปรับเปลี่ยน Chrome ในแบบของคุณ</translation>
 <translation id="6040143037577758943">ปิด</translation>
 <translation id="6070348360322141662">Google Chrome จะเข้ารหัสลับข้อมูลของคุณเพื่อเพิ่มความปลอดภัยให้มากยิ่งขึ้น</translation>
 <translation id="608006075545470555">เพิ่มโปรไฟล์งานลงในเบราว์เซอร์นี้</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb
index 8d0d6c60..3d3efb3 100644
--- a/chrome/app/resources/google_chrome_strings_tr.xtb
+++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">ChromeOS hakkında</translation>
 <translation id="1154147086299354128">&amp;Chrome'da aç</translation>
 <translation id="1203500561924088507">Yüklediğiniz için teşekkürler. <ph name="BUNDLE_NAME" /> uygulamasını kullanmadan önce tarayıcınızı yeniden başlatmanız gerekir.</translation>
-<translation id="1236866257838264361">Chrome'dan en iyi şekilde yararlanabilirsiniz</translation>
 <translation id="1278833599417554002">&amp;Chrome'u güncellemek için yeniden başlat</translation>
 <translation id="1302523850133262269">Chrome en son sistem güncellemelerini yüklerken lütfen bekleyin.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" />, bu cihazı kullanmadan önce aşağıdaki Hizmet Şartları'nı okuyup kabul etmenizi zorunlu tutmaktadır. Bu şartlar, Google ChromeOS Flex Şartları'nın kapsamını genişletmez, değiştirmez veya sınırlamaz.</translation>
@@ -255,6 +254,7 @@
 <translation id="6003112304606738118">İndiriliyor... <ph name="HOURS" /> saat kaldı</translation>
 <translation id="6010556343189461180">Gelecekteki Google Chrome güncellemelerini almak için macOS 10.15 veya sonraki bir sürümün yüklü olması gerekir. Bu bilgisayar macOS 10.14 kullanıyor.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome şimdi kapanacak.}=1{Chrome 1 saniye içinde kapanacak.}other{Chrome # saniye içinde kapanacak.}}</translation>
+<translation id="6022659036123304283">Chrome'u kendinize uyarlayın</translation>
 <translation id="6040143037577758943">Kapat</translation>
 <translation id="6070348360322141662">Google Chrome ek güvenlik sağlamak için verilerinizi şifreler</translation>
 <translation id="608006075545470555">Bu tarayıcıya İş Profili ekle</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb
index fe6901d75..74f9b08 100644
--- a/chrome/app/resources/google_chrome_strings_uk.xtb
+++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Про ОС Chrome</translation>
 <translation id="1154147086299354128">&amp;Відкрити в Chrome</translation>
 <translation id="1203500561924088507">Дякуємо за встановлення. Щоб почати використовувати пакет <ph name="BUNDLE_NAME" />, потрібно перезапустити веб-переглядач.</translation>
-<translation id="1236866257838264361">Користуйтеся всіма можливостями Chrome</translation>
 <translation id="1278833599417554002">Перезапустити, щоб оновити &amp;Chrome</translation>
 <translation id="1302523850133262269">Зачекайте, доки Chrome установить найновіші оновлення системи.</translation>
 <translation id="1335640173511558774">Перш ніж використовувати цей пристрій, потрібно прочитати й прийняти наведені нижче Умови використання домену <ph name="MANAGER" />. Вони не розширюють, не змінюють і не обмежують Умови використання ОС Google Chrome Flex.</translation>
@@ -247,12 +246,14 @@
 <translation id="5895138241574237353">Перезапустити</translation>
 <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – Вхід у мережу</translation>
 <translation id="5924017743176219022">Підключення до Інтернету…</translation>
+<translation id="5932997892801542621">Коли ви вводите текст в адресному рядку або вікні пошуку, Chrome надсилає його на Google Диск, щоб надати вам підказки щодо файлів. В анонімному режимі цю функцію вимкнено.</translation>
 <translation id="5940385492829620908">Тут містяться ваші веб-сторінки, закладки та інші дані Chrome.</translation>
 <translation id="5941711191222866238">Згорнути</translation>
 <translation id="5941830788786076944">Зробити Google Chrome переглядачем за промовчанням</translation>
 <translation id="6003112304606738118">Завантаження… Залишилося: <ph name="HOURS" /> год.</translation>
 <translation id="6010556343189461180">Щоб отримувати майбутні оновлення Google Chrome, потрібна операційна система macOS 10.15 або новішої версії. На цьому комп’ютері встановлено macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome зараз закриється.}=1{Chrome закриється через 1 секунду.}one{Chrome закриється через # секунду.}few{Chrome закриється через # секунди.}many{Chrome закриється через # секунд.}other{Chrome закриється через # секунди.}}</translation>
+<translation id="6022659036123304283">Ваш персональний Chrome</translation>
 <translation id="6040143037577758943">Закрити</translation>
 <translation id="6070348360322141662">Щоб підвищити безпеку, Google Chrome шифруватиме ваші дані</translation>
 <translation id="608006075545470555">Додати робочий профіль у цей веб-переглядач</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ur.xtb b/chrome/app/resources/google_chrome_strings_ur.xtb
index 8acb22f..569d228 100644
--- a/chrome/app/resources/google_chrome_strings_ur.xtb
+++ b/chrome/app/resources/google_chrome_strings_ur.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">‏ChromeOS کے بارے میں</translation>
 <translation id="1154147086299354128">‏Chrome میں &amp;کھولیں</translation>
 <translation id="1203500561924088507">انسٹال کرنے کا شکریہ۔ آپ کو <ph name="BUNDLE_NAME" /> استعمال کرنے سے پہلے اپنا براؤزر لازمی طور سے ری اسٹارٹ کرنا چاہیے۔</translation>
-<translation id="1236866257838264361">‏آپ Chrome سے زیادہ سے زیادہ لطف اٹھا سکتے ہیں</translation>
 <translation id="1278833599417554002">‏Chrome&amp; کو اپ ڈیٹ کرنے کیلئے بند کر کے دوبارہ چلائیں</translation>
 <translation id="1302523850133262269">‏Chrome کے ذریعے تازہ ترین سسٹم اپ ڈیٹس کو انسٹال کرتے ہوئے براہ کرم انتظار کریں۔</translation>
 <translation id="1335640173511558774">‏<ph name="MANAGER" /> تقاضہ کرتا ہے کہ آپ یہ آلہ استعمال کرنے سے پہلے مندرجہ ذیل سروس کی شرائط کو پڑھیں اور قبول کریں۔ یہ شرائط Google ChromeOS Flex کی شرائط کی توسیع، ان میں ترمیم یا انہیں محدود نہیں کرتی ہیں۔</translation>
@@ -261,6 +260,7 @@
 <translation id="6003112304606738118">ڈاؤن لوڈ ہو رہی ہے… <ph name="HOURS" /> گھنٹہ(گھنٹے) باقی ہے</translation>
 <translation id="6010556343189461180">‏مستقبل میں Google Chrome اپ ڈیٹس حاصل کرنے کے لیے آپ کو macOS 10.15 یا اس کے بعد کے ورژن کی ضرورت ہوگی۔ یہ کمپیوٹر macOS 10.14 کا استعمال کر رہا ہے۔</translation>
 <translation id="6022388122721048220">{0,plural, =0{‏Chrome اب بند ہو جائے گا۔}=1{‏Chrome ‏1 سیکنڈ میں بند ہو جائے گا۔}other{‏Chrome # سیکنڈ میں بند ہو جائے گا۔}}</translation>
+<translation id="6022659036123304283">‏Chrome کو اپنا ڈیفالٹ براؤزر بنائيں</translation>
 <translation id="6040143037577758943">بند کریں</translation>
 <translation id="6070348360322141662">‏اضافی سیکیورٹی کیلئے، Google Chrome آپ کا ڈیٹا مرموز کر دے گا</translation>
 <translation id="608006075545470555">اس براؤزر میں دفتری پروفائل شامل کریں</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uz.xtb b/chrome/app/resources/google_chrome_strings_uz.xtb
index 4b09da5..0d15c87 100644
--- a/chrome/app/resources/google_chrome_strings_uz.xtb
+++ b/chrome/app/resources/google_chrome_strings_uz.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">ChromeOS haqida</translation>
 <translation id="1154147086299354128">Chrome brauzerida &amp;ochish</translation>
 <translation id="1203500561924088507">Oʻrnatganingiz uchun tashakkur! <ph name="BUNDLE_NAME" />ni ishlatishdan oldin brauzerni qayta ishga tushirishingiz lozim.</translation>
-<translation id="1236866257838264361">Chrome barcha imkoniyatlaridan foydalanishingiz mumkin</translation>
 <translation id="1278833599417554002">&amp;Chrome brauzerini yangilash uchun qayta ishga tushiring</translation>
 <translation id="1302523850133262269">Chrome so‘nggi tizim yangilanishlarini o‘rnatguncha kutib turing.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> bu qurilmadan foydalanishdan oldin quyidagi Xizmat shartlarini oʻqib, qabul qilishingizni talab qiladi. Bu shartlar Google ChromeOS Flex shartlarini kengaytirmaydi, oʻzgartirmaydi yoki cheklamaydi.</translation>
@@ -259,6 +258,7 @@
 <translation id="6003112304606738118">Yuklab olinmoqda... <ph name="HOURS" /> soat qoldi</translation>
 <translation id="6010556343189461180">Google Chrome yangilanishlari macOS 10.15 yoki undan yuqori versiyalarda ishlaydi. Bu kompyuterdagi versiya: macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome hozir yopiladi.}=1{Chrome 1 soniyadan keyin yopiladi.}other{Chrome # soniyadan keyin yopiladi.}}</translation>
+<translation id="6022659036123304283">Shaxsiy Chrome brauzeringiz</translation>
 <translation id="6040143037577758943">Yopish</translation>
 <translation id="6070348360322141662">Xavfsizlik himoyasini oshirish maqsadida Google Chrome ma’lumotlaringizni shifrlaydi</translation>
 <translation id="608006075545470555">Bu brauzerga ish profilini kiritish</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
index 128f451..6c34776 100644
--- a/chrome/app/resources/google_chrome_strings_vi.xtb
+++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">Giới thiệu về ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Mở trong Chrome</translation>
 <translation id="1203500561924088507">Cảm ơn bạn đã cài đặt. Bạn phải khởi động lại trình duyệt trước khi sử dụng <ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Bạn có thể khai thác tối đa Chrome</translation>
 <translation id="1278833599417554002">Chạy lại để cập nhật &amp;Chrome</translation>
 <translation id="1302523850133262269">Vui lòng đợi khi Chrome cài đặt các bản cập nhật hệ thống mới nhất.</translation>
 <translation id="1335640173511558774"><ph name="MANAGER" /> yêu cầu bạn phải đọc và chấp nhận Điều khoản dịch vụ sau đây trước khi dùng thiết bị này. Những điều khoản này không mở rộng, sửa đổi hay giới hạn Điều khoản của Google ChromeOS Flex.</translation>
@@ -258,6 +257,7 @@
 <translation id="6003112304606738118">Đang tải xuống... Còn <ph name="HOURS" /> giờ.</translation>
 <translation id="6010556343189461180">Để nhận các bản cập nhật Google Chrome sau này, bạn cần có macOS 10.15 trở lên. Máy tính này đang sử dụng macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome sẽ đóng ngay bây giờ.}=1{Chrome sẽ đóng sau 1 giây.}other{Chrome sẽ đóng sau # giây.}}</translation>
+<translation id="6022659036123304283">Tùy chỉnh Chrome theo cách của bạn</translation>
 <translation id="6040143037577758943">Đóng</translation>
 <translation id="6070348360322141662">Để bảo mật hơn, Google Chrome sẽ mã hóa dữ liệu của bạn</translation>
 <translation id="608006075545470555">Thêm Hồ sơ công việc vào trình duyệt này</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
index fce4ec9..4221b20 100644
--- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">关于 ChromeOS</translation>
 <translation id="1154147086299354128">在 Chrome 中打开(&amp;O)</translation>
 <translation id="1203500561924088507">感谢您完成安装。您必须重启浏览器才能使用 <ph name="BUNDLE_NAME" />。</translation>
-<translation id="1236866257838264361">您可以充分利用 Chrome</translation>
 <translation id="1278833599417554002">重新启动以更新 Chrome(&amp;C)</translation>
 <translation id="1302523850133262269">Chrome正在安装最新的系统更新,请稍候。</translation>
 <translation id="1335640173511558774">根据 <ph name="MANAGER" /> 的要求,您必须先阅读并接受以下《服务条款》才能使用此设备。这些条款不会扩展、修改或限制 Google ChromeOS Flex 条款。</translation>
@@ -253,6 +252,7 @@
 <translation id="6003112304606738118">正在下载…还需 <ph name="HOURS" /> 小时</translation>
 <translation id="6010556343189461180">若要接收后续 Google Chrome 更新,您需使用 macOS 10.15 或更高版本。该计算机目前使用的是 macOS 10.14。</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome 将立即关闭。}=1{Chrome 将在 1 秒后关闭。}other{Chrome 将在 # 秒后关闭。}}</translation>
+<translation id="6022659036123304283">定制您的专属 Chrome</translation>
 <translation id="6040143037577758943">关闭</translation>
 <translation id="6070348360322141662">为了提高安全性,Google Chrome 将对您的数据进行加密</translation>
 <translation id="608006075545470555">向此浏览器添加工作资料</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-HK.xtb b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
index 4e3b5f2c..2218d7d 100644
--- a/chrome/app/resources/google_chrome_strings_zh-HK.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">關於 Chrome OS</translation>
 <translation id="1154147086299354128">在 Chrome 中開啟(&amp;O)</translation>
 <translation id="1203500561924088507">多謝安裝。您必須先重新啟動瀏覽器,才能使用 <ph name="BUNDLE_NAME" />。</translation>
-<translation id="1236866257838264361">您可充分運用 Chrome 的所有功能</translation>
 <translation id="1278833599417554002">重新啟動以更新 &amp;Chrome</translation>
 <translation id="1302523850133262269">請稍候,Chrome 正在安裝最新的系統更新。</translation>
 <translation id="1335640173511558774">在使用這部裝置前,<ph name="MANAGER" /> 要求您仔細閱讀並接受下列《服務條款》。這些條款不會擴展、修改或限制《Google ChromeOS Flex 條款》。</translation>
@@ -261,6 +260,7 @@
 <translation id="6003112304606738118">正在下載… 剩餘 <ph name="HOURS" /> 小時</translation>
 <translation id="6010556343189461180">如要取得日後的 Google Chrome 更新,您將需要 macOS 10.15 或以上版本。此電腦正在使用 macOS 10.14。</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome 現在關閉。}=1{Chrome 將於 1 秒後關閉。}other{Chrome 將於 # 秒後關閉。}}</translation>
+<translation id="6022659036123304283">自訂屬於您的 Chrome</translation>
 <translation id="6040143037577758943">關閉</translation>
 <translation id="6070348360322141662">為提高安全性,Google Chrome 會將您的資料加密</translation>
 <translation id="608006075545470555">將工作設定檔新增至此瀏覽器</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-TW.xtb b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
index 0f41bc39..ff200e0 100644
--- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -13,7 +13,6 @@
 <translation id="1152920704813762236">關於 Chrome OS</translation>
 <translation id="1154147086299354128">在 Chrome 中開啟(&amp;O)</translation>
 <translation id="1203500561924088507">感謝你安裝本服務。你必須重新啟動瀏覽器,才能使用 <ph name="BUNDLE_NAME" />。</translation>
-<translation id="1236866257838264361">你可以充分運用 Chrome 的所有功能</translation>
 <translation id="1278833599417554002">重新啟動以更新 &amp;Chrome</translation>
 <translation id="1302523850133262269">請稍候,Chrome 正在安裝最新的系統更新。</translation>
 <translation id="1335640173511558774">根據 <ph name="MANAGER" /> 的規定,您必須先詳閱並接受下列《服務條款》,才能使用這部裝置。這些條款不會擴充、修改或限制《Google ChromeOS Flex 條款》。</translation>
@@ -256,6 +255,7 @@
 <translation id="6003112304606738118">下載中… 還剩 <ph name="HOURS" /> 小時</translation>
 <translation id="6010556343189461180">如果之後要更新 Google Chrome,必須使用 macOS 10.15 以上版本。這部電腦目前的版本為 macOS 10.14。</translation>
 <translation id="6022388122721048220">{0,plural, =0{Chrome 即將關閉。}=1{Chrome 將於 1 秒後關閉。}other{Chrome 將於 # 秒後關閉。}}</translation>
+<translation id="6022659036123304283">打造專屬的 Chrome</translation>
 <translation id="6040143037577758943">關閉</translation>
 <translation id="6070348360322141662">為了提升安全性,Google Chrome 會將你的資料加密保護</translation>
 <translation id="608006075545470555">在這個瀏覽器中新增工作資料夾</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zu.xtb b/chrome/app/resources/google_chrome_strings_zu.xtb
index f3b3992..fe94a53 100644
--- a/chrome/app/resources/google_chrome_strings_zu.xtb
+++ b/chrome/app/resources/google_chrome_strings_zu.xtb
@@ -15,7 +15,6 @@
 <translation id="1152920704813762236">Mayelana ne-ChromeOS</translation>
 <translation id="1154147086299354128">&amp;Vula ku-Chrome</translation>
 <translation id="1203500561924088507">Siyabonga ngokufaka. Kufanele uqale kabusha ibhrawuza yakho ngaphambi kokusebenzisa i-<ph name="BUNDLE_NAME" />.</translation>
-<translation id="1236866257838264361">Ungajabulela okuningi ku-Chrome</translation>
 <translation id="1278833599417554002">Qalisa kabusha ukuze ubuyekeze i-&amp;Chrome</translation>
 <translation id="1302523850133262269">Sicela ulinde ngenkathi i-Chrome ifaka izibuyekezo zesistimu zakamuva.</translation>
 <translation id="1335640173511558774">I-<ph name="MANAGER" /> idinga ukuthi ufunde uphinde wamukele Imigomo Yesevisi elandelayo ngaphambi kokusebenzisa le divayisi. Le migomo ayinwebeki, ayiguquki, noma ayikhawuleli Imigomo ye-Google ChromeOS Flex.</translation>
@@ -262,6 +261,7 @@
 <translation id="6003112304606738118">Iyadawuniloda... Kusele amahora angu-<ph name="HOURS" /></translation>
 <translation id="6010556343189461180">Ukuze uthole izibuyekezo zesikhathi esizayo ze-Google Chrome, uzodinga i-macOS 10.15 noma eyakamuva. Le khompyutha isebenzisa i-macOS 10.14.</translation>
 <translation id="6022388122721048220">{0,plural, =0{I-Chrome izovaleka manje.}=1{I-Chrome izovaleka kumzuzu ongu-1.}one{I-Chrome izovaleka emzuzwaneni engu-#.}other{I-Chrome izovaleka emzuzwaneni engu-#.}}</translation>
+<translation id="6022659036123304283">Yenza i-Chrome kube eyakho</translation>
 <translation id="6040143037577758943">Vala</translation>
 <translation id="6070348360322141662">Ngokuvikela okungeziwe, i-Google Chromium izobethela idatha yakho</translation>
 <translation id="608006075545470555">Engeza Iphrofayela Yomsebenzi kulesi siphequluli</translation>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index e8bcf4a..f8230143 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -1713,6 +1713,32 @@
     </if>
   </if>
 
+  <!-- Anti-abuse Page -->
+  <message name="IDS_SETTINGS_ANTI_ABUSE_ENABLED_SUB_LABEL" desc="The label used for the anti-abuse site settings sub-label when the anti-abuse setting is turned on.">
+    Spam and fraud reduction is on
+  </message>
+  <message name="IDS_SETTINGS_ANTI_ABUSE_DISABLED_SUB_LABEL" desc="The label used for the anti-abuse site settings sub-label when the anti-abuse setting is turned off.">
+    Spam and fraud reduction is off
+  </message>
+  <message name="IDS_SETTINGS_ANTI_ABUSE_DESCRIPTION" desc="The label used for the anti-abuse site settings description.">
+    Sites you visit can validate that you're a real user and not a bot.
+  </message>
+  <message name="IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_HEADER" desc="The header used for the section that informs users of the anti-abuse features.">
+    When on
+  </message>
+  <message name="IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_ONE" desc="A description that informs users how their browsing could be helped by the anti-abuse features.">
+    Browsing is smoother, as you're more likely trusted from one site to the next.
+  </message>
+  <message name="IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_TWO" desc="A description that informs users that the anti-abuse features do not reveal their browsing history.">
+    This setting works without identifying you or allowing sites to see your browsing history.
+  </message>
+  <message name="IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER" desc="The header used for the section that informs users of additional things to consider when the anti-abuse features are enabled.">
+    Things to consider
+  </message>
+  <message name="IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE" desc="A description that informs users that site can save info with Chrome when the anti-abuse features are enabled.">
+    A site you visit can save info with Chrome that validates that you're a real user. As you keep browsing, sites can check with Chrome and verify from the first site that you're likely a trusted user.
+  </message>
+
   <!-- Privacy Sandbox -->
   <message name="IDS_SETTINGS_PRIVACY_SANDBOX_TITLE" desc="The title of the Privacy Sandbox page. 'Privacy Sandbox' is a noun phrase (title case).">
     Privacy Sandbox
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_DESCRIPTION.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..417b190
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+18fec35f7db7382c465be46fa7a6ec53cde848e4
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_DISABLED_SUB_LABEL.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_DISABLED_SUB_LABEL.png.sha1
new file mode 100644
index 0000000..77beef4
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_DISABLED_SUB_LABEL.png.sha1
@@ -0,0 +1 @@
+29e7cbdbf1f0b4e72ff9d9e70552c77695fc1f8a
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_ENABLED_SUB_LABEL.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_ENABLED_SUB_LABEL.png.sha1
new file mode 100644
index 0000000..71271ecd
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_ENABLED_SUB_LABEL.png.sha1
@@ -0,0 +1 @@
+deadecc98d9b25be18cf53516610c498b54ce05e
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER.png.sha1
new file mode 100644
index 0000000..417b190
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER.png.sha1
@@ -0,0 +1 @@
+18fec35f7db7382c465be46fa7a6ec53cde848e4
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE.png.sha1
new file mode 100644
index 0000000..417b190
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE.png.sha1
@@ -0,0 +1 @@
+18fec35f7db7382c465be46fa7a6ec53cde848e4
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_HEADER.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_HEADER.png.sha1
new file mode 100644
index 0000000..417b190
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_HEADER.png.sha1
@@ -0,0 +1 @@
+18fec35f7db7382c465be46fa7a6ec53cde848e4
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_ONE.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_ONE.png.sha1
new file mode 100644
index 0000000..417b190
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_ONE.png.sha1
@@ -0,0 +1 @@
+18fec35f7db7382c465be46fa7a6ec53cde848e4
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_TWO.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_TWO.png.sha1
new file mode 100644
index 0000000..417b190
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_TWO.png.sha1
@@ -0,0 +1 @@
+18fec35f7db7382c465be46fa7a6ec53cde848e4
\ No newline at end of file
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 5b9130cb..d190573 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -5781,8 +5781,6 @@
       "//chrome/installer/util:with_no_strings",
       "//chrome/notification_helper:constants",
       "//chrome/services/util_win/public/mojom",
-      "//components/browser_watcher:browser_watcher_client",
-      "//components/browser_watcher:stability_client",
       "//components/chrome_cleaner/public/constants",
       "//components/crash/core/app",
       "//components/crash/core/app:crash_export_thunk_include",
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
index 87bf4c62..687de6953 100644
--- a/chrome/browser/DEPS
+++ b/chrome/browser/DEPS
@@ -73,7 +73,6 @@
   "+components/browser_ui/site_settings",
   "+components/browser_ui/strings",
   "+components/browser_ui/styles",
-  "+components/browser_watcher",
   "+components/browsing_data/content",
   "+components/browsing_data/core",
   "+components/browsing_topics",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 2e07c1a..842dc9d 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3367,7 +3367,8 @@
     {"show-autofill-type-predictions",
      flag_descriptions::kShowAutofillTypePredictionsName,
      flag_descriptions::kShowAutofillTypePredictionsDescription, kOsAll,
-     FEATURE_VALUE_TYPE(autofill::features::kAutofillShowTypePredictions)},
+     FEATURE_VALUE_TYPE(
+         autofill::features::test::kAutofillShowTypePredictions)},
     {"autofill-more-prominent-popup",
      flag_descriptions::kAutofillMoreProminentPopupName,
      flag_descriptions::kAutofillMoreProminentPopupDescription, kOsDesktop,
diff --git a/chrome/browser/ash/crosapi/browser_data_back_migrator.cc b/chrome/browser/ash/crosapi/browser_data_back_migrator.cc
index 0cde90fb..93f8727b 100644
--- a/chrome/browser/ash/crosapi/browser_data_back_migrator.cc
+++ b/chrome/browser/ash/crosapi/browser_data_back_migrator.cc
@@ -1090,6 +1090,7 @@
 bool BrowserDataBackMigrator::IsBackMigrationEnabled(
     crosapi::browser_util::PolicyInitState policy_init_state) {
   if (IsBackMigrationForceEnabled()) {
+    VLOG(1) << "Lacros backward migration is force enabled";
     return true;
   }
 
@@ -1099,6 +1100,7 @@
           switches::kForceBrowserDataBackwardMigration);
 
   if (force_migration_switch == kBrowserDataBackwardMigrationForceSkip) {
+    VLOG(1) << "Lacros backward migration is force skipped";
     return false;
   }
 
@@ -1132,17 +1134,23 @@
   // Backward migration can be explicitly enabled by using the
   // LacrosDataBackwardMigrationMode policy.
   if (migration_mode ==
-      crosapi::browser_util::LacrosDataBackwardMigrationMode::kKeepAll)
+      crosapi::browser_util::LacrosDataBackwardMigrationMode::kKeepAll) {
+    VLOG(1) << "Lacros backward migration mode is keep_all";
     return true;
+  }
 
   // Modes beside none do not go through backward migration.
   // None is the default, fall back to the feature instead.
   if (migration_mode !=
-      crosapi::browser_util::LacrosDataBackwardMigrationMode::kNone)
+      crosapi::browser_util::LacrosDataBackwardMigrationMode::kNone) {
+    VLOG(1) << "Lacros backward migration mode is not none";
     return false;
+  }
 
-  return base::FeatureList::IsEnabled(
+  bool isFeatureEnabled = base::FeatureList::IsEnabled(
       ash::features::kLacrosProfileBackwardMigration);
+  VLOG(1) << "Lacros backward migration feature flag is " << isFeatureEnabled;
+  return isFeatureEnabled;
 }
 
 // static
diff --git a/chrome/browser/ash/login/password_change_browsertest.cc b/chrome/browser/ash/login/password_change_browsertest.cc
index 25f006fb..b1fe0703 100644
--- a/chrome/browser/ash/login/password_change_browsertest.cc
+++ b/chrome/browser/ash/login/password_change_browsertest.cc
@@ -32,6 +32,7 @@
 #include "chrome/browser/ash/login/test/oobe_window_visibility_waiter.h"
 #include "chrome/browser/ash/login/test/session_manager_state_waiter.h"
 #include "chrome/browser/ash/login/ui/login_display_host.h"
+#include "chrome/browser/ash/login/wizard_context.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/chrome_notification_types.h"
 #include "chrome/browser/lifetime/termination_notification.h"
@@ -79,6 +80,7 @@
 const test::UIPath kForgotPasswordButton = {"gaia-password-changed",
                                             "forgotPasswordButton"};
 const test::UIPath kTryAgain = {"gaia-password-changed", "tryAgain"};
+const test::UIPath kTryAgainRecovery = {"gaia-password-changed", "backButton"};
 const test::UIPath kProceedAnyway = {"gaia-password-changed", "proceedAnyway"};
 const test::UIPath kCancel = {"gaia-password-changed", "cancel"};
 const test::UIPath kForgotCancel = {"gaia-password-changed", "cancelForgot"};
@@ -160,6 +162,7 @@
                                  {test_user_info_},
                                  &fake_gaia_,
                                  &cryptohome_};
+  base::AutoReset<bool> branded_build{&WizardContext::g_is_branded_build, true};
 
  private:
   base::FilePath GetTestingFilePath() const {
@@ -270,7 +273,11 @@
 
   test::OobeJS().CreateDisplayedWaiter(false, kPasswordStep)->Wait();
 
-  test::OobeJS().ExpectVisiblePath(kTryAgain);
+  if (features::IsCryptohomeRecoveryEnabled()) {
+    test::OobeJS().ExpectVisiblePath(kTryAgainRecovery);
+  } else {
+    test::OobeJS().ExpectVisiblePath(kTryAgain);
+  }
   test::OobeJS().ExpectVisiblePath(kProceedAnyway);
 
   // Click "Proceed anyway".
@@ -302,12 +309,22 @@
   test::OobeJS().ClickOnPath(kForgotPassword);
 
   test::OobeJS().CreateDisplayedWaiter(false, kPasswordStep)->Wait();
+  test::UIPath featureTryAgainPath;
+  test::UIPath nonFeatureTryAgainPath;
+  if (features::IsCryptohomeRecoveryEnabled()) {
+    featureTryAgainPath = kTryAgainRecovery;
+    nonFeatureTryAgainPath = kTryAgain;
+  } else {
+    featureTryAgainPath = kTryAgain;
+    nonFeatureTryAgainPath = kTryAgainRecovery;
+  }
 
-  test::OobeJS().ExpectVisiblePath(kTryAgain);
+  test::OobeJS().ExpectVisiblePath(featureTryAgainPath);
+  test::OobeJS().ExpectHiddenPath(nonFeatureTryAgainPath);
   test::OobeJS().ExpectVisiblePath(kProceedAnyway);
 
   // Go back to old password input by clicking Try Again.
-  test::OobeJS().ClickOnPath(kTryAgain);
+  test::OobeJS().ClickOnPath(featureTryAgainPath);
 
   test::OobeJS().CreateDisplayedWaiter(true, kPasswordStep)->Wait();
 
diff --git a/chrome/browser/ash/policy/login/device_login_screen_policy_browsertest.cc b/chrome/browser/ash/policy/login/device_login_screen_policy_browsertest.cc
index c8d0f3e..a54f52e 100644
--- a/chrome/browser/ash/policy/login/device_login_screen_policy_browsertest.cc
+++ b/chrome/browser/ash/policy/login/device_login_screen_policy_browsertest.cc
@@ -120,36 +120,39 @@
   // the future to verify that the pref was not modified.
   static base::test::RepeatingTestFuture<const char*> pref_changed_future;
   registrar.Init(prefs);
-  registrar.Add(prefs::kPrimaryMouseButtonRight,
+  registrar.Add(ash::prefs::kPrimaryMouseButtonRight,
                 base::BindRepeating(pref_changed_future.GetCallback(),
-                                    prefs::kPrimaryMouseButtonRight));
+                                    ash::prefs::kPrimaryMouseButtonRight));
 
   // Manually switch the primary mouse button to right button.
-  prefs->SetBoolean(prefs::kPrimaryMouseButtonRight, true);
-  EXPECT_EQ(base::Value(true), GetPrefValue(prefs::kPrimaryMouseButtonRight));
-  EXPECT_EQ(prefs::kPrimaryMouseButtonRight, pref_changed_future.Take());
+  prefs->SetBoolean(ash::prefs::kPrimaryMouseButtonRight, true);
+  EXPECT_EQ(base::Value(true),
+            GetPrefValue(ash::prefs::kPrimaryMouseButtonRight));
+  EXPECT_EQ(ash::prefs::kPrimaryMouseButtonRight, pref_changed_future.Take());
 
   // Switch the primary mouse button to left button through device policy,
   // and wait for the change to take effect.
   em::ChromeDeviceSettingsProto& proto(device_policy()->payload());
   proto.mutable_login_screen_primary_mouse_button_switch()->set_value(false);
   RefreshDevicePolicy();
-  EXPECT_EQ(prefs::kPrimaryMouseButtonRight, pref_changed_future.Take());
+  EXPECT_EQ(ash::prefs::kPrimaryMouseButtonRight, pref_changed_future.Take());
 
   // Verify that the pref which controls the primary mouse button state in the
   // login profile is managed by the policy.
-  EXPECT_TRUE(IsPrefManaged(prefs::kPrimaryMouseButtonRight));
-  EXPECT_EQ(base::Value(false), GetPrefValue(prefs::kPrimaryMouseButtonRight));
+  EXPECT_TRUE(IsPrefManaged(ash::prefs::kPrimaryMouseButtonRight));
+  EXPECT_EQ(base::Value(false),
+            GetPrefValue(ash::prefs::kPrimaryMouseButtonRight));
 
   // Verify that the state of primary mouse button cannot be changed manually
   // anymore.
-  prefs->SetBoolean(prefs::kPrimaryMouseButtonRight, true);
+  prefs->SetBoolean(ash::prefs::kPrimaryMouseButtonRight, true);
   // Browser tests use a `ScopedRunLoopTimeout` to automatically fail a test
   // when a timeout happens, so we use EXPECT_FATAL_FAILURE to handle it.
   static bool success = false;
   EXPECT_FATAL_FAILURE({ success = pref_changed_future.Wait(); }, "timed out");
   EXPECT_FALSE(success);
-  EXPECT_EQ(base::Value(false), GetPrefValue(prefs::kPrimaryMouseButtonRight));
+  EXPECT_EQ(base::Value(false),
+            GetPrefValue(ash::prefs::kPrimaryMouseButtonRight));
 
   // Switch the primary mouse button to right button through device policy
   // as a recommended value, and wait for the change to take effect.
@@ -158,17 +161,19 @@
       ->mutable_policy_options()
       ->set_mode(em::PolicyOptions::RECOMMENDED);
   RefreshDevicePolicy();
-  EXPECT_EQ(prefs::kPrimaryMouseButtonRight, pref_changed_future.Take());
+  EXPECT_EQ(ash::prefs::kPrimaryMouseButtonRight, pref_changed_future.Take());
 
   // Verify that the pref which controls the primary mouse button state in the
   // login profile is being applied as recommended by the policy.
-  EXPECT_FALSE(IsPrefManaged(prefs::kPrimaryMouseButtonRight));
-  EXPECT_EQ(base::Value(true), GetPrefValue(prefs::kPrimaryMouseButtonRight));
+  EXPECT_FALSE(IsPrefManaged(ash::prefs::kPrimaryMouseButtonRight));
+  EXPECT_EQ(base::Value(true),
+            GetPrefValue(ash::prefs::kPrimaryMouseButtonRight));
 
   // Verify that the state of primary mouse button can be enabled manually
   // again.
-  prefs->SetBoolean(prefs::kPrimaryMouseButtonRight, false);
-  EXPECT_EQ(base::Value(false), GetPrefValue(prefs::kPrimaryMouseButtonRight));
+  prefs->SetBoolean(ash::prefs::kPrimaryMouseButtonRight, false);
+  EXPECT_EQ(base::Value(false),
+            GetPrefValue(ash::prefs::kPrimaryMouseButtonRight));
 }
 
 // Tests that enabling/disabling public accounts correctly reflects in the login
diff --git a/chrome/browser/ash/preferences.cc b/chrome/browser/ash/preferences.cc
index 4479d84..06eb2ac0 100644
--- a/chrome/browser/ash/preferences.cc
+++ b/chrome/browser/ash/preferences.cc
@@ -210,16 +210,16 @@
       user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PRIORITY_PREF);
 
   registry->RegisterBooleanPref(
-      ::prefs::kPrimaryMouseButtonRight, false,
+      prefs::kPrimaryMouseButtonRight, false,
       user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PRIORITY_PREF);
   registry->RegisterBooleanPref(
       ::prefs::kPrimaryPointingStickButtonRight, false,
       user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PRIORITY_PREF);
   registry->RegisterBooleanPref(
-      ::prefs::kMouseAcceleration, true,
+      prefs::kMouseAcceleration, true,
       user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PRIORITY_PREF);
   registry->RegisterBooleanPref(
-      ::prefs::kMouseScrollAcceleration, true,
+      prefs::kMouseScrollAcceleration, true,
       user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PRIORITY_PREF);
   registry->RegisterBooleanPref(
       ::prefs::kPointingStickAcceleration, true,
@@ -239,10 +239,10 @@
                                 false);
 
   registry->RegisterIntegerPref(
-      ::prefs::kMouseSensitivity, 3,
+      prefs::kMouseSensitivity, 3,
       user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PRIORITY_PREF);
   registry->RegisterIntegerPref(
-      ::prefs::kMouseScrollSensitivity, 3,
+      prefs::kMouseScrollSensitivity, 3,
       user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PRIORITY_PREF);
   registry->RegisterIntegerPref(
       ::prefs::kPointingStickSensitivity, 3,
@@ -587,20 +587,20 @@
   natural_scroll_.Init(prefs::kNaturalScroll, prefs, callback);
   mouse_reverse_scroll_.Init(prefs::kMouseReverseScroll, prefs, callback);
 
-  mouse_sensitivity_.Init(::prefs::kMouseSensitivity, prefs, callback);
-  mouse_scroll_sensitivity_.Init(::prefs::kMouseScrollSensitivity, prefs,
+  mouse_sensitivity_.Init(prefs::kMouseSensitivity, prefs, callback);
+  mouse_scroll_sensitivity_.Init(prefs::kMouseScrollSensitivity, prefs,
                                  callback);
   touchpad_sensitivity_.Init(::prefs::kTouchpadSensitivity, prefs, callback);
   touchpad_scroll_sensitivity_.Init(::prefs::kTouchpadScrollSensitivity, prefs,
                                     callback);
   pointing_stick_sensitivity_.Init(::prefs::kPointingStickSensitivity, prefs,
                                    callback);
-  primary_mouse_button_right_.Init(::prefs::kPrimaryMouseButtonRight, prefs,
+  primary_mouse_button_right_.Init(prefs::kPrimaryMouseButtonRight, prefs,
                                    callback);
   primary_pointing_stick_button_right_.Init(
       ::prefs::kPrimaryPointingStickButtonRight, prefs, callback);
-  mouse_acceleration_.Init(::prefs::kMouseAcceleration, prefs, callback);
-  mouse_scroll_acceleration_.Init(::prefs::kMouseScrollAcceleration, prefs,
+  mouse_acceleration_.Init(prefs::kMouseAcceleration, prefs, callback);
+  mouse_scroll_acceleration_.Init(prefs::kMouseScrollAcceleration, prefs,
                                   callback);
   pointing_stick_acceleration_.Init(::prefs::kPointingStickAcceleration, prefs,
                                     callback);
@@ -851,8 +851,7 @@
       mouse_settings.SetReverseScroll(enabled);
   }
 
-  if (reason != REASON_PREF_CHANGED ||
-      pref_name == ::prefs::kMouseSensitivity) {
+  if (reason != REASON_PREF_CHANGED || pref_name == prefs::kMouseSensitivity) {
     const int sensitivity_int = mouse_sensitivity_.GetValue();
     if (user_is_active) {
       mouse_settings.SetSensitivity(sensitivity_int);
@@ -867,7 +866,7 @@
                                      sensitivity_int);
   }
   if (reason != REASON_PREF_CHANGED ||
-      pref_name == ::prefs::kMouseScrollSensitivity) {
+      pref_name == prefs::kMouseScrollSensitivity) {
     // With the flag off, use to normal sensitivity (legacy fallback).
     // TODO(https://crbug.com/836258): Remove check when flag is removed.
     const int sensitivity_int = AreScrollSettingsAllowed()
@@ -915,7 +914,7 @@
         "Touchpad.ScrollSensitivity.Started", sensitivity_int);
   }
   if (reason != REASON_PREF_CHANGED ||
-      pref_name == ::prefs::kPrimaryMouseButtonRight) {
+      pref_name == prefs::kPrimaryMouseButtonRight) {
     const bool right = primary_mouse_button_right_.GetValue();
     if (user_is_active)
       mouse_settings.SetPrimaryButtonRight(right);
@@ -943,14 +942,13 @@
       }
     }
   }
-  if (reason != REASON_PREF_CHANGED ||
-      pref_name == ::prefs::kMouseAcceleration) {
+  if (reason != REASON_PREF_CHANGED || pref_name == prefs::kMouseAcceleration) {
     const bool enabled = mouse_acceleration_.GetValue();
     if (user_is_active)
       mouse_settings.SetAcceleration(enabled);
   }
   if (reason != REASON_PREF_CHANGED ||
-      pref_name == ::prefs::kMouseScrollAcceleration) {
+      pref_name == prefs::kMouseScrollAcceleration) {
     const bool enabled = mouse_scroll_acceleration_.GetValue();
     if (user_is_active)
       mouse_settings.SetScrollAcceleration(enabled);
diff --git a/chrome/browser/ash/preferences_browsertest.cc b/chrome/browser/ash/preferences_browsertest.cc
index 149d97f..56ab647e 100644
--- a/chrome/browser/ash/preferences_browsertest.cc
+++ b/chrome/browser/ash/preferences_browsertest.cc
@@ -62,17 +62,17 @@
     prefs->SetBoolean(prefs::kMouseReverseScroll, variant);
     prefs->SetBoolean(prefs::kNaturalScroll, variant);
     prefs->SetBoolean(::prefs::kTapToClickEnabled, variant);
-    prefs->SetBoolean(::prefs::kPrimaryMouseButtonRight, !variant);
+    prefs->SetBoolean(prefs::kPrimaryMouseButtonRight, !variant);
     prefs->SetBoolean(::prefs::kPrimaryPointingStickButtonRight, !variant);
-    prefs->SetBoolean(::prefs::kMouseAcceleration, variant);
-    prefs->SetBoolean(::prefs::kMouseScrollAcceleration, variant);
+    prefs->SetBoolean(prefs::kMouseAcceleration, variant);
+    prefs->SetBoolean(prefs::kMouseScrollAcceleration, variant);
     prefs->SetBoolean(::prefs::kPointingStickAcceleration, variant);
     prefs->SetBoolean(::prefs::kTouchpadAcceleration, variant);
     prefs->SetBoolean(::prefs::kTouchpadScrollAcceleration, variant);
     prefs->SetBoolean(::prefs::kTouchpadHapticFeedback, variant);
     prefs->SetBoolean(::prefs::kEnableTouchpadThreeFingerClick, !variant);
-    prefs->SetInteger(::prefs::kMouseSensitivity, !variant);
-    prefs->SetInteger(::prefs::kMouseScrollSensitivity, variant ? 1 : 4);
+    prefs->SetInteger(prefs::kMouseSensitivity, !variant);
+    prefs->SetInteger(prefs::kMouseScrollSensitivity, variant ? 1 : 4);
     prefs->SetInteger(::prefs::kPointingStickSensitivity, !variant);
     prefs->SetInteger(::prefs::kTouchpadSensitivity, variant);
     prefs->SetInteger(::prefs::kTouchpadHapticClickSensitivity,
@@ -90,17 +90,17 @@
     EXPECT_EQ(prefs->GetBoolean(::prefs::kTapToClickEnabled),
               input_settings_->current_touchpad_settings().GetTapToClick());
     EXPECT_EQ(
-        prefs->GetBoolean(::prefs::kPrimaryMouseButtonRight),
+        prefs->GetBoolean(prefs::kPrimaryMouseButtonRight),
         input_settings_->current_mouse_settings().GetPrimaryButtonRight());
     EXPECT_EQ(prefs->GetBoolean(::prefs::kPrimaryPointingStickButtonRight),
               input_settings_->current_pointing_stick_settings()
                   .GetPrimaryButtonRight());
     EXPECT_EQ(prefs->GetBoolean(prefs::kMouseReverseScroll),
               input_settings_->current_mouse_settings().GetReverseScroll());
-    EXPECT_EQ(prefs->GetBoolean(::prefs::kMouseAcceleration),
+    EXPECT_EQ(prefs->GetBoolean(prefs::kMouseAcceleration),
               input_settings_->current_mouse_settings().GetAcceleration());
     EXPECT_EQ(
-        prefs->GetBoolean(::prefs::kMouseScrollAcceleration),
+        prefs->GetBoolean(prefs::kMouseScrollAcceleration),
         input_settings_->current_mouse_settings().GetScrollAcceleration());
     EXPECT_EQ(
         prefs->GetBoolean(::prefs::kPointingStickAcceleration),
@@ -115,9 +115,9 @@
     EXPECT_EQ(
         prefs->GetBoolean(::prefs::kEnableTouchpadThreeFingerClick),
         input_settings_->current_touchpad_settings().GetThreeFingerClick());
-    EXPECT_EQ(prefs->GetInteger(::prefs::kMouseSensitivity),
+    EXPECT_EQ(prefs->GetInteger(prefs::kMouseSensitivity),
               input_settings_->current_mouse_settings().GetSensitivity());
-    EXPECT_EQ(prefs->GetInteger(::prefs::kMouseScrollSensitivity),
+    EXPECT_EQ(prefs->GetInteger(prefs::kMouseScrollSensitivity),
               input_settings_->current_mouse_settings().GetScrollSensitivity());
     EXPECT_EQ(
         prefs->GetInteger(::prefs::kPointingStickSensitivity),
@@ -149,7 +149,7 @@
     EXPECT_EQ(local_state->GetBoolean(::prefs::kOwnerTapToClickEnabled),
               prefs->GetBoolean(::prefs::kTapToClickEnabled));
     EXPECT_EQ(local_state->GetBoolean(::prefs::kOwnerPrimaryMouseButtonRight),
-              prefs->GetBoolean(::prefs::kPrimaryMouseButtonRight));
+              prefs->GetBoolean(prefs::kPrimaryMouseButtonRight));
     EXPECT_EQ(
         local_state->GetBoolean(::prefs::kOwnerPrimaryPointingStickButtonRight),
         prefs->GetBoolean(::prefs::kPrimaryPointingStickButtonRight));
diff --git a/chrome/browser/autofill/autofill_captured_sites_interactive_uitest.cc b/chrome/browser/autofill/autofill_captured_sites_interactive_uitest.cc
index e408090..fa5f8614 100644
--- a/chrome/browser/autofill/autofill_captured_sites_interactive_uitest.cc
+++ b/chrome/browser/autofill/autofill_captured_sites_interactive_uitest.cc
@@ -92,13 +92,14 @@
   // Creates a MetricsScraper if the Finch flag is enabled.
   static std::unique_ptr<MetricsScraper> MaybeCreate(const std::string& test) {
     if (!base::FeatureList::IsEnabled(
-            features::kAutofillCapturedSiteTestsMetricsScraper)) {
+            features::test::kAutofillCapturedSiteTestsMetricsScraper)) {
       return nullptr;
     }
     const std::string& output_dir =
-        features::kAutofillCapturedSiteTestsMetricsScraperOutputDir.Get();
+        features::test::kAutofillCapturedSiteTestsMetricsScraperOutputDir.Get();
     const std::string& histogram_regex =
-        features::kAutofillCapturedSiteTestsMetricsScraperHistogramRegex.Get();
+        features::test::kAutofillCapturedSiteTestsMetricsScraperHistogramRegex
+            .Get();
     return base::WrapUnique(new MetricsScraper(
         base::FilePath::FromASCII(output_dir).AppendASCII(test + ".txt"),
         base::UTF8ToUTF16(histogram_regex)));
@@ -320,8 +321,10 @@
     // elements in a form to determine if the form is ready for interaction.
     feature_list_.InitWithFeaturesAndParameters(
         /*enabled_features=*/{{features::kAutofillAcrossIframes, {}},
-                              {features::kAutofillServerCommunication, {}},
-                              {features::kAutofillShowTypePredictions, {}},
+                              {features::test::kAutofillServerCommunication,
+                               {}},
+                              {features::test::kAutofillShowTypePredictions,
+                               {}},
                               {features::kAutofillParsingPatternProvider,
                                {{"prediction_source", "nextgen"}}}},
         /*disabled_features=*/{});
diff --git a/chrome/browser/autofill/autofill_interactive_uitest.cc b/chrome/browser/autofill/autofill_interactive_uitest.cc
index fc54ff16..5563c52 100644
--- a/chrome/browser/autofill/autofill_interactive_uitest.cc
+++ b/chrome/browser/autofill/autofill_interactive_uitest.cc
@@ -1191,8 +1191,8 @@
     : public AutofillInteractiveTest {
  public:
   AutofillInteractiveTestWithHistogramTester() {
-    feature_list_.InitWithFeatureState(features::kAutofillServerCommunication,
-                                       true);
+    feature_list_.InitWithFeatureState(
+        features::test::kAutofillServerCommunication, true);
   }
 
   void SetUp() override {
diff --git a/chrome/browser/autofill/autofill_server_browsertest.cc b/chrome/browser/autofill/autofill_server_browsertest.cc
index c836dfbf..853089e 100644
--- a/chrome/browser/autofill/autofill_server_browsertest.cc
+++ b/chrome/browser/autofill/autofill_server_browsertest.cc
@@ -143,8 +143,8 @@
     // instead of data urls.
     scoped_feature_list_.InitWithFeatures(
         // Enabled.
-        {features::kAutofillAllowNonHttpActivation,
-         features::kAutofillServerCommunication},
+        {features::test::kAutofillAllowNonHttpActivation,
+         features::test::kAutofillServerCommunication},
         // Disabled.
         {});
 
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
index 395e9ac..b10af87f 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -143,6 +143,7 @@
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "net/http/http_transaction_factory.h"
 #include "net/net_buildflags.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 
 #if BUILDFLAG(IS_ANDROID)
 #include "chrome/browser/android/customtabs/chrome_origin_verifier.h"
@@ -1340,10 +1341,12 @@
   // Explicitly clear any opt-ins to the account-scoped password storage
   // when cookies are being cleared. This needs to happen after passwords
   // have been deleted, so it is performed when all other tasks are completed.
-  // TODO(crbug.com/1052005, crbug.com/1078762): These *should* get cleared
-  // automatically when the Google cookies are deleted, but currently this
-  // doesn't always work reliably. When these bugs get resolved, the
-  // following line and associated code can be removed.
+  // Note: These usually get cleared automatically when the Google cookies are
+  // deleted, but there is one edge case where that doesn't work: If the user
+  // clears cookies via CBD while they are already signed out (but their
+  // account is still present in the account chooser). In that case, without the
+  // code below, the settings-clearing would only happen when the Google cookies
+  // are refreshed the next time, typically on the next browser restart.
   if (should_clear_password_account_storage_settings_) {
     should_clear_password_account_storage_settings_ = false;
     password_manager::features_util::ClearAccountStorageSettingsForAllUsers(
diff --git a/chrome/browser/browsing_data/counters/cache_counter_browsertest.cc b/chrome/browser/browsing_data/counters/cache_counter_browsertest.cc
index e473efd..5a4d90e 100644
--- a/chrome/browser/browsing_data/counters/cache_counter_browsertest.cc
+++ b/chrome/browser/browsing_data/counters/cache_counter_browsertest.cc
@@ -30,6 +30,7 @@
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "services/network/public/cpp/simple_url_loader.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 
 using content::BrowserContext;
diff --git a/chrome/browser/dips/dips_service.cc b/chrome/browser/dips/dips_service.cc
index 35b57f10..b8e8e30 100644
--- a/chrome/browser/dips/dips_service.cc
+++ b/chrome/browser/dips/dips_service.cc
@@ -35,6 +35,7 @@
 #include "content/public/browser/browsing_data_remover.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_recorder.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 
 namespace {
 
diff --git a/chrome/browser/dips/dips_storage.cc b/chrome/browser/dips/dips_storage.cc
index d3789619..9178a00 100644
--- a/chrome/browser/dips/dips_storage.cc
+++ b/chrome/browser/dips/dips_storage.cc
@@ -14,6 +14,7 @@
 #include "base/threading/thread_restrictions.h"
 #include "chrome/browser/dips/dips_features.h"
 #include "chrome/browser/dips/dips_utils.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/dips/dips_storage_unittest.cc b/chrome/browser/dips/dips_storage_unittest.cc
index 3a2b161c..78de8cb 100644
--- a/chrome/browser/dips/dips_storage_unittest.cc
+++ b/chrome/browser/dips/dips_storage_unittest.cc
@@ -15,6 +15,7 @@
 #include "chrome/browser/dips/dips_state.h"
 #include "chrome/browser/dips/dips_utils.h"
 #include "content/public/browser/browsing_data_filter_builder.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chrome/browser/extensions/api/management/management_api_unittest.cc b/chrome/browser/extensions/api/management/management_api_unittest.cc
index 5914fcf..ce887ba 100644
--- a/chrome/browser/extensions/api/management/management_api_unittest.cc
+++ b/chrome/browser/extensions/api/management/management_api_unittest.cc
@@ -52,6 +52,7 @@
 #include "chrome/browser/supervised_user/supervised_user_service_factory.h"
 #include "chrome/browser/supervised_user/supervised_user_test_util.h"
 #include "content/public/browser/gpu_data_manager.h"
+#include "extensions/browser/supervised_user_extensions_delegate.h"
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
 using extensions::mojom::ManifestLocation;
@@ -953,23 +954,25 @@
       const extensions::Extension& extension,
       content::BrowserContext* context,
       content::WebContents* contents,
-      ParentPermissionDialogDoneCallback parent_permission_callback,
-      base::OnceClosure error_callback) override {
+      ExtensionApprovalDoneCallback extension_approval_callback) override {
     // Preconditions.
     DCHECK(IsChild(context));
     DCHECK(!IsExtensionAllowedByParent(extension, context));
 
     if (CanInstallExtensions(context)) {
       ShowParentPermissionDialogForExtension(
-          extension, context, contents, std::move(parent_permission_callback));
+          extension, context, contents, std::move(extension_approval_callback));
     } else {
       ShowExtensionEnableBlockedByParentDialogForExtension(
-          extension, contents, std::move(error_callback));
+          extension, contents,
+          base::BindOnce(std::move(extension_approval_callback),
+                         SupervisedUserExtensionsDelegate::
+                             ExtensionApprovalResult::kBlocked));
     }
   }
 
   void set_next_parent_permission_dialog_result(
-      ParentPermissionDialogResult result) {
+      ExtensionApprovalResult result) {
     dialog_result_ = result;
   }
 
@@ -991,7 +994,7 @@
       const extensions::Extension& extension,
       content::BrowserContext* context,
       content::WebContents* contents,
-      ParentPermissionDialogDoneCallback done_callback) {
+      ExtensionApprovalDoneCallback done_callback) {
     ++show_dialog_count_;
     std::move(done_callback).Run(dialog_result_);
   }
@@ -1009,8 +1012,7 @@
     std::move(done_callback).Run();
   }
 
-  ParentPermissionDialogResult dialog_result_ =
-      ParentPermissionDialogResult::kParentPermissionFailed;
+  ExtensionApprovalResult dialog_result_ = ExtensionApprovalResult::kFailed;
   int show_dialog_count_ = 0;
   int show_block_dialog_count_ = 0;
 };
@@ -1349,8 +1351,7 @@
   // Now try again with parent approval, and this should succeed.
   {
     supervised_user_delegate_->set_next_parent_permission_dialog_result(
-        SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-            kParentPermissionReceived);
+        SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kApproved);
     std::string error;
     bool success = RunSetEnabledFunction(web_contents_.get(), extension_id,
                                          /*use_user_gesture=*/true,
@@ -1401,8 +1402,7 @@
   // Parent approval should fail because of the unsupported requirements.
   {
     supervised_user_delegate_->set_next_parent_permission_dialog_result(
-        SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-            kParentPermissionReceived);
+        SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kApproved);
     std::string error;
     bool success = RunSetEnabledFunction(web_contents_.get(), extension->id(),
                                          /*user_user_gesture=*/true,
@@ -1436,8 +1436,7 @@
 
   // The parent will approve.
   supervised_user_delegate_->set_next_parent_permission_dialog_result(
-      SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-          kParentPermissionReceived);
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kApproved);
 
   RunSetEnabledFunction(web_contents_.get(), extension->id(),
                         /*use_user_gesture=*/true, /*accept_dialog=*/true,
@@ -1523,8 +1522,7 @@
 
   // The parent will approve.
   supervised_user_delegate_->set_next_parent_permission_dialog_result(
-      SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-          kParentPermissionReceived);
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kApproved);
 
   // Simulate a call to chrome.management.setEnabled(). It should succeed.
   std::string error;
@@ -1548,8 +1546,7 @@
 
   // The parent will deny the next dialog.
   supervised_user_delegate_->set_next_parent_permission_dialog_result(
-      SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-          kParentPermissionCanceled);
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kCanceled);
 
   // Simulate a call to chrome.management.setEnabled(). It should not succeed.
   std::string error;
@@ -1574,8 +1571,7 @@
   // The next dialog will close due to a failure (e.g. network failure while
   // looking up parent information).
   supervised_user_delegate_->set_next_parent_permission_dialog_result(
-      SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-          kParentPermissionFailed);
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kFailed);
 
   // Simulate a call to chrome.management.setEnabled(). It should not succeed.
   std::string error;
@@ -1622,8 +1618,7 @@
 
   // The parent will approve.
   supervised_user_delegate_->set_next_parent_permission_dialog_result(
-      SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-          kParentPermissionReceived);
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kApproved);
 
   // Simulate a call to chrome.management.setEnabled(). It should succeed
   // despite a lack of web contents.
@@ -1655,8 +1650,7 @@
 
   // The parent will cancel.
   supervised_user_delegate_->set_next_parent_permission_dialog_result(
-      SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-          kParentPermissionCanceled);
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kCanceled);
 
   // Simulate a call to chrome.management.setEnabled() with no web contents.
   std::string error;
@@ -1689,8 +1683,7 @@
 
   // The request will fail.
   supervised_user_delegate_->set_next_parent_permission_dialog_result(
-      SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-          kParentPermissionFailed);
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kFailed);
 
   // Simulate a call to chrome.management.setEnabled() with no web contents.
   std::string error;
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
index b1405fc6..63be11f 100644
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -851,15 +851,15 @@
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
   (*s_allowlist)[::prefs::kTouchpadHapticClickSensitivity] =
       settings_api::PrefType::PREF_TYPE_NUMBER;
-  (*s_allowlist)[::prefs::kPrimaryMouseButtonRight] =
+  (*s_allowlist)[ash::prefs::kPrimaryMouseButtonRight] =
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
   (*s_allowlist)[::prefs::kPrimaryPointingStickButtonRight] =
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
   (*s_allowlist)[ash::prefs::kMouseReverseScroll] =
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
-  (*s_allowlist)[::prefs::kMouseAcceleration] =
+  (*s_allowlist)[ash::prefs::kMouseAcceleration] =
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
-  (*s_allowlist)[::prefs::kMouseScrollAcceleration] =
+  (*s_allowlist)[ash::prefs::kMouseScrollAcceleration] =
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
   (*s_allowlist)[::prefs::kPointingStickAcceleration] =
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
@@ -867,9 +867,9 @@
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
   (*s_allowlist)[::prefs::kTouchpadScrollAcceleration] =
       settings_api::PrefType::PREF_TYPE_BOOLEAN;
-  (*s_allowlist)[::prefs::kMouseSensitivity] =
+  (*s_allowlist)[ash::prefs::kMouseSensitivity] =
       settings_api::PrefType::PREF_TYPE_NUMBER;
-  (*s_allowlist)[::prefs::kMouseScrollSensitivity] =
+  (*s_allowlist)[ash::prefs::kMouseScrollSensitivity] =
       settings_api::PrefType::PREF_TYPE_NUMBER;
   (*s_allowlist)[::prefs::kPointingStickSensitivity] =
       settings_api::PrefType::PREF_TYPE_NUMBER;
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
index dce94ed9..e20fb80 100644
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
@@ -72,6 +72,7 @@
 // flag to #if BUILDFLAG(IS_CHROMEOS)
 #include "chrome/browser/supervised_user/supervised_user_service.h"
 #include "chrome/browser/supervised_user/supervised_user_service_factory.h"
+#include "extensions/browser/api/management/management_api.h"
 #endif  // BUILDFLAG(ENABLE_SUPERVISED_USERS)
 
 using safe_browsing::SafeBrowsingNavigationObserverManager;
@@ -615,33 +616,36 @@
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
 
-void WebstorePrivateBeginInstallWithManifest3Function::OnParentPermissionDone(
-    ParentPermissionDialog::Result result) {
+void WebstorePrivateBeginInstallWithManifest3Function::OnExtensionApprovalDone(
+    SupervisedUserExtensionsDelegate::ExtensionApprovalResult result) {
   switch (result) {
-    case ParentPermissionDialog::Result::kParentPermissionReceived:
-      OnParentPermissionReceived();
+    case SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kApproved:
+      OnExtensionApprovalApproved();
       break;
-    case ParentPermissionDialog::Result::kParentPermissionCanceled:
-      OnParentPermissionCanceled();
+    case SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kCanceled:
+      OnExtensionApprovalCanceled();
       break;
-    case ParentPermissionDialog::Result::kParentPermissionFailed:
-      OnParentPermissionFailed();
+    case SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kFailed:
+      OnExtensionApprovalFailed();
+      break;
+    case SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kBlocked:
+      OnExtensionApprovalBlocked();
       break;
   }
+  Release();  // Matches the AddRef in Run().
 }
 
 void WebstorePrivateBeginInstallWithManifest3Function::
-    OnParentPermissionReceived() {
+    OnExtensionApprovalApproved() {
   SupervisedUserService* service =
       SupervisedUserServiceFactory::GetForProfile(profile_);
   service->AddExtensionApproval(*dummy_extension_);
 
   HandleInstallProceed();
-  Release();  // Matches the AddRef in Run().
 }
 
 void WebstorePrivateBeginInstallWithManifest3Function::
-    OnParentPermissionCanceled() {
+    OnExtensionApprovalCanceled() {
   if (test_webstore_installer_delegate) {
     test_webstore_installer_delegate->OnExtensionInstallFailure(
         dummy_extension_->id(), kWebstoreParentPermissionFailedError,
@@ -649,11 +653,10 @@
   }
 
   HandleInstallAbort(true /* user_initiated */);
-  Release();  // Matches the AddRef in Run().
 }
 
 void WebstorePrivateBeginInstallWithManifest3Function::
-    OnParentPermissionFailed() {
+    OnExtensionApprovalFailed() {
   if (test_webstore_installer_delegate) {
     test_webstore_installer_delegate->OnExtensionInstallFailure(
         dummy_extension_->id(), kWebstoreParentPermissionFailedError,
@@ -662,8 +665,12 @@
 
   Respond(BuildResponse(api::webstore_private::RESULT_UNKNOWN_ERROR,
                         kWebstoreParentPermissionFailedError));
+}
 
-  Release();  // Matches the AddRef in Run().
+void WebstorePrivateBeginInstallWithManifest3Function::
+    OnExtensionApprovalBlocked() {
+  Respond(BuildResponse(api::webstore_private::RESULT_BLOCKED_FOR_CHILD_ACCOUNT,
+                        kParentBlockedExtensionInstallError));
 }
 
 bool WebstorePrivateBeginInstallWithManifest3Function::
@@ -677,26 +684,32 @@
     return false;
   }
 
-  ParentPermissionDialog::DoneCallback done_callback = base::BindOnce(
-      &WebstorePrivateBeginInstallWithManifest3Function::OnParentPermissionDone,
-      this);
+  auto extension_approval_callback =
+      base::BindOnce(&WebstorePrivateBeginInstallWithManifest3Function::
+                         OnExtensionApprovalDone,
+                     this);
 
-  parent_permission_dialog_ =
-      ParentPermissionDialog::CreateParentPermissionDialogForExtension(
-          profile_, web_contents->GetTopLevelNativeWindow(),
-          gfx::ImageSkia::CreateFrom1xBitmap(icon_), dummy_extension_.get(),
-          std::move(done_callback));
-  parent_permission_dialog_->ShowDialog();
+  SupervisedUserExtensionsDelegate* supervised_user_extensions_delegate =
+      ManagementAPI::GetFactoryInstance()
+          ->Get(profile_)
+          ->GetSupervisedUserExtensionsDelegate();
+  DCHECK(supervised_user_extensions_delegate);
+
+  // Assume that the block dialog will not be shown by the
+  // SupervisedUserExtensionsDelegate, because if permissions for extensions
+  // were disabled, the block dialog would have been shown at the install prompt
+  // step.
+  supervised_user_extensions_delegate->PromptForParentPermissionOrShowError(
+      *dummy_extension_, profile_, web_contents,
+      std::move(extension_approval_callback));
 
   return true;
 }
 
 void WebstorePrivateBeginInstallWithManifest3Function::
     OnBlockedByParentDialogDone() {
-  Respond(BuildResponse(api::webstore_private::RESULT_BLOCKED_FOR_CHILD_ACCOUNT,
-                        kParentBlockedExtensionInstallError));
-  // Matches the AddRef in Run().
-  Release();
+  OnExtensionApprovalDone(
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kBlocked);
 }
 
 #endif  // BUILDFLAG(ENABLE_SUPERVISED_USERS)
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.h b/chrome/browser/extensions/api/webstore_private/webstore_private_api.h
index 7dda60a..80a474a 100644
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.h
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.h
@@ -27,7 +27,7 @@
 // TODO(https://crbug.com/1060801): Here and elsewhere, possibly switch build
 // flag to #if BUILDFLAG(IS_CHROMEOS)
 #include "chrome/browser/supervised_user/supervised_user_extensions_metrics_recorder.h"
-#include "chrome/browser/ui/supervised_user/parent_permission_dialog.h"
+#include "extensions/browser/supervised_user_extensions_delegate.h"
 #endif  // BUILDFLAG(ENABLE_SUPERVISED_USERS)
 
 class Profile;
@@ -92,13 +92,17 @@
                               const std::string& error_message) override;
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
-  void OnParentPermissionDone(ParentPermissionDialog::Result result);
+  // Handles the result of the extension approval flow.
+  void OnExtensionApprovalDone(
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult result);
 
-  void OnParentPermissionReceived();
+  void OnExtensionApprovalApproved();
 
-  void OnParentPermissionCanceled();
+  void OnExtensionApprovalCanceled();
 
-  void OnParentPermissionFailed();
+  void OnExtensionApprovalFailed();
+
+  void OnExtensionApprovalBlocked();
 
   // Returns true if the parental approval prompt was shown, false if there was
   // an error showing it.
@@ -156,7 +160,6 @@
   std::u16string blocked_by_policy_error_message_;
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
-  std::unique_ptr<ParentPermissionDialog> parent_permission_dialog_;
   SupervisedUserExtensionsMetricsRecorder
       supervised_user_extensions_metrics_recorder_;
 #endif  // BUILDFLAG(ENABLE_SUPERVISED_USERS)
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 73d505f1..1cbbd58 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -6539,6 +6539,14 @@
     "expiry_milestone": 115
   },
   {
+    "name": "spotlight-reading-list-source",
+    "owners": [
+      "bling-flags@google.com",
+      "stkhapugin"
+    ],
+    "expiry_milestone": 120
+  },
+  {
     "name": "start-surface",
     "owners": [ "gogerald", "bling-flags@google.com" ],
     "expiry_milestone": 94
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
index f11f6724..cf8603b 100644
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -69,6 +69,7 @@
 #include "device/fido/features.h"
 #include "media/base/media_switches.h"
 #include "services/device/public/cpp/device_features.h"
+#include "services/network/public/cpp/features.h"
 #include "third_party/blink/public/common/features.h"
 #include "ui/base/ui_base_features.h"
 
@@ -395,6 +396,7 @@
     &webapps::features::kInstallableAmbientBadgeMessage,
     &webapps::features::kWebApkInstallFailureNotification,
     &webapps::features::kWebApkUniqueId,
+    &network::features::kPrivateStateTokens,
 };
 
 const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) {
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
index 7e012dc4..9bc023d8 100644
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -422,6 +422,7 @@
     public static final String PRIVACY_SANDBOX_FPS_UI = "PrivacySandboxFirstPartySetsUI";
     public static final String PRIVACY_SANDBOX_SETTINGS_3 = "PrivacySandboxSettings3";
     public static final String PRIVACY_SANDBOX_SETTINGS_4 = "PrivacySandboxSettings4";
+    public static final String PRIVATE_STATE_TOKENS = "TrustTokens";
     public static final String PROBABILISTIC_CRYPTID_RENDERER = "ProbabilisticCryptidRenderer";
     public static final String PUSH_MESSAGING_DISALLOW_SENDER_IDS =
             "PushMessagingDisallowSenderIDs";
diff --git a/chrome/browser/metrics/chromeos_metrics_provider.cc b/chrome/browser/metrics/chromeos_metrics_provider.cc
index 470e9055..5fb95f90 100644
--- a/chrome/browser/metrics/chromeos_metrics_provider.cc
+++ b/chrome/browser/metrics/chromeos_metrics_provider.cc
@@ -127,6 +127,9 @@
 void ChromeOSMetricsProvider::OnDidCreateMetricsLog() {
   cros_system_profile_provider_->OnDidCreateMetricsLog();
   if (base::FeatureList::IsEnabled(metrics::features::kEmitHistogramsEarlier)) {
+    if (!arc::StabilityMetricsManager::Get()) {
+      return;
+    }
     // Not guaranteed to result in emitting hisotograms when called early on
     // browser startup.
     arc::StabilityMetricsManager::Get()->RecordMetricsToUMA();
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_browsertest.cc b/chrome/browser/navigation_predictor/navigation_predictor_browsertest.cc
index c4229ca..3938f17 100644
--- a/chrome/browser/navigation_predictor/navigation_predictor_browsertest.cc
+++ b/chrome/browser/navigation_predictor/navigation_predictor_browsertest.cc
@@ -265,7 +265,9 @@
 }
 
 // Make sure AnchorsData gets cleared between navigations.
-IN_PROC_BROWSER_TEST_F(NavigationPredictorBrowserTest, MultipleNavigations) {
+// TODO(crbug.com/1417581): Flaky on multiple platforms.
+IN_PROC_BROWSER_TEST_F(NavigationPredictorBrowserTest,
+                       DISABLED_MultipleNavigations) {
   auto test_ukm_recorder = std::make_unique<ukm::TestAutoSetUkmRecorder>();
   ResetUKM();
 
diff --git a/chrome/browser/net/dns_probe_browsertest.cc b/chrome/browser/net/dns_probe_browsertest.cc
index 0c1687d..3e6ae2bb 100644
--- a/chrome/browser/net/dns_probe_browsertest.cc
+++ b/chrome/browser/net/dns_probe_browsertest.cc
@@ -51,6 +51,7 @@
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/url_request/url_request_failed_job.h"
 #include "services/network/public/cpp/features.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if BUILDFLAG(IS_WIN)
diff --git a/chrome/browser/net/dns_probe_service_factory_unittest.cc b/chrome/browser/net/dns_probe_service_factory_unittest.cc
index 4bb21b9..2d4d2eef 100644
--- a/chrome/browser/net/dns_probe_service_factory_unittest.cc
+++ b/chrome/browser/net/dns_probe_service_factory_unittest.cc
@@ -28,6 +28,7 @@
 #include "content/public/test/browser_task_environment.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "net/dns/public/secure_dns_mode.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "testing/gmock/include/gmock/gmock-matchers.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/chrome/browser/net/dns_probe_test_util.cc b/chrome/browser/net/dns_probe_test_util.cc
index 02b0b85d..f047cef 100644
--- a/chrome/browser/net/dns_probe_test_util.cc
+++ b/chrome/browser/net/dns_probe_test_util.cc
@@ -11,6 +11,7 @@
 #include "net/base/ip_address.h"
 #include "net/base/network_anonymization_key.h"
 #include "net/dns/public/resolve_error_info.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace chrome_browser_net {
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
index d9ae1b7..dd09785 100644
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
@@ -43,6 +43,8 @@
 #include "chrome/common/pref_names.h"
 #include "components/certificate_transparency/pref_names.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/common/content_settings.h"
+#include "components/content_settings/core/common/content_settings_types.h"
 #include "components/embedder_support/pref_names.h"
 #include "components/embedder_support/switches.h"
 #include "components/language/core/browser/language_prefs.h"
@@ -197,6 +199,19 @@
   return false;
 }
 
+void UpdateAntiAbuseSettings(Profile* profile) {
+  ContentSetting content_setting =
+      HostContentSettingsMapFactory::GetForProfile(profile)
+          ->GetDefaultContentSetting(ContentSettingsType::ANTI_ABUSE, nullptr);
+  profile->ForEachLoadedStoragePartition(base::BindRepeating(
+      [](ContentSetting content_setting,
+         content::StoragePartition* storage_partition) {
+        storage_partition->GetNetworkContext()->SetBlockTrustTokens(
+            content_setting == CONTENT_SETTING_BLOCK);
+      },
+      content_setting));
+}
+
 void UpdateCookieSettings(Profile* profile) {
   ContentSettingsForOneType settings;
   HostContentSettingsMapFactory::GetForProfile(profile)->GetSettingsForOneType(
@@ -438,17 +453,6 @@
 }
 #endif
 
-void ProfileNetworkContextService::OnTrustTokenBlockingChanged(
-    bool block_trust_tokens) {
-  profile_->ForEachLoadedStoragePartition(base::BindRepeating(
-      [](bool block_trust_tokens,
-         content::StoragePartition* storage_partition) {
-        storage_partition->GetNetworkContext()->SetBlockTrustTokens(
-            block_trust_tokens);
-      },
-      block_trust_tokens));
-}
-
 void ProfileNetworkContextService::OnFirstPartySetsEnabledChanged(
     bool enabled) {
   // Update all FPS Access Delegates on the FPS service to be `enabled`.
@@ -1038,9 +1042,11 @@
   // / IsolationInfos, so storage can be isolated on a per-site basis.
   network_context_params->require_network_isolation_key = true;
 
+  ContentSetting anti_abuse_content_setting =
+      HostContentSettingsMapFactory::GetForProfile(profile_)
+          ->GetDefaultContentSetting(ContentSettingsType::ANTI_ABUSE, nullptr);
   network_context_params->block_trust_tokens =
-      !PrivacySandboxSettingsFactory::GetForProfile(profile_)
-           ->IsTrustTokensAllowed();
+      anti_abuse_content_setting == CONTENT_SETTING_BLOCK;
 
   network_context_params->first_party_sets_access_delegate_params =
       network::mojom::FirstPartySetsAccessDelegateParams::New();
@@ -1077,6 +1083,9 @@
     const ContentSettingsPattern& secondary_pattern,
     ContentSettingsType content_type) {
   switch (content_type) {
+    case ContentSettingsType::ANTI_ABUSE:
+      UpdateAntiAbuseSettings(profile_);
+      break;
     case ContentSettingsType::COOKIES:
       UpdateCookieSettings(profile_);
       break;
diff --git a/chrome/browser/net/profile_network_context_service.h b/chrome/browser/net/profile_network_context_service.h
index 05e8e53b1..1e832ed4 100644
--- a/chrome/browser/net/profile_network_context_service.h
+++ b/chrome/browser/net/profile_network_context_service.h
@@ -191,7 +191,6 @@
 #endif
 
   // PrivacySandboxSettings::Observer:
-  void OnTrustTokenBlockingChanged(bool block_trust_tokens) override;
   void OnFirstPartySetsEnabledChanged(bool enabled) override;
 
   const raw_ptr<Profile> profile_;
diff --git a/chrome/browser/net/profile_network_context_service_browsertest.cc b/chrome/browser/net/profile_network_context_service_browsertest.cc
index 1b6c8e79..6f7e726 100644
--- a/chrome/browser/net/profile_network_context_service_browsertest.cc
+++ b/chrome/browser/net/profile_network_context_service_browsertest.cc
@@ -27,6 +27,7 @@
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/net/profile_network_context_service.h"
 #include "chrome/browser/net/profile_network_context_service_factory.h"
 #include "chrome/browser/net/profile_network_context_service_test_utils.h"
@@ -44,6 +45,9 @@
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "components/content_settings/core/browser/cookie_settings.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/common/content_settings.h"
+#include "components/content_settings/core/common/content_settings_types.h"
 #include "components/content_settings/core/common/pref_names.h"
 #include "components/metrics/content/subprocess_metrics_provider.h"
 #include "components/policy/core/common/policy_map.h"
@@ -694,9 +698,8 @@
   privacy_sandbox_settings->SetDelegateForTesting(
       std::move(privacy_sandbox_delegate));
   privacy_sandbox_settings->SetAllPrivacySandboxAllowedForTesting();
-  browser()->profile()->GetPrefs()->SetInteger(
-      prefs::kCookieControlsMode,
-      static_cast<int>(content_settings::CookieControlsMode::kOff));
+  auto* host_content_settings_map =
+      HostContentSettingsMapFactory::GetForProfile(browser()->profile());
   Flush();
 
   ASSERT_TRUE(ui_test_utils::NavigateToURL(
@@ -720,29 +723,30 @@
 
   EXPECT_EQ(true, EvalJs(GetActiveWebContents(), command));
 
-  privacy_sandbox_settings->SetPrivacySandboxEnabled(false);
+  host_content_settings_map->SetDefaultContentSetting(
+      ContentSettingsType::ANTI_ABUSE, CONTENT_SETTING_BLOCK);
   Flush();
 
   chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
   EXPECT_TRUE(content::WaitForLoadStop(GetActiveWebContents()));
   EXPECT_EQ(false, EvalJs(GetActiveWebContents(), command));
 
-  privacy_sandbox_settings->SetPrivacySandboxEnabled(true);
-  browser()->profile()->GetPrefs()->SetInteger(
-      prefs::kCookieControlsMode,
-      static_cast<int>(content_settings::CookieControlsMode::kBlockThirdParty));
-  Flush();
-
-  chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
-  EXPECT_TRUE(content::WaitForLoadStop(GetActiveWebContents()));
-  EXPECT_EQ(false, EvalJs(GetActiveWebContents(), command));
-
-  browser()->profile()->GetPrefs()->SetInteger(
-      prefs::kCookieControlsMode,
-      static_cast<int>(content_settings::CookieControlsMode::kOff));
+  host_content_settings_map->SetDefaultContentSetting(
+      ContentSettingsType::ANTI_ABUSE, CONTENT_SETTING_ALLOW);
   Flush();
 
   chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
   EXPECT_TRUE(content::WaitForLoadStop(GetActiveWebContents()));
   EXPECT_EQ(true, EvalJs(GetActiveWebContents(), command));
+
+  // Trust Tokens are blocked when the top level origin cookie content setting
+  // is blocked
+  GURL top_level_origin = https_test_server()->GetURL("a.test", "/");
+  host_content_settings_map->SetContentSettingDefaultScope(
+      top_level_origin, top_level_origin, ContentSettingsType::COOKIES,
+      CONTENT_SETTING_BLOCK);
+
+  chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
+  EXPECT_TRUE(content::WaitForLoadStop(GetActiveWebContents()));
+  EXPECT_EQ(false, EvalJs(GetActiveWebContents(), command));
 }
diff --git a/chrome/browser/net_benchmarking.cc b/chrome/browser/net_benchmarking.cc
index 94c1aa5f..795af1eb 100644
--- a/chrome/browser/net_benchmarking.cc
+++ b/chrome/browser/net_benchmarking.cc
@@ -18,6 +18,7 @@
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/storage_partition.h"
 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 
 using content::BrowserThread;
diff --git a/chrome/browser/page_info/page_info_features.cc b/chrome/browser/page_info/page_info_features.cc
index 6045f9bb..2b008fd 100644
--- a/chrome/browser/page_info/page_info_features.cc
+++ b/chrome/browser/page_info/page_info_features.cc
@@ -27,6 +27,11 @@
              page_info::kPageInfoAboutThisSiteDescriptionPlaceholder);
 }
 
+bool IsAboutThisSiteNewIconFeatureEnabled() {
+  return IsMoreAboutThisSiteFeatureEnabled() &&
+         base::FeatureList::IsEnabled(page_info::kPageInfoAboutThisSiteNewIcon);
+}
+
 bool IsAboutThisSiteForNonMsbbFeatureEnabled() {
   return IsMoreAboutThisSiteFeatureEnabled() &&
          IsDescriptionPlaceholderFeatureEnabled() &&
diff --git a/chrome/browser/page_info/page_info_features.h b/chrome/browser/page_info/page_info_features.h
index b428f58..d830ad1 100644
--- a/chrome/browser/page_info/page_info_features.h
+++ b/chrome/browser/page_info/page_info_features.h
@@ -16,6 +16,10 @@
 // features are enabled.
 bool IsDescriptionPlaceholderFeatureEnabled();
 
+// Returns true if `kPageInfoAboutThisSiteNewIcon` and dependent features are
+// enabled.
+bool IsAboutThisSiteNewIconFeatureEnabled();
+
 // Returns true if `kPageInfoAboutThisSiteNonMsbb` and dependent features are
 // enabled.
 bool IsAboutThisSiteForNonMsbbFeatureEnabled();
diff --git a/chrome/browser/password_manager/password_manager_browsertest.cc b/chrome/browser/password_manager/password_manager_browsertest.cc
index 9137685..65cd5f2 100644
--- a/chrome/browser/password_manager/password_manager_browsertest.cc
+++ b/chrome/browser/password_manager/password_manager_browsertest.cc
@@ -161,7 +161,7 @@
 
  private:
   base::test::ScopedFeatureList scoped_feature_list_{
-      autofill::features::kAutofillServerCommunication};
+      autofill::features::test::kAutofillServerCommunication};
   std::unique_ptr<content::URLLoaderInterceptor> url_loader_interceptor_;
 };
 
diff --git a/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc b/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc
index 7d01f97..02c3944f 100644
--- a/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc
+++ b/chrome/browser/password_manager/password_manager_captured_sites_interactive_uitest.cc
@@ -225,10 +225,9 @@
 
   void SetUpCommandLine(base::CommandLine* command_line) override {
     feature_list_.InitWithFeaturesAndParameters(
-        /*enabled_features=*/{{autofill::features::kAutofillServerCommunication,
-                               {}},
-                              {autofill::features::kAutofillShowTypePredictions,
-                               {}}},
+        /*enabled_features=*/
+        {{autofill::features::test::kAutofillServerCommunication, {}},
+         {autofill::features::test::kAutofillShowTypePredictions, {}}},
         {});
     command_line->AppendSwitch(autofill::switches::kShowAutofillSignatures);
     captured_sites_test_utils::TestRecipeReplayer::SetUpHostResolverRules(
diff --git a/chrome/browser/performance_manager/public/user_tuning/user_performance_tuning_manager.h b/chrome/browser/performance_manager/public/user_tuning/user_performance_tuning_manager.h
index 8a03c81..5d030fc7 100644
--- a/chrome/browser/performance_manager/public/user_tuning/user_performance_tuning_manager.h
+++ b/chrome/browser/performance_manager/public/user_tuning/user_performance_tuning_manager.h
@@ -11,6 +11,7 @@
 #include "base/power_monitor/power_observer.h"
 #include "base/scoped_observation.h"
 #include "chrome/browser/performance_manager/user_tuning/user_performance_tuning_notifier.h"
+#include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom-shared.h"
 #include "components/prefs/pref_change_registrar.h"
 #include "content/public/browser/web_contents_user_data.h"
 
@@ -101,7 +102,8 @@
       : public content::WebContentsUserData<PreDiscardResourceUsage> {
    public:
     PreDiscardResourceUsage(content::WebContents* contents,
-                            uint64_t memory_footprint_estimate);
+                            uint64_t memory_footprint_estimate,
+                            ::mojom::LifecycleUnitDiscardReason discard_reason);
     ~PreDiscardResourceUsage() override;
 
     // Returns the resource usage estimate in kilobytes.
@@ -109,11 +111,16 @@
       return memory_footprint_estimate_;
     }
 
+    ::mojom::LifecycleUnitDiscardReason discard_reason() const {
+      return discard_reason_;
+    }
+
    private:
     friend WebContentsUserData;
     WEB_CONTENTS_USER_DATA_KEY_DECL();
 
     uint64_t memory_footprint_estimate_ = 0;
+    ::mojom::LifecycleUnitDiscardReason discard_reason_;
   };
 
   static UserPerformanceTuningManager* GetInstance();
diff --git a/chrome/browser/performance_manager/user_tuning/user_performance_tuning_manager.cc b/chrome/browser/performance_manager/user_tuning/user_performance_tuning_manager.cc
index b219061..803d4cd 100644
--- a/chrome/browser/performance_manager/user_tuning/user_performance_tuning_manager.cc
+++ b/chrome/browser/performance_manager/user_tuning/user_performance_tuning_manager.cc
@@ -12,6 +12,7 @@
 #include "chrome/browser/performance_manager/metrics/page_timeline_monitor.h"
 #include "chrome/browser/performance_manager/policies/high_efficiency_mode_policy.h"
 #include "chrome/browser/performance_manager/policies/page_discarding_helper.h"
+#include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom-shared.h"
 #include "components/performance_manager/public/features.h"
 #include "components/performance_manager/public/performance_manager.h"
 #include "components/performance_manager/public/user_tuning/prefs.h"
@@ -90,9 +91,11 @@
 
 UserPerformanceTuningManager::PreDiscardResourceUsage::PreDiscardResourceUsage(
     content::WebContents* contents,
-    uint64_t memory_footprint_estimate)
+    uint64_t memory_footprint_estimate,
+    ::mojom::LifecycleUnitDiscardReason discard_reason)
     : content::WebContentsUserData<PreDiscardResourceUsage>(*contents),
-      memory_footprint_estimate_(memory_footprint_estimate) {}
+      memory_footprint_estimate_(memory_footprint_estimate),
+      discard_reason_(discard_reason) {}
 
 UserPerformanceTuningManager::PreDiscardResourceUsage::
     ~PreDiscardResourceUsage() = default;
diff --git a/chrome/browser/picture_in_picture/document_picture_in_picture_window_controller_browsertest.cc b/chrome/browser/picture_in_picture/document_picture_in_picture_window_controller_browsertest.cc
index 3b2b874..61b94c28 100644
--- a/chrome/browser/picture_in_picture/document_picture_in_picture_window_controller_browsertest.cc
+++ b/chrome/browser/picture_in_picture/document_picture_in_picture_window_controller_browsertest.cc
@@ -267,6 +267,46 @@
   EXPECT_TRUE(window_controller()->GetChildWebContents());
 }
 
+// Refreshing the pip window's document should close the pip window.
+IN_PROC_BROWSER_TEST_F(DocumentPictureInPictureWindowControllerBrowserTest,
+                       CloseOnPictureInPictureRefresh) {
+  LoadTabAndEnterPictureInPicture(browser());
+
+  content::WebContents* active_web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  ASSERT_EQ(true, EvalJs(active_web_contents, "refreshInDocumentPipWindow();"));
+  base::RunLoop().RunUntilIdle();
+  EXPECT_FALSE(window_controller()->GetChildWebContents());
+}
+
+// Explicitly navigating to about:blank should close the pip window.
+// Regression test for https://crbug.com/1413919.
+IN_PROC_BROWSER_TEST_F(DocumentPictureInPictureWindowControllerBrowserTest,
+                       CloseOnPictureInPictureNavigatedToAboutBlank) {
+  LoadTabAndEnterPictureInPicture(browser());
+
+  content::WebContents* active_web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  ASSERT_EQ(true, EvalJs(active_web_contents,
+                         "navigateInDocumentPipWindow('about:blank');"));
+  base::RunLoop().RunUntilIdle();
+  EXPECT_FALSE(window_controller()->GetChildWebContents());
+}
+
+// Explicitly navigating to the empty string should close the pip window.
+// Regression test for https://crbug.com/1413919.
+IN_PROC_BROWSER_TEST_F(DocumentPictureInPictureWindowControllerBrowserTest,
+                       CloseOnPictureInPictureNavigatedToEmptyString) {
+  LoadTabAndEnterPictureInPicture(browser());
+
+  content::WebContents* active_web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  ASSERT_EQ(true,
+            EvalJs(active_web_contents, "navigateInDocumentPipWindow('');"));
+  base::RunLoop().RunUntilIdle();
+  EXPECT_FALSE(window_controller()->GetChildWebContents());
+}
+
 // Adding a script to the popup window should not crash.
 IN_PROC_BROWSER_TEST_F(DocumentPictureInPictureWindowControllerBrowserTest,
                        AddScriptToPictureInPictureWindow) {
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
index c8e1c6c..484aa6b 100644
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -937,7 +937,7 @@
     ash::prefs::kAccessibilityDictationEnabled,
     base::Value::Type::BOOLEAN },
   { key::kPrimaryMouseButtonSwitch,
-    prefs::kPrimaryMouseButtonRight,
+    ash::prefs::kPrimaryMouseButtonRight,
     base::Value::Type::BOOLEAN },
   { key::kKeyboardFocusHighlightEnabled,
     ash::prefs::kAccessibilityFocusHighlightEnabled,
diff --git a/chrome/browser/predictors/loading_predictor_browsertest.cc b/chrome/browser/predictors/loading_predictor_browsertest.cc
index 8aa720f1..f64a5871 100644
--- a/chrome/browser/predictors/loading_predictor_browsertest.cc
+++ b/chrome/browser/predictors/loading_predictor_browsertest.cc
@@ -71,6 +71,7 @@
 #include "services/network/public/cpp/features.h"
 #include "services/network/public/cpp/resource_request.h"
 #include "services/network/public/cpp/simple_url_loader.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/cors.mojom.h"
 #include "services/network/public/mojom/ip_address_space.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
index 65b92cc..9ceecf8 100644
--- a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
+++ b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_browsertest.cc
@@ -50,6 +50,7 @@
 #include "net/test/embedded_test_server/http_request.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_recorder.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/blink/public/common/loader/url_loader_throttle.h"
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc
index a003d2a..a29d6ec 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc
@@ -22,6 +22,8 @@
 #include "chrome/common/webui_url_constants.h"
 #include "components/browsing_topics/browsing_topics_service.h"
 #include "components/content_settings/core/browser/cookie_settings.h"
+#include "components/content_settings/core/common/content_settings.h"
+#include "components/content_settings/core/common/content_settings_types.h"
 #include "components/content_settings/core/common/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/privacy_sandbox/privacy_sandbox_features.h"
@@ -194,6 +196,7 @@
     content::InterestGroupManager* interest_group_manager,
     profile_metrics::BrowserProfileType profile_type,
     content::BrowsingDataRemover* browsing_data_remover,
+    HostContentSettingsMap* host_content_settings_map,
 #if !BUILDFLAG(IS_ANDROID)
     TrustSafetySentimentService* sentiment_service,
 #endif
@@ -205,6 +208,7 @@
       interest_group_manager_(interest_group_manager),
       profile_type_(profile_type),
       browsing_data_remover_(browsing_data_remover),
+      host_content_settings_map_(host_content_settings_map),
 #if !BUILDFLAG(IS_ANDROID)
       sentiment_service_(sentiment_service),
 #endif
@@ -260,6 +264,10 @@
   // TODO(crbug.com/1351327): Remove this logic when most users have run init.
   MaybeInitializeFirstPartySetsPref();
 
+  // Check for anti-abuse content setting init at each startup.
+  // TODO(crbug.com/1408778): Remove this logic when most users have run init.
+  MaybeInitializeAntiAbuseContentSetting();
+
   // Record preference state for UMA at each startup.
   LogPrivacySandboxState();
 }
@@ -1374,6 +1382,26 @@
       prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, true);
 }
 
+void PrivacySandboxService::MaybeInitializeAntiAbuseContentSetting() {
+  // If initialization has already run, it is not required.
+  if (pref_service_->GetBoolean(prefs::kPrivacySandboxAntiAbuseInitialized)) {
+    return;
+  }
+
+  // If the user blocks 3P cookies, disable the anti-abuse content setting.
+  // As this logic relies on checking synced preference state, it is possible
+  // that synced state is available when this decision is made. To err on the
+  // side of privacy, this init logic is run per-device (the pref recording that
+  // init has been run is not synced). If any of the user's devices local state
+  // would disable the setting, it is disabled across all devices.
+  if (AreThirdPartyCookiesBlocked(cookie_settings_)) {
+    host_content_settings_map_->SetDefaultContentSetting(
+        ContentSettingsType::ANTI_ABUSE, ContentSetting::CONTENT_SETTING_BLOCK);
+  }
+
+  pref_service_->SetBoolean(prefs::kPrivacySandboxAntiAbuseInitialized, true);
+}
+
 void PrivacySandboxService::RecordUpdatedTopicsConsent(
     privacy_sandbox::TopicsConsentUpdateSource source,
     bool did_consent) const {
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service.h b/chrome/browser/privacy_sandbox/privacy_sandbox_service.h
index 3fab1146..414175e 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service.h
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service.h
@@ -10,6 +10,7 @@
 #include "base/gtest_prod_util.h"
 #include "base/memory/raw_ptr.h"
 #include "chrome/browser/first_party_sets/first_party_sets_policy_service.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/prefs/pref_change_registrar.h"
 #include "components/privacy_sandbox/canonical_topic.h"
@@ -127,6 +128,7 @@
       content::InterestGroupManager* interest_group_manager,
       profile_metrics::BrowserProfileType profile_type,
       content::BrowsingDataRemover* browsing_data_remover,
+      HostContentSettingsMap* host_content_settings_map,
 #if !BUILDFLAG(IS_ANDROID)
       TrustSafetySentimentService* sentiment_service,
 #endif
@@ -509,6 +511,11 @@
   // so, sets the default value based on the user's current cookie settings.
   void MaybeInitializeFirstPartySetsPref();
 
+  // Checks to see if initialization of the user's anti-abuse content setting is
+  // required, and if so, sets the default value based on the user's current
+  // cookie settings.
+  void MaybeInitializeAntiAbuseContentSetting();
+
   // Updates the preferences which store the current Topics consent information.
   void RecordUpdatedTopicsConsent(
       privacy_sandbox::TopicsConsentUpdateSource source,
@@ -521,6 +528,7 @@
   raw_ptr<content::InterestGroupManager> interest_group_manager_;
   profile_metrics::BrowserProfileType profile_type_;
   raw_ptr<content::BrowsingDataRemover> browsing_data_remover_;
+  raw_ptr<HostContentSettingsMap> host_content_settings_map_;
 #if !BUILDFLAG(IS_ANDROID)
   raw_ptr<TrustSafetySentimentService> sentiment_service_;
 #endif
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_factory.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service_factory.cc
index 74af31d..8e0aac34 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service_factory.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service_factory.cc
@@ -7,11 +7,13 @@
 #include "base/memory/singleton.h"
 #include "chrome/browser/browsing_topics/browsing_topics_service_factory.h"
 #include "chrome/browser/content_settings/cookie_settings_factory.h"
+#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/first_party_sets/first_party_sets_policy_service_factory.h"
 #include "chrome/browser/privacy_sandbox/privacy_sandbox_service.h"
 #include "chrome/browser/privacy_sandbox/privacy_sandbox_settings_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/content_settings/core/browser/cookie_settings.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/profile_metrics/browser_profile_type.h"
 #include "content/public/browser/storage_partition.h"
@@ -38,6 +40,7 @@
           ProfileSelections::BuildForRegularAndIncognito()) {
   DependsOn(PrivacySandboxSettingsFactory::GetInstance());
   DependsOn(CookieSettingsFactory::GetInstance());
+  DependsOn(HostContentSettingsMapFactory::GetInstance());
   DependsOn(browsing_topics::BrowsingTopicsServiceFactory::GetInstance());
 #if !BUILDFLAG(IS_ANDROID)
   DependsOn(TrustSafetySentimentServiceFactory::GetInstance());
@@ -57,6 +60,7 @@
       (!profile->IsGuestSession() || profile->IsOffTheRecord())
           ? profile->GetBrowsingDataRemover()
           : nullptr,
+      HostContentSettingsMapFactory::GetForProfile(profile),
 #if !BUILDFLAG(IS_ANDROID)
       TrustSafetySentimentServiceFactory::GetForProfile(profile),
 #endif
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_unittest.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service_unittest.cc
index f30e67f..e8a30bba 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service_unittest.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service_unittest.cc
@@ -25,6 +25,8 @@
 #include "components/browsing_topics/test_util.h"
 #include "components/content_settings/core/browser/cookie_settings.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/common/content_settings.h"
+#include "components/content_settings/core/common/content_settings_types.h"
 #include "components/content_settings/core/common/pref_names.h"
 #include "components/content_settings/core/test/content_settings_mock_provider.h"
 #include "components/content_settings/core/test/content_settings_test_utils.h"
@@ -767,6 +769,16 @@
       prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized);
 }
 
+// Remove any user preference settings for Anti-abuse related preferences,
+// returning them to their default value.
+void ResetAntiAbuseSettings(
+    sync_preferences::TestingPrefServiceSyncable* pref_service,
+    HostContentSettingsMap* host_content_settings_map) {
+  pref_service->RemoveUserPref(prefs::kPrivacySandboxAntiAbuseInitialized);
+  host_content_settings_map->SetDefaultContentSetting(
+      ContentSettingsType::ANTI_ABUSE, CONTENT_SETTING_ALLOW);
+}
+
 std::vector<int> GetTopicsSettingsStringIdentifiers(bool did_consent,
                                                     bool has_current_topics,
                                                     bool has_blocked_topics) {
@@ -918,7 +930,7 @@
     privacy_sandbox_service_ = std::make_unique<PrivacySandboxService>(
         privacy_sandbox_settings(), cookie_settings(), profile()->GetPrefs(),
         test_interest_group_manager(), GetProfileType(),
-        browsing_data_remover(),
+        browsing_data_remover(), host_content_settings_map(),
 #if !BUILDFLAG(IS_ANDROID)
         mock_sentiment_service(),
 #endif
@@ -2834,6 +2846,60 @@
       net::SchemefulSite(GURL("https://google.de"))));
 }
 
+TEST_F(PrivacySandboxServiceTest, AntiAbuseContentSettingInit) {
+  // Check that the init of the Anti-abuse pref occurs correctly.
+  ResetAntiAbuseSettings(prefs(), host_content_settings_map());
+  prefs()->SetUserPref(
+      prefs::kCookieControlsMode,
+      std::make_unique<base::Value>(static_cast<int>(
+          content_settings::CookieControlsMode::kBlockThirdParty)));
+
+  // If the user blocks 3PC, and the pref has not been previously init, it
+  // should be.
+  ResetAntiAbuseSettings(prefs(), host_content_settings_map());
+  CreateService();
+  EXPECT_EQ(host_content_settings_map()->GetDefaultContentSetting(
+                ContentSettingsType::ANTI_ABUSE, nullptr),
+            CONTENT_SETTING_BLOCK);
+  EXPECT_TRUE(prefs()->GetBoolean(prefs::kPrivacySandboxAntiAbuseInitialized));
+
+  // Once the setting has been init, it should not be re-init, and updated user
+  // cookie settings should not impact it.
+  ResetAntiAbuseSettings(prefs(), host_content_settings_map());
+  prefs()->SetUserPref(prefs::kCookieControlsMode,
+                       std::make_unique<base::Value>(static_cast<int>(
+                           content_settings::CookieControlsMode::kOff)));
+
+  CreateService();
+  EXPECT_EQ(host_content_settings_map()->GetDefaultContentSetting(
+                ContentSettingsType::ANTI_ABUSE, nullptr),
+            CONTENT_SETTING_ALLOW);
+  EXPECT_TRUE(prefs()->GetBoolean(prefs::kPrivacySandboxAntiAbuseInitialized));
+
+  prefs()->SetUserPref(
+      prefs::kCookieControlsMode,
+      std::make_unique<base::Value>(static_cast<int>(
+          content_settings::CookieControlsMode::kBlockThirdParty)));
+  CreateService();
+  EXPECT_EQ(host_content_settings_map()->GetDefaultContentSetting(
+                ContentSettingsType::ANTI_ABUSE, nullptr),
+            CONTENT_SETTING_ALLOW);
+  EXPECT_TRUE(prefs()->GetBoolean(prefs::kPrivacySandboxAntiAbuseInitialized));
+
+  // Blocking all cookies should also init the Anti-abuse setting to blocked.
+  ResetAntiAbuseSettings(prefs(), host_content_settings_map());
+  prefs()->SetUserPref(prefs::kCookieControlsMode,
+                       std::make_unique<base::Value>(static_cast<int>(
+                           content_settings::CookieControlsMode::kOff)));
+
+  cookie_settings()->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
+  CreateService();
+  EXPECT_EQ(host_content_settings_map()->GetDefaultContentSetting(
+                ContentSettingsType::ANTI_ABUSE, nullptr),
+            CONTENT_SETTING_BLOCK);
+  EXPECT_TRUE(prefs()->GetBoolean(prefs::kPrivacySandboxAntiAbuseInitialized));
+}
+
 class PrivacySandboxServiceTestNonRegularProfile
     : public PrivacySandboxServiceTest {
   profile_metrics::BrowserProfileType GetProfileType() override {
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc
index 776fd4da9..0cc6cc5 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc
@@ -486,7 +486,7 @@
 
   performance_manager::user_tuning::UserPerformanceTuningManager::
       PreDiscardResourceUsage::CreateForWebContents(
-          null_contents.get(), tab_memory_footprint_estimate);
+          null_contents.get(), tab_memory_footprint_estimate, discard_reason);
 
   // Attach the ResourceCoordinatorTabHelper. In production code this has
   // already been attached by now due to AttachTabHelpers, but there's a long
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
index 3aa82ad..9f2a082 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
@@ -698,7 +698,7 @@
 <translation id="5655682562155942719">Секирүү буйруктары</translation>
 <translation id="56637627897541303">Текст аймагы</translation>
 <translation id="5669637233317991674">Бул сабактагы нерселерге өтүү үчүн Издөө + Оңго жебе же Издөө + Солго жебени басыңыз</translation>
-<translation id="5677240841070992068">Учурдагы жайгашкан жер</translation>
+<translation id="5677240841070992068">Учурда турган жер</translation>
 <translation id="5678161956734658133">mled</translation>
 <translation id="5681643281275621376">def</translation>
 <translation id="5682113568322255809">Белгиленген жерлер</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 af3e1d6..877ea2f 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
@@ -1081,7 +1081,7 @@
 <translation id="8446884382197647889">Saiba Mais</translation>
 <translation id="8448196839635577295">Nenhum foco atual do ChromeVox. Toque em explorar para procurar itens.</translation>
 <translation id="8455868257606149352">Máx.: <ph name="X" /></translation>
-<translation id="84575901236241018">tem chave de acesso, <ph name="KEY" /></translation>
+<translation id="84575901236241018">tem token de acesso, <ph name="KEY" /></translation>
 <translation id="8463645336674919227">A sair do erro gramatical…</translation>
 <translation id="8465573210279050749">eliminar a palavra anterior</translation>
 <translation id="847040613207937740">Não existe nenhuma caixa de verificação seguinte.</translation>
diff --git a/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.html b/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.html
index cfef50d..f273f11 100644
--- a/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.html
+++ b/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.html
@@ -115,12 +115,18 @@
         srcset="images/data_loss_warning.svg" aria-hidden="true">
     </div>
   </template>
+  <div slot="back-navigation">
+    <oobe-back-button id="backButton" on-click="onBackButtonClicked_"
+        hidden="[[!isCryptohomeRecoveryUIFlowEnabled_]]">
+    </oobe-back-button>
+  </div>
   <div slot="bottom-buttons">
     <oobe-text-button id="cancelForgot" on-click="onCancel_"
         text-key="cancel" hidden="[[!isCryptohomeRecoveryUIFlowEnabled_]]">
     </oobe-text-button>
     <oobe-text-button id="tryAgain" on-click="onTryAgainClicked_"
-        class="focus-on-show" text-key="passwordChangedTryAgain">
+        class="focus-on-show" text-key="passwordChangedTryAgain"
+        hidden="[[isCryptohomeRecoveryUIFlowEnabled_]]">
     </oobe-text-button>
     <oobe-text-button id="proceedAnyway" on-click="onProceedClicked_"
         text-key="proceedAnywayButton"
diff --git a/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.js b/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.js
index 5ea27780..138d257 100644
--- a/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.js
+++ b/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.js
@@ -215,6 +215,11 @@
   }
 
   /** @private */
+  onBackButtonClicked_() {
+    this.setUIStep(GaiaPasswordChangedUIState.PASSWORD);
+  }
+
+  /** @private */
   onAnimationFinish_() {
     this.focus();
   }
diff --git a/chrome/browser/resources/intro/lacros_app.ts b/chrome/browser/resources/intro/lacros_app.ts
index de829ec..76144af6 100644
--- a/chrome/browser/resources/intro/lacros_app.ts
+++ b/chrome/browser/resources/intro/lacros_app.ts
@@ -5,6 +5,7 @@
 import 'chrome://resources/cr_elements/cr_button/cr_button.js';
 import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
 import 'chrome://resources/cr_elements/icons.html.js';
+import './strings.m.js';
 
 import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
 import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
index 9a60bf8..ec72da2 100644
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -131,6 +131,7 @@
     "people_page/sync_controls.ts",
     "people_page/sync_encryption_options.ts",
     "people_page/sync_page.ts",
+    "privacy_page/anti_abuse_page.ts",
     "privacy_page/collapse_radio_button.ts",
     "privacy_page/cookies_page.ts",
     "privacy_page/disable_safebrowsing_dialog.ts",
diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resources/settings/icons.html
index 768d720..01ae72dd 100644
--- a/chrome/browser/resources/settings/icons.html
+++ b/chrome/browser/resources/settings/icons.html
@@ -5,6 +5,7 @@
 <iron-iconset-svg name="settings20" size="20">
   <svg>
     <defs>
+      <g id="account-attention"><path d="M15.0714 6.66667V3.5H16.5V7.38889H15.0714V6.66667ZM15.0714 9.83333H16.5V8.38889H15.0714V9.83333ZM9.71429 10.9444C11.6214 10.9444 15.4286 11.9122 15.4286 13.8333V16H4V13.8333C4 11.9122 7.80714 10.9444 9.71429 10.9444ZM9.71429 4.44444C10.472 4.44444 11.1988 4.74881 11.7346 5.29058C12.2704 5.83235 12.5714 6.56715 12.5714 7.33333C12.5714 8.09951 12.2704 8.83431 11.7346 9.37609C11.1988 9.91786 10.472 10.2222 9.71429 10.2222C8.95652 10.2222 8.2298 9.91786 7.69398 9.37609C7.15816 8.83431 6.85714 8.09951 6.85714 7.33333C6.85714 6.56715 7.15816 5.83235 7.69398 5.29058C8.2298 4.74881 8.95652 4.44444 9.71429 4.44444ZM9.71429 12.3167C7.59286 12.3167 5.35714 13.3711 5.35714 13.8333V14.6278H14.0714V13.8333C14.0714 13.3711 11.8357 12.3167 9.71429 12.3167ZM9.71429 5.81667C9.31646 5.81667 8.93493 5.97646 8.65363 6.26089C8.37232 6.54532 8.21429 6.93109 8.21429 7.33333C8.21429 7.73558 8.37232 8.12135 8.65363 8.40578C8.93493 8.69021 9.31646 8.85 9.71429 8.85C10.1121 8.85 10.4936 8.69021 10.7749 8.40578C11.0563 8.12135 11.2143 7.73558 11.2143 7.33333C11.2143 6.93109 11.0563 6.54532 10.7749 6.26089C10.4936 5.97646 10.1121 5.81667 9.71429 5.81667Z"></path></g>
       <g id="account-circle"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 1.667A8.336 8.336 0 0 0 1.667 10c0 4.6 3.733 8.333 8.333 8.333S18.333 14.6 18.333 10 14.6 1.667 10 1.667zM5.89 15.233c.359-.75 2.542-1.483 4.109-1.483 1.566 0 3.758.733 4.108 1.483A6.578 6.578 0 0 1 10 16.667a6.577 6.577 0 0 1-4.109-1.434zM10 12.083c1.216 0 4.108.492 5.3 1.942A6.625 6.625 0 0 0 16.666 10 6.676 6.676 0 0 0 10 3.333 6.676 6.676 0 0 0 3.333 10c0 1.517.517 2.908 1.367 4.025 1.191-1.45 4.083-1.942 5.3-1.942zM10 5a2.91 2.91 0 0 0-2.917 2.917A2.91 2.91 0 0 0 10 10.833a2.91 2.91 0 0 0 2.916-2.916A2.91 2.91 0 0 0 10 5zM8.75 7.917c0 .691.558 1.25 1.25 1.25.691 0 1.25-.559 1.25-1.25 0-.692-.559-1.25-1.25-1.25-.692 0-1.25.558-1.25 1.25z"></path></g>
       <g id="ads-click"><path d="M10 15q-2.083 0-3.542-1.458Q5 12.083 5 10q0-2.083 1.458-3.542Q7.917 5 10 5q2.083 0 3.542 1.458Q15 7.917 15 10l-1.521-.5q-.187-1.292-1.177-2.146Q11.312 6.5 10 6.5q-1.458 0-2.479 1.021Q6.5 8.542 6.5 10q0 1.312.854 2.302T9.5 13.479Zm.917 2.938q-.229.041-.459.052-.229.01-.458.01-1.646 0-3.104-.625-1.458-.625-2.552-1.719t-1.719-2.552Q2 11.646 2 10q0-1.667.625-3.115.625-1.447 1.719-2.541Q5.438 3.25 6.896 2.625T10 2q1.667 0 3.115.625 1.447.625 2.541 1.719 1.094 1.094 1.719 2.541Q18 8.333 18 10q0 .229-.01.458-.011.23-.032.459l-1.458-.459V10q0-2.708-1.896-4.604T10 3.5q-2.708 0-4.604 1.896T3.5 10q0 2.708 1.896 4.604T10 16.5q.104 0 .229-.01.125-.011.229-.011Zm6.166.562-3.458-3.479L12.5 18 10 10l8 2.5-2.979 1.104 3.479 3.479Z"></path></g>
       <g id="auto-delete"><path d="M6.5 5.5v10ZM9.396 17H6.5q-.625 0-1.062-.438Q5 16.125 5 15.5v-10H4V4h4V3h4v1h4v1.5h-1v3.104q-.375-.062-.75-.094-.375-.031-.75.011V5.5h-7v10h2.208q.104.396.282.771.177.375.406.729ZM8 14h.5q0-1.458.5-2.312l.5-.855V7H8Zm2.5-4.25q.292-.229.677-.469.385-.239.823-.406V7h-1.5ZM14 18q-1.667 0-2.833-1.167Q10 15.667 10 14q0-1.667 1.167-2.833Q12.333 10 14 10q1.667 0 2.833 1.167Q18 12.333 18 14q0 1.667-1.167 2.833Q15.667 18 14 18Zm1.146-2.146.708-.708-1.354-1.354V12h-1v2.208Z"></path></g>
@@ -15,6 +16,7 @@
       <g id="check-circle-outline"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.99984 1.66663C5.39984 1.66663 1.6665 5.39996 1.6665 9.99996C1.6665 14.6 5.39984 18.3333 9.99984 18.3333C14.5998 18.3333 18.3332 14.6 18.3332 9.99996C18.3332 5.39996 14.5998 1.66663 9.99984 1.66663ZM9.99984 16.6666C6.32484 16.6666 3.33317 13.675 3.33317 9.99996C3.33317 6.32496 6.32484 3.33329 9.99984 3.33329C13.6748 3.33329 16.6665 6.32496 16.6665 9.99996C16.6665 13.675 13.6748 16.6666 9.99984 16.6666ZM6.1665 9.66663L8.33317 11.8333L13.8332 6.33329L14.9998 7.49996L8.33317 14.1666L4.99984 10.8333L6.1665 9.66663Z"></path></g>
       <g id="checklist"><path d="M4.833 15.5 2 12.667l1.062-1.063 1.75 1.771 3.542-3.542 1.084 1.063Zm0-6.5L2 6.167l1.062-1.063 1.771 1.771 3.521-3.542 1.084 1.063ZM11 14v-1.5h7V14Zm0-6.5V6h7v1.5Z"></path></g>
       <g id="credit-card"><path d="M16.4,4 L3.6,4 C2.716,4 2.008,4.7271875 2.008,5.625 L2,15.375 C2,16.2728125 2.716,17 3.6,17 L16.4,17 C17.284,17 18,16.2728125 18,15.375 L18,5.625 C18,4.7271875 17.284,4 16.4,4 Z M16.5,15 L3.5,15 L3.5,10 L16.5,10 L16.5,15 Z M16.5,7 L3.5,7 L3.5,5.5 L16.5,5.5 L16.5,7 Z"></path></g>
+      <g id="dashboard"><path d="M3 10.5V4.5C3 4.08333 3.14583 3.72917 3.4375 3.4375C3.74306 3.14583 4.09722 3 4.5 3H9.25V10.5H3ZM10.75 3H15.5C15.9167 3 16.2708 3.14583 16.5625 3.4375C16.8542 3.72917 17 4.08333 17 4.5V8H10.75V3ZM10.75 17V9.5H17V15.5C17 15.9028 16.8542 16.2569 16.5625 16.5625C16.2708 16.8542 15.9167 17 15.5 17H10.75ZM3 12H9.25V17H4.5C4.09722 17 3.74306 16.8542 3.4375 16.5625C3.14583 16.2569 3 15.9028 3 15.5V12ZM4.5 9H7.75V4.5H4.5V9ZM12.25 6.5H15.5V4.5H12.25V6.5ZM12.25 11V15.5H15.5V11H12.25ZM4.5 13.5V15.5H7.75V13.5H4.5Z"></path></g>
       <g id="data"><path d="M0 0h20v20H0z" fill="none" fill-rule="evenodd"></path><path d="M6.5 7v9H4V7h2.5zm5-3v12H9V4h2.5zm5 7v5H14v-5h2.5z"></path></g>
       <g id="data-connectors-system"><path d="M10 4.16667C10.0833 4.16667 10.2333 4.18333 10.3667 4.30833L13.025 6.96667L15.675 9.60833C15.8083 9.74167 15.825 9.9 15.825 10.0167V10.0417C15.825 10.125 15.8 10.2 15.7667 10.2667C15.7583 10.2833 15.75 10.3 15.7417 10.3083C15.725 10.3333 15.7 10.3667 15.675 10.3917L10.4 15.65L10.3583 15.6917C10.2333 15.8167 10.0833 15.8333 10 15.8333C9.91667 15.8333 9.75 15.8167 9.61667 15.675L4.325 10.3833C4.18333 10.2583 4.16667 10.1 4.16667 9.99167C4.16667 9.90833 4.18333 9.75 4.31667 9.60833L6.44167 7.48333L9.60833 4.325C9.75 4.18333 9.91667 4.16667 10 4.16667ZM10 2.5C9.43333 2.5 8.86667 2.71667 8.44167 3.14167L5.275 6.3L3.15 8.425C2.70833 8.85833 2.5 9.43333 2.5 10C2.5 10.5667 2.70833 11.1417 3.14167 11.575L5.26667 13.7L8.43333 16.8583C8.86667 17.2833 9.43333 17.5 10 17.5C10.5667 17.5 11.1333 17.2833 11.5583 16.8583L16.8583 11.575C16.9667 11.4667 17.0583 11.35 17.1417 11.2333C17.1833 11.175 17.2167 11.1083 17.25 11.05C17.4167 10.7333 17.5 10.375 17.5 10.025C17.5 10.0167 17.5 10.0167 17.5 10.0083C17.5083 9.44167 17.2917 8.86667 16.8583 8.43333L11.5583 3.15C11.1333 2.71667 10.5667 2.5 10 2.5Z"></path><path d="M10 11.6667L8.33333 10L10 8.33333L11.6667 10L10 11.6667Z"></path><path d="M10.5917 7.25833C10.9167 6.93333 10.9167 6.40833 10.5917 6.08333C10.2667 5.75833 9.74167 5.75833 9.41667 6.08333C9.09167 6.40833 9.09167 6.93333 9.41667 7.25833C9.73333 7.58333 10.2667 7.58333 10.5917 7.25833Z"></path><path d="M7.25833 10.5917C7.58333 10.2667 7.58333 9.74167 7.25833 9.41667C6.93333 9.09167 6.40833 9.09167 6.08333 9.41667C5.75833 9.74167 5.75833 10.2667 6.08333 10.5917C6.4 10.9167 6.93333 10.9167 7.25833 10.5917Z"></path><path d="M10.5917 13.925C10.9167 13.6 10.9167 13.075 10.5917 12.75C10.2667 12.425 9.74167 12.425 9.41667 12.75C9.09167 13.075 9.09167 13.6 9.41667 13.925C9.73333 14.25 10.2667 14.25 10.5917 13.925Z"></path><path d="M13.925 10.5917C14.25 10.2667 14.25 9.74167 13.925 9.41667C13.6 9.09167 13.075 9.09167 12.75 9.41667C12.425 9.74167 12.425 10.2667 12.75 10.5917C13.0667 10.9167 13.6 10.9167 13.925 10.5917Z"></g>
       <g id="delete"><path d="M6.5 17q-.625 0-1.062-.438Q5 16.125 5 15.5v-10H4V4h4V3h4v1h4v1.5h-1v10q0 .625-.438 1.062Q14.125 17 13.5 17Zm7-11.5h-7v10h7ZM8 14h1.5V7H8Zm2.5 0H12V7h-1.5Zm-4-8.5v10Z"></path></g>
diff --git a/chrome/browser/resources/settings/lazy_load.ts b/chrome/browser/resources/settings/lazy_load.ts
index a3252590..8dfa2c19 100644
--- a/chrome/browser/resources/settings/lazy_load.ts
+++ b/chrome/browser/resources/settings/lazy_load.ts
@@ -15,6 +15,7 @@
 import './autofill_page/payments_section.js';
 import './clear_browsing_data_dialog/clear_browsing_data_dialog.js';
 import './search_engines_page/search_engines_page.js';
+import './privacy_page/anti_abuse_page.js';
 import './privacy_page/preloading_page.js';
 import './privacy_page/privacy_guide/privacy_guide_description_item.js';
 import './privacy_page/privacy_guide/privacy_guide_dialog.js';
@@ -155,6 +156,7 @@
 export {SettingsSyncControlsElement} from './people_page/sync_controls.js';
 export {SettingsSyncEncryptionOptionsElement} from './people_page/sync_encryption_options.js';
 export {SettingsSyncPageElement} from './people_page/sync_page.js';
+export {SettingsAntiAbusePageElement} from './privacy_page/anti_abuse_page.js';
 export {SettingsCollapseRadioButtonElement} from './privacy_page/collapse_radio_button.js';
 export {NetworkPredictionOptions, SettingsCookiesPageElement} from './privacy_page/cookies_page.js';
 export {SettingsDoNotTrackToggleElement} from './privacy_page/do_not_track_toggle.js';
diff --git a/chrome/browser/resources/settings/privacy_page/anti_abuse_page.html b/chrome/browser/resources/settings/privacy_page/anti_abuse_page.html
new file mode 100644
index 0000000..06e63ea7
--- /dev/null
+++ b/chrome/browser/resources/settings/privacy_page/anti_abuse_page.html
@@ -0,0 +1,56 @@
+<style include="settings-shared">
+  .info-container {
+    color: var(--cr-secondary-text-color);
+    display: flex;
+    padding: 10px;
+  }
+
+  .info-section {
+    flex: 1;
+  }
+
+  .info-header {
+    color: var(--google-blue-500);
+    font-weight: 500;
+    padding-inline-start: 10px;
+  }
+
+  @media (prefers-color-scheme: dark) {
+    .info-header {
+      color: var(--google-blue-300);
+    }
+  }
+
+  .info-text-container {
+    display: flex;
+    gap: 18px;
+    padding: 10px;
+  }
+</style>
+<settings-toggle-button
+    pref="{{pref_}}"
+    no-set-pref
+    label="$i18n{siteSettingsAntiAbuse}"
+    sub-label="$i18n{siteSettingsAntiAbuseDescription}"
+    on-settings-boolean-control-change="onToggleChange_">
+</settings-toggle-button>
+<div class="info-container">
+  <div class="info-section">
+    <div class="info-header">$i18n{antiAbuseWhenOnHeader}</div>
+    <div class="info-text-container">
+      <iron-icon icon="settings20:dashboard"></iron-icon>
+      <div>$i18n{antiAbuseWhenOnSectionOne}</div>
+    </div>
+    <div class="info-text-container">
+      <iron-icon icon="settings20:background-replace"></iron-icon>
+      <div>$i18n{antiAbuseWhenOnSectionTwo}</div>
+    </div>
+  </div>
+  <div class="info-section">
+    <div class="info-header">$i18n{antiAbuseThingsToConsiderHeader}</div>
+    <div class="info-text-container">
+      <iron-icon icon="settings20:account-attention"></iron-icon>
+      <div>$i18n{antiAbuseThingsToConsiderSectionOne}</div>
+    </div>
+  </div>
+</div>
\ No newline at end of file
diff --git a/chrome/browser/resources/settings/privacy_page/anti_abuse_page.ts b/chrome/browser/resources/settings/privacy_page/anti_abuse_page.ts
new file mode 100644
index 0000000..24fa032
--- /dev/null
+++ b/chrome/browser/resources/settings/privacy_page/anti_abuse_page.ts
@@ -0,0 +1,84 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'settings-anti-abuse-page' is the settings page containing anti-abuse
+ * settings.
+ */
+
+import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
+import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
+import '../controls/settings_toggle_button.js';
+import '../icons.html.js';
+import '../settings_shared.css.js';
+
+import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {SettingsToggleButtonElement} from '../controls/settings_toggle_button.js';
+import {ContentSetting, ContentSettingsTypes} from '../site_settings/constants.js';
+import {SiteSettingsMixin} from '../site_settings/site_settings_mixin.js';
+
+import {getTemplate} from './anti_abuse_page.html.js';
+
+const AntiAbuseElementBase = SiteSettingsMixin(PolymerElement);
+
+export class SettingsAntiAbusePageElement extends AntiAbuseElementBase {
+  static get is() {
+    return 'settings-anti-abuse-page';
+  }
+
+  static get template() {
+    return getTemplate();
+  }
+
+  static get properties() {
+    return {
+      /**
+       * Preference object used to keep track of the selected content setting
+       * option.
+       */
+      pref_: {
+        type: Object,
+        value() {
+          return {type: chrome.settingsPrivate.PrefType.BOOLEAN};
+        },
+      },
+    };
+  }
+
+  private pref_: chrome.settingsPrivate.PrefObject<boolean>;
+
+  override ready() {
+    super.ready();
+
+    this.initializeToggleValue_();
+  }
+
+  private async initializeToggleValue_() {
+    const defaultValue = await this.browserProxy.getDefaultValueForContentType(
+        ContentSettingsTypes.ANTI_ABUSE);
+    this.set('pref_.value', this.computeIsSettingEnabled(defaultValue.setting));
+  }
+
+  /**
+   * A handler for changing the default permission value for a the anti-abuse
+   * content type.
+   */
+  private onToggleChange_(e: Event) {
+    const target = e.target as SettingsToggleButtonElement;
+    this.browserProxy.setDefaultValueForContentType(
+        ContentSettingsTypes.ANTI_ABUSE,
+        target.checked ? ContentSetting.ALLOW : ContentSetting.BLOCK);
+  }
+}
+
+declare global {
+  interface HTMLElementTagNameMap {
+    'settings-anti-abuse-page': SettingsAntiAbusePageElement;
+  }
+}
+
+customElements.define(
+    SettingsAntiAbusePageElement.is, SettingsAntiAbusePageElement);
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
index 3575912..e5e5e60 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -533,6 +533,13 @@
           </category-setting-exceptions>
         </settings-subpage>
       </template>
+      <template is="dom-if" if="[[privateStateTokensEnabled_]]">
+        <template is="dom-if" route-path="/content/antiAbuse" no-search>
+          <settings-subpage page-title="$i18n{siteSettingsAntiAbuse}">
+            <settings-anti-abuse-page></settings-anti-abuse-page>
+          </settings-subpage>
+        </template>
+      </template>
       <template is="dom-if" route-path="/content/microphone" no-search>
         <settings-subpage page-title="$i18n{siteSettingsCategoryMicrophone}"
             search-label="$i18n{siteSettingsAllSitesSearch}"
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
index 178ceed..dba4d3a 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
@@ -175,6 +175,11 @@
         value: () => loadTimeData.getBoolean('isPrivacySandboxSettings4'),
       },
 
+      privateStateTokensEnabled_: {
+        type: Boolean,
+        value: () => loadTimeData.getBoolean('privateStateTokensEnabled'),
+      },
+
       /**
        * Whether the File System Access Persistent Permissions UI should be
        * displayed.
@@ -281,6 +286,7 @@
   private showNotificationPermissionsReview_: boolean;
   private isPrivacySandboxRestricted_: boolean;
   private isPrivacySandboxSettings4_: boolean;
+  private privateStateTokensEnabled_: boolean;
   private safetyCheckNotificationPermissionsEnabled_: boolean;
   private focusConfig_: FocusConfig;
   private searchFilter_: string;
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
index c8d4f532..9deb1bd 100644
--- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts
@@ -64,6 +64,9 @@
   // TODO(tommycli): Find a way to refactor these repetitive category
   // routes.
   r.SITE_SETTINGS_ADS = r.SITE_SETTINGS.createChild('ads');
+  if (loadTimeData.getBoolean('privateStateTokensEnabled')) {
+    r.SITE_SETTINGS_ANTI_ABUSE = r.SITE_SETTINGS.createChild('antiAbuse');
+  }
   r.SITE_SETTINGS_AR = r.SITE_SETTINGS.createChild('ar');
   r.SITE_SETTINGS_AUTOMATIC_DOWNLOADS =
       r.SITE_SETTINGS.createChild('automaticDownloads');
diff --git a/chrome/browser/resources/settings/router.ts b/chrome/browser/resources/settings/router.ts
index 5810e8fb..a1b6fb8 100644
--- a/chrome/browser/resources/settings/router.ts
+++ b/chrome/browser/resources/settings/router.ts
@@ -59,6 +59,7 @@
   SIGN_OUT: Route;
   SITE_SETTINGS: Route;
   SITE_SETTINGS_ADS: Route;
+  SITE_SETTINGS_ANTI_ABUSE: Route;
   SITE_SETTINGS_ALL: Route;
   SITE_SETTINGS_AR: Route;
   SITE_SETTINGS_AUTOMATIC_DOWNLOADS: Route;
diff --git a/chrome/browser/resources/settings/site_settings/constants.ts b/chrome/browser/resources/settings/site_settings/constants.ts
index 3e33bc32..0addb22 100644
--- a/chrome/browser/resources/settings/site_settings/constants.ts
+++ b/chrome/browser/resources/settings/site_settings/constants.ts
@@ -13,6 +13,7 @@
  */
 export enum ContentSettingsTypes {
   ADS = 'ads',
+  ANTI_ABUSE = 'anti-abuse',
   AR = 'ar',
   AUTOMATIC_DOWNLOADS = 'multiple-automatic-downloads',
   BACKGROUND_SYNC = 'background-sync',
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
index c8132ad..d455f6e 100644
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
@@ -53,6 +53,15 @@
           loadTimeData.getBoolean('enableSafeBrowsingSubresourceFilter'),
     },
     {
+      route: routes.SITE_SETTINGS_ANTI_ABUSE,
+      id: Id.ANTI_ABUSE,
+      label: 'siteSettingsAntiAbuse',
+      icon: 'settings20:account-attention',
+      enabledLabel: 'siteSettingsAntiAbuseEnabledSubLabel',
+      disabledLabel: 'siteSettingsAntiAbuseDisabledSubLabel',
+      shouldShow: () => loadTimeData.getBoolean('privateStateTokensEnabled'),
+    },
+    {
       route: routes.SITE_SETTINGS_AR,
       id: Id.AR,
       label: 'siteSettingsAr',
@@ -344,6 +353,12 @@
   return orderedList;
 }
 
+export interface SettingsSiteSettingsPageElement {
+  $: {
+    advancedContentList: HTMLElement,
+  };
+}
+
 const SettingsSiteSettingsPageElementBase = WebUiListenerMixin(PolymerElement);
 
 export class SettingsSiteSettingsPageElement extends
@@ -404,6 +419,7 @@
             ]),
             contentAdvanced: buildItemListFromIds([
               Id.SOUND,
+              Id.ANTI_ABUSE,
               Id.ADS,
               Id.ZOOM_LEVELS,
               Id.PDF_DOCUMENTS,
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page_util.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page_util.ts
index 06fdb556..e912f50 100644
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page_util.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page_util.ts
@@ -78,6 +78,7 @@
     case ContentSettingsTypes.ZOOM_LEVELS:
       return 'siteSettingsZoomLevelsMidSentence';
     // The following members do not have a mid-sentence localization.
+    case ContentSettingsTypes.ANTI_ABUSE:
     case ContentSettingsTypes.PDF_DOCUMENTS:
     case ContentSettingsTypes.PRIVATE_NETWORK_DEVICES:
     case ContentSettingsTypes.SITE_DATA:
diff --git a/chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc b/chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc
index d89f546d..0591e4f 100644
--- a/chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc
+++ b/chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc
@@ -20,24 +20,24 @@
 namespace {
 
 void OnParentPermissionDialogComplete(
-    extensions::SupervisedUserExtensionsDelegate::
-        ParentPermissionDialogDoneCallback delegate_done_callback,
+    extensions::SupervisedUserExtensionsDelegate::ExtensionApprovalDoneCallback
+        delegate_done_callback,
     ParentPermissionDialog::Result result) {
   switch (result) {
     case ParentPermissionDialog::Result::kParentPermissionReceived:
       std::move(delegate_done_callback)
           .Run(extensions::SupervisedUserExtensionsDelegate::
-                   ParentPermissionDialogResult::kParentPermissionReceived);
+                   ExtensionApprovalResult::kApproved);
       break;
     case ParentPermissionDialog::Result::kParentPermissionCanceled:
       std::move(delegate_done_callback)
           .Run(extensions::SupervisedUserExtensionsDelegate::
-                   ParentPermissionDialogResult::kParentPermissionCanceled);
+                   ExtensionApprovalResult::kCanceled);
       break;
     case ParentPermissionDialog::Result::kParentPermissionFailed:
       std::move(delegate_done_callback)
           .Run(extensions::SupervisedUserExtensionsDelegate::
-                   ParentPermissionDialogResult::kParentPermissionFailed);
+                   ExtensionApprovalResult::kFailed);
       break;
   }
 }
@@ -71,8 +71,7 @@
     const extensions::Extension& extension,
     content::BrowserContext* browser_context,
     content::WebContents* web_contents,
-    ParentPermissionDialogDoneCallback parent_permission_callback,
-    base::OnceClosure error_callback) {
+    ExtensionApprovalDoneCallback extension_approval_callback) {
   DCHECK(IsChild(browser_context));
   DCHECK(!IsExtensionAllowedByParent(extension, browser_context));
 
@@ -82,10 +81,13 @@
   if (CanInstallExtensions(browser_context)) {
     ShowParentPermissionDialogForExtension(
         extension, browser_context, web_contents,
-        std::move(parent_permission_callback));
+        std::move(extension_approval_callback));
   } else {
     ShowExtensionEnableBlockedByParentDialogForExtension(
-        extension, web_contents, std::move(error_callback));
+        extension, web_contents,
+        base::BindOnce(std::move(extension_approval_callback),
+                       SupervisedUserExtensionsDelegate::
+                           ExtensionApprovalResult::kBlocked));
   }
 }
 
@@ -101,7 +103,7 @@
         const extensions::Extension& extension,
         content::BrowserContext* context,
         content::WebContents* contents,
-        ParentPermissionDialogDoneCallback done_callback) {
+        ExtensionApprovalDoneCallback done_callback) {
   ParentPermissionDialog::DoneCallback inner_done_callback = base::BindOnce(
       &::OnParentPermissionDialogComplete, std::move(done_callback));
 
diff --git a/chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.h b/chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.h
index 98070c0..43084ca 100644
--- a/chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.h
+++ b/chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.h
@@ -30,8 +30,7 @@
       const extensions::Extension& extension,
       content::BrowserContext* browser_context,
       content::WebContents* web_contents,
-      ParentPermissionDialogDoneCallback parent_permission_callback,
-      base::OnceClosure error_callback) override;
+      ExtensionApprovalDoneCallback extension_approval_callback) override;
 
  private:
   // Returns true if |context| represents a supervised child account who may
@@ -45,7 +44,7 @@
       content::BrowserContext* context,
       content::WebContents* contents,
       extensions::SupervisedUserExtensionsDelegate::
-          ParentPermissionDialogDoneCallback done_callback);
+          ExtensionApprovalDoneCallback done_callback);
 
   // Shows a dialog indicating that |extension| has been blocked and call
   // |done_callback| when it completes.
@@ -54,6 +53,10 @@
       content::WebContents* contents,
       base::OnceClosure done_callback);
 
+  // The dialog pointer is only destroyed when a new dialog is created or the
+  // SupervisedUserExtensionsDelegate is destroyed. Therefore there can only be
+  // one dialog opened at a time and the last dialog object can have a pretty
+  // long lifetime.
   std::unique_ptr<ParentPermissionDialog> parent_permission_dialog_;
 };
 
diff --git a/chrome/browser/supervised_user/supervised_user_service.h b/chrome/browser/supervised_user/supervised_user_service.h
index f3b441f..2c4078e 100644
--- a/chrome/browser/supervised_user/supervised_user_service.h
+++ b/chrome/browser/supervised_user/supervised_user_service.h
@@ -29,7 +29,6 @@
 #include "extensions/buildflags/buildflags.h"
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/ui/supervised_user/parent_permission_dialog.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/extension_registry_observer.h"
 #include "extensions/browser/management_policy.h"
diff --git a/chrome/browser/touch_to_fill/android/BUILD.gn b/chrome/browser/touch_to_fill/android/BUILD.gn
index d809304..5c89816 100644
--- a/chrome/browser/touch_to_fill/android/BUILD.gn
+++ b/chrome/browser/touch_to_fill/android/BUILD.gn
@@ -100,6 +100,7 @@
     "//chrome/browser/flags:java",
     "//chrome/browser/touch_to_fill/android/internal:java",
     "//chrome/browser/touch_to_fill/android/internal:resource_provider_public_impl_java",
+    "//chrome/browser/touch_to_fill/common/android:java_resources",
     "//chrome/browser/ui/android/night_mode:night_mode_java_test_support",
     "//chrome/browser/util:java",
     "//chrome/test/android:chrome_java_integration_test_support",
diff --git a/chrome/browser/touch_to_fill/android/internal/BUILD.gn b/chrome/browser/touch_to_fill/android/internal/BUILD.gn
index 56dc58b..d241473 100644
--- a/chrome/browser/touch_to_fill/android/internal/BUILD.gn
+++ b/chrome/browser/touch_to_fill/android/internal/BUILD.gn
@@ -67,9 +67,9 @@
     "java/res/layout/touch_to_fill_credential_item.xml",
     "java/res/layout/touch_to_fill_credential_item_modern.xml",
     "java/res/layout/touch_to_fill_fill_button.xml",
+    "java/res/layout/touch_to_fill_footer_item.xml",
     "java/res/layout/touch_to_fill_header_item.xml",
     "java/res/layout/touch_to_fill_header_item_modern.xml",
-    "java/res/layout/touch_to_fill_sheet.xml",
     "java/res/layout/touch_to_fill_webauthn_credential_item.xml",
     "java/res/layout/touch_to_fill_webauthn_credential_item_modern.xml",
     "java/res/values/dimens.xml",
diff --git a/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_credential_item.xml b/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_credential_item.xml
index a7b303534..5206f64 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_credential_item.xml
+++ b/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_credential_item.xml
@@ -11,6 +11,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginBottom="8dp"
+    android:layout_marginHorizontal="8dp"
     android:minHeight="72dp"
     android:gravity="center_vertical"
     android:orientation="horizontal"
diff --git a/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_fill_button.xml b/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_fill_button.xml
index 0711600..67f97e2 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_fill_button.xml
+++ b/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_fill_button.xml
@@ -14,7 +14,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginTop="2dp"
-    android:layout_marginBottom="2dp"
+    android:layout_marginHorizontal="8dp"
     android:minHeight="48dp"
     android:gravity="center"
     android:background="@drawable/touch_to_fill_credential_background"
diff --git a/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_footer_item.xml b/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_footer_item.xml
new file mode 100644
index 0000000..1ebd654
--- /dev/null
+++ b/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_footer_item.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2023 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/touch_to_fill_footer"
+    android:layout_width="match_parent"
+    android:orientation="vertical"
+    android:layout_height="wrap_content"
+    android:layout_alignParentBottom="true"
+    android:layout_marginBottom="@dimen/ttf_buttons_vertical_margin"
+    android:layout_marginTop="@dimen/ttf_sheet_padding">
+
+    <!-- Divider -->
+    <View style="@style/HorizontalDivider"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/divider_height"
+        android:layout_marginBottom="@dimen/ttf_buttons_vertical_margin"/>
+
+    <TextView
+        android:id="@+id/touch_to_fill_sheet_manage_passwords"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/ttf_buttons_height"
+        android:paddingHorizontal="@dimen/ttf_sheet_padding"
+        android:minHeight="48dp"
+        android:gravity="center_vertical|start"
+        android:textAppearance="@style/TextAppearance.TextLarge.Primary"
+        android:background="?android:attr/selectableItemBackground"
+        android:textDirection="locale"
+        android:textAlignment="viewStart"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_sheet.xml b/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_sheet.xml
deleted file mode 100644
index 31dddf3f..0000000
--- a/chrome/browser/touch_to_fill/android/internal/java/res/layout/touch_to_fill_sheet.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright 2019 The Chromium Authors
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-
-<RelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_height="wrap_content"
-    android:layout_width="match_parent"
-    android:layout_marginBottom="16dp"
-    android:orientation="vertical">
-
-    <ImageView
-        android:id="@+id/drag_handlebar"
-        android:layout_alignParentTop="true"
-        android:layout_centerHorizontal="true"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginEnd="@dimen/touch_to_fill_sheet_margin_modern"
-        android:layout_marginStart="@dimen/touch_to_fill_sheet_margin_modern"
-        android:layout_marginTop="@dimen/ttf_drag_handlebar_margin"
-        android:layout_marginBottom="@dimen/ttf_drag_handlebar_margin"
-        android:importantForAccessibility="no"
-        app:srcCompat="@drawable/drag_handlebar" />
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/sheet_item_list"
-        android:layout_above="@id/touch_to_fill_footer"
-        android:layout_below="@id/drag_handlebar"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="@dimen/touch_to_fill_sheet_margin_modern"
-        android:layout_marginStart="@dimen/touch_to_fill_sheet_margin_modern"
-        android:clipToPadding="false"
-        android:paddingBottom="@dimen/touch_to_fill_sheet_bottom_padding_button_modern"
-        android:divider="@null"
-        tools:listitem="@layout/touch_to_fill_credential_item_modern"/>
-
-    <LinearLayout
-        android:id="@+id/touch_to_fill_footer"
-        android:layout_width="match_parent"
-        android:orientation="vertical"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="@dimen/ttf_buttons_vertical_margin">
-
-      <View style="@style/HorizontalDivider"
-          android:layout_width="match_parent"
-          android:layout_height="@dimen/divider_height"
-          android:layout_marginHorizontal="@dimen/ttf_divider_horizontal_margin"
-          android:layout_marginBottom="@dimen/ttf_buttons_vertical_margin"/>
-
-      <TextView
-          android:id="@+id/touch_to_fill_sheet_manage_passwords"
-          android:layout_width="match_parent"
-          android:layout_height="@dimen/ttf_buttons_height"
-          android:paddingHorizontal="@dimen/ttf_sheet_padding"
-          android:minHeight="48dp"
-          android:gravity="center_vertical|start"
-          android:textAppearance="@style/TextAppearance.TextLarge.Primary"
-          android:background="?android:attr/selectableItemBackground"
-          android:textDirection="locale"
-          android:textAlignment="viewStart"/>
-    </LinearLayout>
-</RelativeLayout>
diff --git a/chrome/browser/touch_to_fill/android/internal/java/res/values/dimens.xml b/chrome/browser/touch_to_fill/android/internal/java/res/values/dimens.xml
index 2bb54f5..8b961ee1 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/res/values/dimens.xml
+++ b/chrome/browser/touch_to_fill/android/internal/java/res/values/dimens.xml
@@ -9,7 +9,7 @@
     <dimen name="touch_to_fill_favicon_size">24dp</dimen>
     <dimen name="touch_to_fill_favicon_size_modern">32dp</dimen>
     <dimen name="touch_to_fill_sheet_margin">16dp</dimen>
-    <dimen name="touch_to_fill_sheet_margin_modern">24dp</dimen>
+    <dimen name="touch_to_fill_sheet_margin_modern">16dp</dimen>
 
     <!-- Depending on the experiments that are active we might show a call to
          action button or branding message to the users, at which point we need
diff --git a/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillMediator.java b/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillMediator.java
index 5c6e2d8..7f87c69 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillMediator.java
+++ b/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillMediator.java
@@ -9,13 +9,13 @@
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.FORMATTED_ORIGIN;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.ON_CLICK_LISTENER;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.SHOW_SUBMIT_BUTTON;
+import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties.MANAGE_BUTTON_TEXT;
+import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties.ON_CLICK_MANAGE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.FORMATTED_URL;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.IMAGE_DRAWABLE_ID;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.ORIGIN_SECURE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.SHOW_SUBMIT_SUBTITLE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.TITLE;
-import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.MANAGE_BUTTON_TEXT;
-import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.ON_CLICK_MANAGE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.SHEET_ITEMS;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.VISIBLE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.WebAuthnCredentialProperties.ON_WEBAUTHN_CLICK_LISTENER;
@@ -32,6 +32,7 @@
 import org.chromium.chrome.browser.touch_to_fill.TouchToFillComponent.UserAction;
 import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties;
 import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FaviconOrFallback;
+import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties;
 import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties;
 import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.WebAuthnCredentialProperties;
 import org.chromium.chrome.browser.touch_to_fill.data.Credential;
@@ -83,8 +84,6 @@
             List<WebAuthnCredential> webAuthnCredentials, List<Credential> credentials,
             boolean triggerSubmission) {
         assert credentials != null;
-        mModel.set(ON_CLICK_MANAGE, this::onManagePasswordSelected);
-        mModel.set(MANAGE_BUTTON_TEXT, getManageButtonText(credentials, webAuthnCredentials));
 
         TouchToFillResourceProvider resourceProvider = new TouchToFillResourceProviderImpl();
 
@@ -122,6 +121,13 @@
             requestIconOrFallbackImage(model, url);
         }
 
+        sheetItems.add(new ListItem(TouchToFillProperties.ItemType.FOOTER,
+                new PropertyModel.Builder(FooterProperties.ALL_KEYS)
+                        .with(ON_CLICK_MANAGE, this::onManagePasswordSelected)
+                        .with(MANAGE_BUTTON_TEXT,
+                                getManageButtonText(credentials, webAuthnCredentials))
+                        .build()));
+
         mModel.set(VISIBLE, true);
     }
 
diff --git a/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillProperties.java b/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillProperties.java
index 29d55d5..c1ab90f3 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillProperties.java
+++ b/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillProperties.java
@@ -31,13 +31,8 @@
             new PropertyModel.ReadableObjectPropertyKey<>("sheet_items");
     static final PropertyModel.ReadableObjectPropertyKey<Callback<Integer>> DISMISS_HANDLER =
             new PropertyModel.ReadableObjectPropertyKey<>("dismiss_handler");
-    static final PropertyModel.WritableObjectPropertyKey<Runnable> ON_CLICK_MANAGE =
-            new PropertyModel.WritableObjectPropertyKey<>("on_click_manage");
-    static final PropertyModel.WritableObjectPropertyKey<String> MANAGE_BUTTON_TEXT =
-            new PropertyModel.WritableObjectPropertyKey<>("manage_button_text");
     static PropertyModel createDefaultModel(Callback<Integer> handler) {
-        return new PropertyModel
-                .Builder(VISIBLE, SHEET_ITEMS, DISMISS_HANDLER, ON_CLICK_MANAGE, MANAGE_BUTTON_TEXT)
+        return new PropertyModel.Builder(VISIBLE, SHEET_ITEMS, DISMISS_HANDLER)
                 .with(VISIBLE, false)
                 .with(SHEET_ITEMS, new ListModel<>())
                 .with(DISMISS_HANDLER, handler)
@@ -129,8 +124,24 @@
         private HeaderProperties() {}
     }
 
+    /**
+     * Properties defined here reflect the visible state of the footer in the TouchToFill sheet for
+     * payments.
+     */
+    static class FooterProperties {
+        // TODO(crbug.com/1247698): Use ReadableBooleanPropertyKey.
+        static final PropertyModel.WritableObjectPropertyKey<Runnable> ON_CLICK_MANAGE =
+                new PropertyModel.WritableObjectPropertyKey<>("on_click_manage");
+        static final PropertyModel.WritableObjectPropertyKey<String> MANAGE_BUTTON_TEXT =
+                new PropertyModel.WritableObjectPropertyKey<>("manage_button_text");
+
+        static final PropertyKey[] ALL_KEYS = {ON_CLICK_MANAGE, MANAGE_BUTTON_TEXT};
+
+        private FooterProperties() {}
+    }
+
     @IntDef({ItemType.HEADER, ItemType.CREDENTIAL, ItemType.WEBAUTHN_CREDENTIAL,
-            ItemType.FILL_BUTTON})
+            ItemType.FILL_BUTTON, ItemType.FOOTER})
     @Retention(RetentionPolicy.SOURCE)
     @interface ItemType {
         /**
@@ -152,6 +163,11 @@
          * The fill button at the end of the sheet that filling more obvious for one suggestion.
          */
         int FILL_BUTTON = 4;
+
+        /**
+         * A footer section containing additional actions.
+         */
+        int FOOTER = 5;
     }
 
     /**
diff --git a/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillView.java b/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillView.java
index e7f13388..4cbb07f 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillView.java
+++ b/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillView.java
@@ -10,7 +10,6 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.RelativeLayout;
-import android.widget.TextView;
 
 import androidx.annotation.Px;
 import androidx.recyclerview.widget.RecyclerView;
@@ -48,6 +47,7 @@
             switch (type) {
                 case ItemType.HEADER: // Fallthrough.
                 case ItemType.FILL_BUTTON:
+                case ItemType.FOOTER:
                     return true;
                 case ItemType.CREDENTIAL: // Fallthrough.
                 case ItemType.WEBAUTHN_CREDENTIAL:
@@ -59,8 +59,10 @@
 
         @Override
         protected boolean containsFillButton(RecyclerView parent) {
-            return parent.getAdapter().getItemViewType(parent.getAdapter().getItemCount() - 1)
-                    == ItemType.FILL_BUTTON;
+            int itemCount = parent.getAdapter().getItemCount();
+            // The button will be above the footer if it's present.
+            return itemCount > 1
+                    && parent.getAdapter().getItemViewType(itemCount - 2) == ItemType.FILL_BUTTON;
         }
     }
 
@@ -82,17 +84,6 @@
         }
     }
 
-    void setOnManagePasswordClick(Runnable runnable) {
-        getContentView()
-                .findViewById(R.id.touch_to_fill_sheet_manage_passwords)
-                .setOnClickListener((v) -> runnable.run());
-    }
-
-    void setManagePasswordText(String buttonText) {
-        TextView view = getContentView().findViewById(R.id.touch_to_fill_sheet_manage_passwords);
-        view.setText(buttonText);
-    }
-
     @Override
     public int getVerticalScrollOffset() {
         return mSheetItemListView.computeVerticalScrollOffset();
@@ -124,8 +115,8 @@
     }
 
     @Override
-    protected View getFooter() {
-        return getContentView().findViewById(R.id.touch_to_fill_footer);
+    protected int getFooterId() {
+        return R.id.touch_to_fill_footer;
     }
 
     @Override
diff --git a/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillViewBinder.java b/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillViewBinder.java
index 681f59a..34e1372 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillViewBinder.java
+++ b/chrome/browser/touch_to_fill/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillViewBinder.java
@@ -11,13 +11,13 @@
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.ON_CLICK_LISTENER;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.SHOW_SUBMIT_BUTTON;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.DISMISS_HANDLER;
+import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties.MANAGE_BUTTON_TEXT;
+import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties.ON_CLICK_MANAGE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.FORMATTED_URL;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.IMAGE_DRAWABLE_ID;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.ORIGIN_SECURE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.SHOW_SUBMIT_SUBTITLE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.TITLE;
-import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.MANAGE_BUTTON_TEXT;
-import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.ON_CLICK_MANAGE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.SHEET_ITEMS;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.VISIBLE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.WebAuthnCredentialProperties.ON_WEBAUTHN_CLICK_LISTENER;
@@ -69,10 +69,6 @@
                 assert (model.get(DISMISS_HANDLER) != null);
                 model.get(DISMISS_HANDLER).onResult(BottomSheetController.StateChangeReason.NONE);
             }
-        } else if (propertyKey == ON_CLICK_MANAGE) {
-            view.setOnManagePasswordClick(model.get(ON_CLICK_MANAGE));
-        } else if (propertyKey == MANAGE_BUTTON_TEXT) {
-            view.setManagePasswordText(model.get(MANAGE_BUTTON_TEXT));
         } else if (propertyKey == SHEET_ITEMS) {
             view.setSheetItemListAdapter(
                     new RecyclerViewAdapter<>(new SimpleRecyclerViewMcp<>(model.get(SHEET_ITEMS),
@@ -116,6 +112,9 @@
                                 ? R.layout.touch_to_fill_fill_button_modern
                                 : R.layout.touch_to_fill_fill_button,
                         TouchToFillViewBinder::bindFillButtonView);
+            case ItemType.FOOTER:
+                return new TouchToFillViewHolder(parent, R.layout.touch_to_fill_footer_item,
+                        TouchToFillViewBinder::bindFooterView);
         }
         assert false : "Cannot create view for ItemType: " + itemType;
         return null;
@@ -301,5 +300,24 @@
         }
     }
 
+    /**
+     * Called whenever a property in the given model changes. It updates the given view accordingly.
+     * @param model The observed {@link PropertyModel}. Its data need to be reflected in the view.
+     * @param view The {@link View} of the header to update.
+     * @param key The {@link PropertyKey} which changed.
+     */
+    private static void bindFooterView(PropertyModel model, View view, PropertyKey key) {
+        if (key == ON_CLICK_MANAGE) {
+            view.findViewById(R.id.touch_to_fill_sheet_manage_passwords)
+                    .setOnClickListener((v) -> model.get(ON_CLICK_MANAGE).run());
+        } else if (key == MANAGE_BUTTON_TEXT) {
+            TextView managePasswordsView =
+                    view.findViewById(R.id.touch_to_fill_sheet_manage_passwords);
+            managePasswordsView.setText(model.get(MANAGE_BUTTON_TEXT));
+        } else {
+            assert false : "Unhandled update to property:" + key;
+        }
+    }
+
     private TouchToFillViewBinder() {}
 }
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb
index d759374..2b5c90dc 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb
@@ -5,7 +5,7 @@
 <translation id="1580351948163139119">Palavra-passe para <ph name="USERNAME" />.</translation>
 <translation id="1717486229951421299">Lista de credenciais a preencher com o toque aberta a meia altura.</translation>
 <translation id="2359808026110333948">Continuar</translation>
-<translation id="2364266287022099258">Usar a chave de acesso guardada?</translation>
+<translation id="2364266287022099258">Usar a token de acesso guardada?</translation>
 <translation id="3399357656427473483">Lista de credenciais a preencher com o toque.</translation>
 <translation id="3653689374478248324">Vai iniciar sessão no site <ph name="SITE_NAME" /></translation>
 <translation id="3950820424414687140">Iniciar sessão</translation>
@@ -13,7 +13,7 @@
 <translation id="4907224763885298217">Use o seu bloqueio de ecrã</translation>
 <translation id="5012523644916800014">Gerir palavras-passe e chaves de acesso</translation>
 <translation id="5441504010984421144">Lista de credenciais a preencher com o toque aberta em ecrã cheio.</translation>
-<translation id="5591247451101092906">Usar a palavra-passe ou a chave de acesso guardada?</translation>
+<translation id="5591247451101092906">Usar a palavra-passe ou a token de acesso guardada?</translation>
 <translation id="5624120631404540903">Gerir palavras-passe</translation>
 <translation id="7736236483645733578">Chave de acesso para <ph name="USERNAME" />, use o bloqueio de ecrã.</translation>
 <translation id="8891372124884726271">A lista de credenciais está fechada.</translation>
diff --git a/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillIntegrationTest.java b/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillIntegrationTest.java
index a46dae5..66a46a5 100644
--- a/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillIntegrationTest.java
+++ b/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillIntegrationTest.java
@@ -261,7 +261,8 @@
     }
 
     private RecyclerView getCredentials() {
-        return mActivityTestRule.getActivity().findViewById(R.id.sheet_item_list);
+        return mActivityTestRule.getActivity().findViewById(
+                org.chromium.chrome.browser.touch_to_fill.common.R.id.sheet_item_list);
     }
 
     private TextView getManagePasswordsButton() {
diff --git a/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillRenderTest.java b/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillRenderTest.java
index 7750f8db..272d1a2 100644
--- a/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillRenderTest.java
+++ b/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillRenderTest.java
@@ -8,11 +8,11 @@
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.FORMATTED_ORIGIN;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.ON_CLICK_LISTENER;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.SHOW_SUBMIT_BUTTON;
+import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties.MANAGE_BUTTON_TEXT;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.FORMATTED_URL;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.IMAGE_DRAWABLE_ID;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.ORIGIN_SECURE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.TITLE;
-import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.MANAGE_BUTTON_TEXT;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.SHEET_ITEMS;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.VISIBLE;
 import static org.chromium.ui.base.LocalizationUtils.setRtlForTesting;
@@ -46,6 +46,7 @@
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.night_mode.ChromeNightModeTestUtils;
 import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties;
+import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties;
 import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties;
 import org.chromium.chrome.browser.touch_to_fill.data.Credential;
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
@@ -103,7 +104,7 @@
     @Rule
     public final ChromeRenderTestRule mRenderTestRule =
             ChromeRenderTestRule.Builder.withPublicCorpus()
-                    .setRevision(5)
+                    .setRevision(6)
                     .setBugComponent(Component.UI_BROWSER_AUTOFILL)
                     .build();
 
@@ -159,10 +160,8 @@
                     org.chromium.chrome.browser.touch_to_fill.R.string
                             .touch_to_fill_sheet_uniform_title));
             mModel.get(SHEET_ITEMS).addAll(asList(buildCredentialItem(ARON)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
             addButton(ARON);
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -184,10 +183,8 @@
                     org.chromium.chrome.browser.touch_to_fill.R.string
                             .touch_to_fill_sheet_uniform_title));
             mModel.get(SHEET_ITEMS).addAll(asList(buildCredentialItem(ARON)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
             addButton(ARON);
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -213,9 +210,7 @@
             mModel.get(SHEET_ITEMS);
             mModel.get(SHEET_ITEMS)
                     .addAll(asList(buildCredentialItem(ARON), buildCredentialItem(BOB)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -239,9 +234,7 @@
             mModel.get(SHEET_ITEMS);
             mModel.get(SHEET_ITEMS)
                     .addAll(asList(buildCredentialItem(ARON), buildCredentialItem(BOB)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -264,10 +257,8 @@
                     org.chromium.chrome.browser.touch_to_fill.R.string
                             .touch_to_fill_sheet_uniform_title));
             mModel.get(SHEET_ITEMS).addAll(asList(buildCredentialItem(ARON)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
             addButton(ARON);
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -288,10 +279,8 @@
                     org.chromium.chrome.browser.touch_to_fill.R.string
                             .touch_to_fill_sheet_uniform_title));
             mModel.get(SHEET_ITEMS).addAll(asList(buildCredentialItem(ARON)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
             addButton(ARON);
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -316,9 +305,7 @@
             mModel.get(SHEET_ITEMS);
             mModel.get(SHEET_ITEMS)
                     .addAll(asList(buildCredentialItem(ARON), buildCredentialItem(BOB)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -340,9 +327,7 @@
             mModel.get(SHEET_ITEMS);
             mModel.get(SHEET_ITEMS)
                     .addAll(asList(buildCredentialItem(ARON), buildCredentialItem(BOB)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -367,9 +352,7 @@
             mModel.get(SHEET_ITEMS)
                     .addAll(asList(buildCredentialItem(ARON), buildCredentialItem(BOB),
                             buildCredentialItem(MARIAM)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -391,9 +374,7 @@
             mModel.get(SHEET_ITEMS)
                     .addAll(asList(buildCredentialItem(ARON), buildCredentialItem(BOB),
                             buildCredentialItem(MARIAM)));
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    mActivityTestRule.getActivity().getString(
-                            org.chromium.chrome.browser.touch_to_fill.R.string.manage_passwords));
+            addFooter();
             mModel.set(VISIBLE, true);
         });
 
@@ -447,4 +428,15 @@
                                 .with(SHOW_SUBMIT_BUTTON, true)
                                 .build()));
     }
+
+    private void addFooter() {
+        mModel.get(SHEET_ITEMS)
+                .add(new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.FOOTER,
+                        new PropertyModel.Builder(FooterProperties.ALL_KEYS)
+                                .with(MANAGE_BUTTON_TEXT,
+                                        mActivityTestRule.getActivity().getString(
+                                                org.chromium.chrome.browser.touch_to_fill.R.string
+                                                        .manage_passwords))
+                                .build()));
+    }
 }
diff --git a/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillViewTest.java b/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillViewTest.java
index fb2a6bc..1a78cd61 100644
--- a/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillViewTest.java
+++ b/chrome/browser/touch_to_fill/android/javatests/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillViewTest.java
@@ -18,13 +18,13 @@
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.FORMATTED_ORIGIN;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.ON_CLICK_LISTENER;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.SHOW_SUBMIT_BUTTON;
+import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties.MANAGE_BUTTON_TEXT;
+import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties.ON_CLICK_MANAGE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.FORMATTED_URL;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.IMAGE_DRAWABLE_ID;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.ORIGIN_SECURE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.SHOW_SUBMIT_SUBTITLE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.TITLE;
-import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.MANAGE_BUTTON_TEXT;
-import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.ON_CLICK_MANAGE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.SHEET_ITEMS;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.VISIBLE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.WebAuthnCredentialProperties.WEBAUTHN_CREDENTIAL;
@@ -53,6 +53,7 @@
 import org.chromium.chrome.browser.app.ChromeActivity;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
+import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties;
 import org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties;
 import org.chromium.chrome.browser.touch_to_fill.data.Credential;
 import org.chromium.chrome.browser.touch_to_fill.data.WebAuthnCredential;
@@ -68,7 +69,6 @@
 import org.chromium.ui.modelutil.MVCListAdapter;
 import org.chromium.ui.modelutil.PropertyModel;
 
-import java.util.Collections;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
@@ -87,6 +87,7 @@
     private static final WebAuthnCredential CAM = new WebAuthnCredential("Cam", "12345");
     private static final Credential NIK =
             new Credential("Nik", "***", "Nik", "group.xyz", false, true, 0);
+    private final AtomicBoolean mManageButtonClicked = new AtomicBoolean(false);
 
     @Mock
     private Callback<Integer> mDismissHandler;
@@ -120,7 +121,12 @@
     @MediumTest
     public void testVisibilityChangedByModel() {
         // After setting the visibility to true, the view should exist and be visible.
-        TestThreadUtils.runOnUiThreadBlocking(() -> mModel.set(VISIBLE, true));
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            mModel.get(SHEET_ITEMS)
+                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, true),
+                            buildFooterItem()));
+            mModel.set(VISIBLE, true);
+        });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
         assertThat(mTouchToFillView.getContentView().isShown(), is(true));
 
@@ -136,16 +142,18 @@
     public void testTitlePropagatesToView() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .add(new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
-                            new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
-                                    .with(TITLE,
-                                            getActivity().getString(
-                                                    R.string.touch_to_fill_sheet_uniform_title))
-                                    .with(FORMATTED_URL, "www.example.org")
-                                    .with(ORIGIN_SECURE, true)
-                                    .with(IMAGE_DRAWABLE_ID,
-                                            mResourceProvider.getHeaderImageDrawableId())
-                                    .build()));
+                    .addAll(asList(
+                            new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
+                                    new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
+                                            .with(TITLE,
+                                                    getActivity().getString(
+                                                            R.string.touch_to_fill_sheet_uniform_title))
+                                            .with(FORMATTED_URL, "www.example.org")
+                                            .with(ORIGIN_SECURE, true)
+                                            .with(IMAGE_DRAWABLE_ID,
+                                                    mResourceProvider.getHeaderImageDrawableId())
+                                            .build()),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -162,19 +170,19 @@
     public void testManageButtonTextPropagatesToView() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .add(new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
-                            new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
-                                    .with(TITLE,
-                                            getActivity().getString(
-                                                    R.string.touch_to_fill_sheet_uniform_title))
-                                    .with(FORMATTED_URL, "www.example.org")
-                                    .with(ORIGIN_SECURE, true)
-                                    .with(IMAGE_DRAWABLE_ID,
-                                            mResourceProvider.getHeaderImageDrawableId())
-                                    .build()));
+                    .addAll(asList(
+                            new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
+                                    new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
+                                            .with(TITLE,
+                                                    getActivity().getString(
+                                                            R.string.touch_to_fill_sheet_uniform_title))
+                                            .with(FORMATTED_URL, "www.example.org")
+                                            .with(ORIGIN_SECURE, true)
+                                            .with(IMAGE_DRAWABLE_ID,
+                                                    mResourceProvider.getHeaderImageDrawableId())
+                                            .build()),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
-            mModel.set(MANAGE_BUTTON_TEXT,
-                    getActivity().getString(R.string.manage_passwords_and_passkeys));
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
         TextView manageButtonText = mTouchToFillView.getContentView().findViewById(
@@ -189,13 +197,15 @@
     public void testSecureSubtitleUrlDisplayed() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .add(new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
-                            new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
-                                    .with(FORMATTED_URL, "www.example.org")
-                                    .with(ORIGIN_SECURE, true)
-                                    .with(IMAGE_DRAWABLE_ID,
-                                            mResourceProvider.getHeaderImageDrawableId())
-                                    .build()));
+                    .addAll(asList(
+                            new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
+                                    new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
+                                            .with(FORMATTED_URL, "www.example.org")
+                                            .with(ORIGIN_SECURE, true)
+                                            .with(IMAGE_DRAWABLE_ID,
+                                                    mResourceProvider.getHeaderImageDrawableId())
+                                            .build()),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -210,13 +220,15 @@
     public void testNonSecureSubtitleUrlDisplayed() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .add(new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
-                            new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
-                                    .with(FORMATTED_URL, "m.example.org")
-                                    .with(ORIGIN_SECURE, false)
-                                    .with(IMAGE_DRAWABLE_ID,
-                                            mResourceProvider.getHeaderImageDrawableId())
-                                    .build()));
+                    .addAll(asList(
+                            new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
+                                    new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
+                                            .with(FORMATTED_URL, "m.example.org")
+                                            .with(ORIGIN_SECURE, false)
+                                            .with(IMAGE_DRAWABLE_ID,
+                                                    mResourceProvider.getHeaderImageDrawableId())
+                                            .build()),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -231,14 +243,16 @@
     public void testSubmissionSubtitleUrlDisplayed() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .add(new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
-                            new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
-                                    .with(SHOW_SUBMIT_SUBTITLE, true)
-                                    .with(FORMATTED_URL, "m.example.org")
-                                    .with(ORIGIN_SECURE, true)
-                                    .with(IMAGE_DRAWABLE_ID,
-                                            mResourceProvider.getHeaderImageDrawableId())
-                                    .build()));
+                    .addAll(asList(
+                            new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
+                                    new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
+                                            .with(SHOW_SUBMIT_SUBTITLE, true)
+                                            .with(FORMATTED_URL, "m.example.org")
+                                            .with(ORIGIN_SECURE, true)
+                                            .with(IMAGE_DRAWABLE_ID,
+                                                    mResourceProvider.getHeaderImageDrawableId())
+                                            .build()),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -253,14 +267,16 @@
     public void testNonSecureSubmissionSubtitleUrlDisplayed() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .add(new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
-                            new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
-                                    .with(SHOW_SUBMIT_SUBTITLE, true)
-                                    .with(FORMATTED_URL, "m.example.org")
-                                    .with(ORIGIN_SECURE, false)
-                                    .with(IMAGE_DRAWABLE_ID,
-                                            mResourceProvider.getHeaderImageDrawableId())
-                                    .build()));
+                    .addAll(asList(
+                            new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.HEADER,
+                                    new PropertyModel.Builder(HeaderProperties.ALL_KEYS)
+                                            .with(SHOW_SUBMIT_SUBTITLE, true)
+                                            .with(FORMATTED_URL, "m.example.org")
+                                            .with(ORIGIN_SECURE, false)
+                                            .with(IMAGE_DRAWABLE_ID,
+                                                    mResourceProvider.getHeaderImageDrawableId())
+                                            .build()),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -274,10 +290,11 @@
     @MediumTest
     public void testCredentialsChangedByModel() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
+            mModel.get(SHEET_ITEMS).add(buildCredentialItem(ANA));
             mTouchToFillView.setVisible(true);
             mModel.get(SHEET_ITEMS)
-                    .addAll(asList(buildCredentialItem(ANA), buildCredentialItem(NO_ONE),
-                            buildCredentialItem(BOB), buildCredentialItem(NIK)));
+                    .addAll(asList(buildCredentialItem(NO_ONE), buildCredentialItem(BOB),
+                            buildCredentialItem(NIK)));
         });
 
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -311,7 +328,7 @@
     @MediumTest
     public void testCredentialsAreClickable() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
-            mModel.get(SHEET_ITEMS).addAll(Collections.singletonList(buildCredentialItem(ANA)));
+            mModel.get(SHEET_ITEMS).addAll(asList(buildCredentialItem(ANA), buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -328,7 +345,8 @@
     public void testSingleCredentialHasClickableButton() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, false)));
+                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, false),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -348,7 +366,7 @@
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
                     .addAll(asList(buildCredentialItem(ANA),
-                            buildConfirmationButton(ANA, showSubmitButton)));
+                            buildConfirmationButton(ANA, showSubmitButton), buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -364,7 +382,8 @@
     public void testButtonTitle() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, true)));
+                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, true),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -378,9 +397,10 @@
     @Test
     @MediumTest
     public void testManagePasswordsIsClickable() {
-        final AtomicBoolean manageButtonClicked = new AtomicBoolean(false);
         TestThreadUtils.runOnUiThreadBlocking(() -> {
-            mModel.set(ON_CLICK_MANAGE, () -> manageButtonClicked.set(true));
+            mModel.get(SHEET_ITEMS)
+                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, true),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
@@ -395,13 +415,18 @@
                 R.id.touch_to_fill_sheet_manage_passwords);
         TouchCommon.singleClickView(manageButton);
 
-        pollUiThread(manageButtonClicked::get);
+        pollUiThread(mManageButtonClicked::get);
     }
 
     @Test
     @MediumTest
     public void testDismissesWhenHidden() {
-        TestThreadUtils.runOnUiThreadBlocking(() -> mModel.set(VISIBLE, true));
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            mModel.get(SHEET_ITEMS)
+                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, true),
+                            buildFooterItem()));
+            mModel.set(VISIBLE, true);
+        });
         BottomSheetTestSupport.waitForOpen(mBottomSheetController);
         TestThreadUtils.runOnUiThreadBlocking(() -> mModel.set(VISIBLE, false));
         pollUiThread(() -> getBottomSheetState() == BottomSheetController.SheetState.HIDDEN);
@@ -412,7 +437,9 @@
     @MediumTest
     public void testPasswordCredentialAccessibilityDescription() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
-            mModel.get(SHEET_ITEMS).addAll(Collections.singletonList(buildCredentialItem(ANA)));
+            mModel.get(SHEET_ITEMS)
+                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, true),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
 
@@ -430,7 +457,7 @@
     public void testPasskeyCredentialAccessibilityDescription() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .addAll(Collections.singletonList(buildWebAuthnCredentialItem(CAM)));
+                    .addAll(asList(buildWebAuthnCredentialItem(CAM), buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
 
@@ -469,7 +496,8 @@
     public void testSheetStartsWithHalfHeight() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             mModel.get(SHEET_ITEMS)
-                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, true)));
+                    .addAll(asList(buildCredentialItem(ANA), buildConfirmationButton(ANA, true),
+                            buildFooterItem()));
             mModel.set(VISIBLE, true);
         });
 
@@ -488,7 +516,8 @@
     }
 
     private RecyclerView getCredentials() {
-        return mTouchToFillView.getContentView().findViewById(R.id.sheet_item_list);
+        return mTouchToFillView.getContentView().findViewById(
+                org.chromium.chrome.browser.touch_to_fill.common.R.id.sheet_item_list);
     }
 
     private TextView getCredentialNameAt(int index) {
@@ -538,4 +567,15 @@
                         .with(SHOW_SUBMIT_BUTTON, showSubmitButton)
                         .build());
     }
+
+    private MVCListAdapter.ListItem buildFooterItem() {
+        return new MVCListAdapter.ListItem(TouchToFillProperties.ItemType.FOOTER,
+                new PropertyModel.Builder(FooterProperties.ALL_KEYS)
+                        .with(MANAGE_BUTTON_TEXT,
+                                mActivityTestRule.getActivity().getString(
+                                        org.chromium.chrome.browser.touch_to_fill.R.string
+                                                .manage_passwords_and_passkeys))
+                        .with(ON_CLICK_MANAGE, () -> mManageButtonClicked.set(true))
+                        .build());
+    }
 }
diff --git a/chrome/browser/touch_to_fill/android/junit/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillControllerTest.java b/chrome/browser/touch_to_fill/android/junit/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillControllerTest.java
index 2236743d..509cc58 100644
--- a/chrome/browser/touch_to_fill/android/junit/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillControllerTest.java
+++ b/chrome/browser/touch_to_fill/android/junit/src/org/chromium/chrome/browser/touch_to_fill/TouchToFillControllerTest.java
@@ -21,13 +21,13 @@
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.ON_CLICK_LISTENER;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.CredentialProperties.SHOW_SUBMIT_BUTTON;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.DISMISS_HANDLER;
+import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties.MANAGE_BUTTON_TEXT;
+import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.FooterProperties.ON_CLICK_MANAGE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.FORMATTED_URL;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.IMAGE_DRAWABLE_ID;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.ORIGIN_SECURE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.SHOW_SUBMIT_SUBTITLE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.HeaderProperties.TITLE;
-import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.MANAGE_BUTTON_TEXT;
-import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.ON_CLICK_MANAGE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.SHEET_ITEMS;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.VISIBLE;
 import static org.chromium.chrome.browser.touch_to_fill.TouchToFillProperties.WebAuthnCredentialProperties.ON_WEBAUTHN_CLICK_LISTENER;
@@ -148,9 +148,9 @@
         mMediator.showCredentials(
                 TEST_URL, true, Collections.emptyList(), Arrays.asList(ANA, CARL), true);
         ListModel<MVCListAdapter.ListItem> itemList = mModel.get(SHEET_ITEMS);
-        assertThat(itemList.size(), is(3)); // Header + 2 credentials
-        assertThat(
-                mModel.get(MANAGE_BUTTON_TEXT), is(mContext.getString(R.string.manage_passwords)));
+        assertThat(itemList.size(), is(4)); // Header + 2 credentials + footer.
+        assertThat(itemList.get(itemList.size() - 1).model.get(MANAGE_BUTTON_TEXT),
+                is(mContext.getString(R.string.manage_passwords)));
 
         assertThat(itemList.get(0).type, is(ItemType.HEADER));
         assertThat(itemList.get(0).model.get(TITLE),
@@ -179,9 +179,9 @@
         mMediator.showCredentials(
                 TEST_URL, true, Collections.emptyList(), Arrays.asList(ANA), false);
         ListModel<MVCListAdapter.ListItem> itemList = mModel.get(SHEET_ITEMS);
-        assertThat(itemList.size(), is(3)); // Header + 1 credential + Button
-        assertThat(
-                mModel.get(MANAGE_BUTTON_TEXT), is(mContext.getString(R.string.manage_passwords)));
+        assertThat(itemList.size(), is(4)); // Header + 1 credential + Button + Footer.
+        assertThat(itemList.get(itemList.size() - 1).model.get(MANAGE_BUTTON_TEXT),
+                is(mContext.getString(R.string.manage_passwords)));
 
         assertThat(itemList.get(0).type, is(ItemType.HEADER));
         assertThat(itemList.get(0).model.get(TITLE),
@@ -205,9 +205,9 @@
         mMediator.showCredentials(
                 TEST_URL, true, Arrays.asList(DINO), Collections.emptyList(), false);
         ListModel<MVCListAdapter.ListItem> itemList = mModel.get(SHEET_ITEMS);
-        assertThat(itemList.size(), is(3)); // Header + 1 credential + Button
-        assertThat(
-                mModel.get(MANAGE_BUTTON_TEXT), is(mContext.getString(R.string.manage_passkeys)));
+        assertThat(itemList.size(), is(4)); // Header + 1 credential + Button + Footer.
+        assertThat(itemList.get(itemList.size() - 1).model.get(MANAGE_BUTTON_TEXT),
+                is(mContext.getString(R.string.manage_passkeys)));
 
         assertThat(itemList.get(0).type, is(ItemType.HEADER));
         assertThat(itemList.get(0).model.get(TITLE),
@@ -226,9 +226,9 @@
     public void testShowCredentialsWithWebAuthnAndPasswordEntries() {
         mMediator.showCredentials(TEST_URL, true, Arrays.asList(DINO), Arrays.asList(ANA), false);
         ListModel<MVCListAdapter.ListItem> itemList = mModel.get(SHEET_ITEMS);
-        assertThat(
-                itemList.size(), is(3)); // Header + 1 webauthn credential + 1 password credential
-        assertThat(mModel.get(MANAGE_BUTTON_TEXT),
+        // Header + 1 webauthn credential + 1 password credential + Footer.
+        assertThat(itemList.size(), is(4));
+        assertThat(itemList.get(itemList.size() - 1).model.get(MANAGE_BUTTON_TEXT),
                 is(mContext.getString(R.string.manage_passwords_and_passkeys)));
 
         assertThat(itemList.get(0).type, is(ItemType.HEADER));
@@ -251,9 +251,9 @@
         mMediator.showCredentials(
                 TEST_URL, true, Collections.emptyList(), Arrays.asList(ANA), true);
         ListModel<MVCListAdapter.ListItem> itemList = mModel.get(SHEET_ITEMS);
-        assertThat(itemList.size(), is(3)); // Header + 1 credential + Button
-        assertThat(
-                mModel.get(MANAGE_BUTTON_TEXT), is(mContext.getString(R.string.manage_passwords)));
+        assertThat(itemList.size(), is(4)); // Header + 1 credential + Button + Footer.
+        assertThat(itemList.get(itemList.size() - 1).model.get(MANAGE_BUTTON_TEXT),
+                is(mContext.getString(R.string.manage_passwords)));
 
         assertThat(itemList.get(0).type, is(ItemType.HEADER));
         assertThat(itemList.get(0).model.get(SHOW_SUBMIT_SUBTITLE), is(true));
@@ -268,7 +268,7 @@
         mMediator.showCredentials(
                 TEST_URL, true, Collections.emptyList(), Arrays.asList(ANA, CARL, BOB), false);
         ListModel<MVCListAdapter.ListItem> itemList = mModel.get(SHEET_ITEMS);
-        assertThat(itemList.size(), is(4)); // Header + three Credentials
+        assertThat(itemList.size(), is(5)); // Header + 3 Credentials + Footer.
         assertThat(itemList.get(1).type, is(ItemType.CREDENTIAL));
         assertThat(itemList.get(1).model.get(CREDENTIAL), is(ANA));
         assertThat(itemList.get(1).model.get(FAVICON_OR_FALLBACK), is(nullValue()));
@@ -293,7 +293,7 @@
         mMediator.showCredentials(
                 TEST_URL, true, Collections.emptyList(), Collections.singletonList(CARL), false);
         ListModel<MVCListAdapter.ListItem> itemList = mModel.get(SHEET_ITEMS);
-        assertThat(itemList.size(), is(3)); // Header + Credential + Continue Button
+        assertThat(itemList.size(), is(4)); // Header + Credential + Continue Button + Footer.
         assertThat(itemList.get(1).type, is(ItemType.CREDENTIAL));
         assertThat(itemList.get(1).model.get(CREDENTIAL), is(CARL));
         assertThat(itemList.get(1).model.get(FAVICON_OR_FALLBACK), is(nullValue()));
@@ -320,7 +320,7 @@
     public void testShowCredentialsFormatPslOrigins() {
         mMediator.showCredentials(
                 TEST_URL, true, Collections.emptyList(), Arrays.asList(ANA, BOB), false);
-        assertThat(mModel.get(SHEET_ITEMS).size(), is(3)); // Header + two Credentials
+        assertThat(mModel.get(SHEET_ITEMS).size(), is(4)); // Header + 2 Credentials + Footer.
         assertThat(mModel.get(SHEET_ITEMS).get(1).type, is(ItemType.CREDENTIAL));
         assertThat(mModel.get(SHEET_ITEMS).get(1).model.get(FORMATTED_ORIGIN),
                 is(format(ANA.getOriginUrl())));
@@ -335,7 +335,7 @@
         mMediator.showCredentials(
                 TEST_URL, true, Collections.emptyList(), Collections.singletonList(ANA), false);
         ListModel<MVCListAdapter.ListItem> itemList = mModel.get(SHEET_ITEMS);
-        assertThat(itemList.size(), is(3)); // Header + Credential + Continue Button
+        assertThat(itemList.size(), is(4)); // Header + Credential + Continue Button + Footer.
         assertThat(itemList.get(1).type, is(ItemType.CREDENTIAL));
         assertThat(itemList.get(1).model.get(CREDENTIAL), is(ANA));
         assertThat(itemList.get(1).model.get(FAVICON_OR_FALLBACK), is(nullValue()));
@@ -344,7 +344,7 @@
         mMediator.showCredentials(
                 TEST_URL, true, Collections.emptyList(), Collections.singletonList(BOB), false);
         itemList = mModel.get(SHEET_ITEMS);
-        assertThat(itemList.size(), is(3)); // Header + Credential + Continue Button
+        assertThat(itemList.size(), is(4)); // Header + Credential + Continue Button + Footer.
         assertThat(itemList.get(1).type, is(ItemType.CREDENTIAL));
         assertThat(itemList.get(1).model.get(CREDENTIAL), is(BOB));
         assertThat(itemList.get(1).model.get(FAVICON_OR_FALLBACK), is(nullValue()));
@@ -420,8 +420,10 @@
     public void testHidesWhenSelectingManagePasswords() {
         mMediator.showCredentials(
                 TEST_URL, true, Collections.emptyList(), Arrays.asList(ANA, CARL, BOB), false);
-        assertThat(mModel.get(ON_CLICK_MANAGE), is(notNullValue()));
-        mModel.get(ON_CLICK_MANAGE).run();
+        ListModel<MVCListAdapter.ListItem> itemList = mModel.get(SHEET_ITEMS);
+        assertThat(
+                itemList.get(itemList.size() - 1).model.get(ON_CLICK_MANAGE), is(notNullValue()));
+        itemList.get(itemList.size() - 1).model.get(ON_CLICK_MANAGE).run();
         verify(mMockDelegate).onManagePasswordsSelected();
         assertThat(mModel.get(VISIBLE), is(false));
         assertThat(RecordHistogram.getHistogramValueCountForTesting(
diff --git a/chrome/browser/touch_to_fill/common/android/BUILD.gn b/chrome/browser/touch_to_fill/common/android/BUILD.gn
index f072eeb8..c910663 100644
--- a/chrome/browser/touch_to_fill/common/android/BUILD.gn
+++ b/chrome/browser/touch_to_fill/common/android/BUILD.gn
@@ -13,6 +13,7 @@
     "java/res/drawable/touch_to_fill_credential_background_modern_rounded_down.xml",
     "java/res/drawable/touch_to_fill_credential_background_modern_rounded_up.xml",
     "java/res/layout/touch_to_fill_fill_button_modern.xml",
+    "java/res/layout/touch_to_fill_sheet.xml",
     "java/res/values/dimens.xml",
   ]
 }
diff --git a/chrome/browser/touch_to_fill/common/android/java/res/layout/touch_to_fill_fill_button_modern.xml b/chrome/browser/touch_to_fill/common/android/java/res/layout/touch_to_fill_fill_button_modern.xml
index 9c51cbe..fd6f5ac 100644
--- a/chrome/browser/touch_to_fill/common/android/java/res/layout/touch_to_fill_fill_button_modern.xml
+++ b/chrome/browser/touch_to_fill/common/android/java/res/layout/touch_to_fill_fill_button_modern.xml
@@ -14,7 +14,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginTop="18dp"
-    android:layout_marginBottom="2dp"
+    android:layout_marginHorizontal="8dp"
     android:minHeight="48dp"
     android:gravity="center"
     android:background="@drawable/touch_to_fill_credential_background"
diff --git a/chrome/browser/touch_to_fill/common/android/java/res/layout/touch_to_fill_sheet.xml b/chrome/browser/touch_to_fill/common/android/java/res/layout/touch_to_fill_sheet.xml
new file mode 100644
index 0000000..5045c6a
--- /dev/null
+++ b/chrome/browser/touch_to_fill/common/android/java/res/layout/touch_to_fill_sheet.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2019 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_height="wrap_content"
+    android:layout_width="match_parent"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/drag_handlebar"
+        android:layout_alignParentTop="true"
+        android:layout_centerHorizontal="true"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginEnd="@dimen/touch_to_fill_sheet_margin_modern"
+        android:layout_marginStart="@dimen/touch_to_fill_sheet_margin_modern"
+        android:layout_marginTop="@dimen/ttf_drag_handlebar_margin"
+        android:layout_marginBottom="@dimen/ttf_drag_handlebar_margin"
+        android:importantForAccessibility="no"
+        app:srcCompat="@drawable/drag_handlebar" />
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/sheet_item_list"
+        android:layout_below="@id/drag_handlebar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="@dimen/touch_to_fill_sheet_margin_modern"
+        android:layout_marginStart="@dimen/touch_to_fill_sheet_margin_modern"
+        android:clipToPadding="false"
+        android:divider="@null"
+        tools:listitem="@layout/touch_to_fill_credential_item_modern"/>
+</RelativeLayout>
diff --git a/chrome/browser/touch_to_fill/common/android/java/res/values/dimens.xml b/chrome/browser/touch_to_fill/common/android/java/res/values/dimens.xml
index 3621219..f08b135 100644
--- a/chrome/browser/touch_to_fill/common/android/java/res/values/dimens.xml
+++ b/chrome/browser/touch_to_fill/common/android/java/res/values/dimens.xml
@@ -7,7 +7,6 @@
 
 <resources>
     <dimen name="ttf_drag_handlebar_margin">6dp</dimen>
-    <dimen name="ttf_divider_horizontal_margin">16dp</dimen>
     <dimen name="ttf_buttons_vertical_margin">4dp</dimen>
     <dimen name="ttf_buttons_height">56dp</dimen>
     <dimen name="ttf_sheet_padding">22dp</dimen>
diff --git a/chrome/browser/touch_to_fill/common/android/java/src/org/chromium/chrome/browser/touch_to_fill/common/ItemDividerBase.java b/chrome/browser/touch_to_fill/common/android/java/src/org/chromium/chrome/browser/touch_to_fill/common/ItemDividerBase.java
index 1b01f05..62a9638 100644
--- a/chrome/browser/touch_to_fill/common/android/java/src/org/chromium/chrome/browser/touch_to_fill/common/ItemDividerBase.java
+++ b/chrome/browser/touch_to_fill/common/android/java/src/org/chromium/chrome/browser/touch_to_fill/common/ItemDividerBase.java
@@ -34,12 +34,12 @@
         if (containsFillButton) { // Round all the corners of the only item.
             return R.drawable.touch_to_fill_credential_background_modern_rounded_all;
         }
+        if (position == itemCount - 1) { // Round the bottom of the last suggestion item.
+            return R.drawable.touch_to_fill_credential_background_modern_rounded_down;
+        }
         if (position == 1) { // Round the top of the first item.
             return R.drawable.touch_to_fill_credential_background_modern_rounded_up;
         }
-        if (position == itemCount - 1) { // Round the bottom of the last item.
-            return R.drawable.touch_to_fill_credential_background_modern_rounded_down;
-        }
         // The rest of the items have a background with no rounded edges.
         return R.drawable.touch_to_fill_credential_background_modern;
     }
@@ -52,13 +52,23 @@
      */
     @Override
     public void onDraw(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
+        int itemCount = parent.getAdapter().getItemCount();
+        if (itemCount > 1
+                && shouldSkipItemType(parent.getAdapter().getItemViewType(itemCount - 2))) {
+            // Avoid counting the button item.
+            itemCount = itemCount - 1;
+        }
+        if (itemCount > 0
+                && shouldSkipItemType(parent.getAdapter().getItemViewType(itemCount - 1))) {
+            // Avoid counting the footer item.
+            itemCount = itemCount - 1;
+        }
         for (int posInView = 0; posInView < parent.getChildCount(); posInView++) {
             View child = parent.getChildAt(posInView);
             int posInAdapter = parent.getChildAdapterPosition(child);
             if (shouldSkipItemType(parent.getAdapter().getItemViewType(posInAdapter))) continue;
             child.setBackground(AppCompatResources.getDrawable(mContext,
-                    selectBackgroundDrawable(posInAdapter, containsFillButton(parent),
-                            parent.getAdapter().getItemCount())));
+                    selectBackgroundDrawable(posInAdapter, containsFillButton(parent), itemCount)));
         }
     }
 
diff --git a/chrome/browser/touch_to_fill/common/android/java/src/org/chromium/chrome/browser/touch_to_fill/common/TouchToFillViewBase.java b/chrome/browser/touch_to_fill/common/android/java/src/org/chromium/chrome/browser/touch_to_fill/common/TouchToFillViewBase.java
index 9991795..87e747c 100644
--- a/chrome/browser/touch_to_fill/common/android/java/src/org/chromium/chrome/browser/touch_to_fill/common/TouchToFillViewBase.java
+++ b/chrome/browser/touch_to_fill/common/android/java/src/org/chromium/chrome/browser/touch_to_fill/common/TouchToFillViewBase.java
@@ -62,9 +62,9 @@
 
     /**
      * Used to access the footer to measure it.
-     * @return the {@link View} containing footer items in the {@link BottomSheet}.
+     * @return the id of the {@link View} containing footer items in the {@link BottomSheet}.
      */
-    protected abstract View getFooter();
+    protected abstract int getFooterId();
 
     /**
      * Used to access the list of suggestions to measure it.
@@ -127,7 +127,7 @@
      */
     public boolean setVisible(boolean isVisible) {
         if (isVisible) {
-            remeasure(false);
+            remeasure();
             mBottomSheetController.addObserver(mBottomSheetObserver);
             if (!mBottomSheetController.requestShowContent(this, true)) {
                 mBottomSheetController.removeObserver(mBottomSheetObserver);
@@ -149,7 +149,7 @@
     }
 
     /**
-     * Returns the height of the full state. Must show the footer items permanently. For up to three
+     * Returns the height of the full state. Must show the footer items permanently. For up to four
      * suggestions, the sheet usually cannot fill the screen.
      *
      * @return the full state height in pixels. Never 0. Can theoretically exceed the screen height.
@@ -164,8 +164,7 @@
         if (requiredMaxHeight <= mBottomSheetController.getContainerHeight()) {
             return requiredMaxHeight;
         }
-        // If the footer would move off-screen, make it sticky and update the layout.
-        remeasure(true);
+        remeasure();
         ViewUtils.requestLayout(mContentView, "TouchToFillView.getMaximumSheetHeightPx");
         return getHeightWhenFullyExtendedPx();
     }
@@ -182,22 +181,25 @@
             // TODO(crbug.com/1330933): Assert this condition in setVisible. Should never happen.
             return BottomSheetContent.HeightMode.DEFAULT;
         }
-        return getHeightWithMarginsPx(getHandlebar(), false)
+        int height = getHeightWithMarginsPx(getHandlebar(), false)
                 + getSheetItemListHeightWithMarginsPx(true);
+        View footer = mSheetItemListView.findViewById(getFooterId());
+        if (footer != null) {
+            if (footer.getMeasuredHeight() == 0) {
+                // This can happen when bottom sheet container layout changes, apparently causing
+                // the footer layout to be invalidated. Measure the content view again.
+                remeasure();
+                ViewUtils.requestLayout(footer, "TouchToFillView.getHeightWhenFullyExtendedPx");
+            }
+            height -= getHeightWithMarginsPx(footer, false);
+        }
+        return height;
     }
 
     private @Px int getHeightWhenFullyExtendedPx() {
         assert mContentView.getMeasuredHeight() > 0 : "ContentView hasn't been measured.";
         int height = getHeightWithMarginsPx(getHandlebar(), false)
                 + getSheetItemListHeightWithMarginsPx(false);
-        View footer = getFooter();
-        if (footer.getMeasuredHeight() == 0) {
-            // This can happen when bottom sheet container layout changes, apparently causing
-            // the footer layout to be invalidated. Measure the content view again.
-            remeasure(true);
-            ViewUtils.requestLayout(footer, "TouchToFillView.getHeightWhenFullyExtendedPx");
-        }
-        height += getHeightWithMarginsPx(footer, false);
         return height;
     }
 
@@ -216,8 +218,6 @@
             }
             totalHeight += getHeightWithMarginsPx(child, false);
         }
-        // Since the last element is fully visible, add the conclusive margin.
-        totalHeight += getConclusiveMarginHeightPx();
         return totalHeight;
     }
 
@@ -238,22 +238,10 @@
 
     /**
      * Measures the content of the bottom sheet.
-     * @param useStickyFooter indicates if the footer should be shown permanently.
      */
-    protected void remeasure(boolean useStickyFooter) {
-        RelativeLayout.LayoutParams footerLayoutParams =
-                (RelativeLayout.LayoutParams) getFooter().getLayoutParams();
+    protected void remeasure() {
         RelativeLayout.LayoutParams sheetItemListLayoutParams =
                 (RelativeLayout.LayoutParams) mSheetItemListView.getLayoutParams();
-        if (useStickyFooter) {
-            sheetItemListLayoutParams.addRule(RelativeLayout.ABOVE, getFooter().getId());
-            footerLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
-            footerLayoutParams.removeRule(RelativeLayout.BELOW);
-        } else {
-            sheetItemListLayoutParams.removeRule(RelativeLayout.ABOVE);
-            footerLayoutParams.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
-            footerLayoutParams.addRule(RelativeLayout.BELOW, getItemList().getId());
-        }
         mContentView.measure(
                 View.MeasureSpec.makeMeasureSpec(getInsetDisplayWidthPx(), MeasureSpec.AT_MOST),
                 MeasureSpec.UNSPECIFIED);
@@ -313,9 +301,11 @@
 
     @Override
     public float getHalfHeightRatio() {
+        // TODO(crbug.com/1247698): Fix the half height for the case of more than 3 listed items.
         // Disable the half state when TalkBack is on.
         if (ChromeAccessibilityUtil.get().isTouchExplorationEnabled()) return HeightMode.DISABLED;
-        return Math.min(getDesiredSheetHeightPx(), mBottomSheetController.getContainerHeight())
+        return Math.min(getDesiredSheetHeightPx() + getConclusiveMarginHeightPx(),
+                       mBottomSheetController.getContainerHeight())
                 / (float) mBottomSheetController.getContainerHeight();
     }
 
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/BUILD.gn b/chrome/browser/touch_to_fill/payments/android/internal/BUILD.gn
index 33e13d5..3836a63 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/BUILD.gn
+++ b/chrome/browser/touch_to_fill/payments/android/internal/BUILD.gn
@@ -43,8 +43,8 @@
 
 android_resources("java_resources") {
   sources = [
+    "java/res/layout/touch_to_fill_credit_card_footer_item.xml",
     "java/res/layout/touch_to_fill_credit_card_header_item.xml",
-    "java/res/layout/touch_to_fill_credit_card_sheet.xml",
     "java/res/layout/touch_to_fill_credit_card_sheet_item.xml",
     "java/res/values/dimens.xml",
   ]
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_footer_item.xml b/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_footer_item.xml
new file mode 100644
index 0000000..1f3286459
--- /dev/null
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_footer_item.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2023 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/touch_to_fill_footer_item"
+    android:layout_width="match_parent"
+    android:orientation="vertical"
+    android:layout_height="wrap_content"
+    android:layout_alignParentBottom="true"
+    android:layout_marginBottom="@dimen/ttf_buttons_vertical_margin"
+    android:layout_marginTop="@dimen/ttf_sheet_padding">
+  <!-- Divider -->
+  <View style="@style/HorizontalDivider"
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/divider_height"
+      android:layout_marginBottom="@dimen/ttf_buttons_vertical_margin"/>
+  <TextView
+      android:id="@+id/scan_new_card"
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/ttf_buttons_height"
+      android:clickable="true"
+      android:drawablePadding="@dimen/ttf_for_payments_menu_item_icon_padding"
+      android:focusable="true"
+      android:gravity="center_vertical|start"
+      android:paddingHorizontal="8dp"
+      android:textAppearance="@style/TextAppearance.TextMedium.Primary"
+      android:text="@string/autofill_scan_credit_card"
+      android:visibility="gone"
+      app:drawableStartCompat="@drawable/ic_photo_camera"
+      app:drawableTint="@color/default_icon_color_tint_list"
+      android:background="?android:attr/selectableItemBackground"
+      android:textDirection="locale"
+      android:textAlignment="viewStart"/>
+  <TextView
+      android:id="@+id/manage_payment_methods"
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/ttf_buttons_height"
+      android:clickable="true"
+      android:drawablePadding="@dimen/ttf_for_payments_menu_item_icon_padding"
+      android:focusable="true"
+      android:gravity="center_vertical|start"
+      android:paddingHorizontal="8dp"
+      android:textAppearance="@style/TextAppearance.TextMedium.Primary"
+      android:text="@string/autofill_bottom_sheet_manage_payment_methods"
+      app:drawableStartCompat="@drawable/infobar_chrome"
+      app:drawableTint="@color/default_icon_color_tint_list"
+      android:background="?android:attr/selectableItemBackground"
+      android:textDirection="locale"
+      android:textAlignment="viewStart"/>
+</LinearLayout>
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_header_item.xml b/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_header_item.xml
index afe1a75e..9476d9dd 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_header_item.xml
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_header_item.xml
@@ -10,6 +10,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_height="wrap_content"
     android:layout_width="match_parent"
+    android:layout_marginHorizontal="8dp"
     android:layout_marginBottom="16dp"
     android:orientation="vertical">
 
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet.xml b/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet.xml
deleted file mode 100644
index f8d11f0d..0000000
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright 2022 The Chromium Authors
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-             xmlns:app="http://schemas.android.com/apk/res-auto"
-             xmlns:tools="http://schemas.android.com/tools"
-             android:layout_width="match_parent"
-             android:layout_height="match_parent">
-
-  <ImageView
-      android:id="@+id/drag_handlebar"
-      android:layout_alignParentTop="true"
-      android:layout_centerHorizontal="true"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:layout_marginTop="@dimen/ttf_drag_handlebar_margin"
-      android:layout_marginBottom="@dimen/ttf_drag_handlebar_margin"
-      android:importantForAccessibility="no"
-      app:srcCompat="@drawable/drag_handlebar" />
-
-  <androidx.recyclerview.widget.RecyclerView
-      android:id="@+id/sheet_item_list"
-      android:layout_below="@id/drag_handlebar"
-      android:layout_above="@id/touch_to_fill_footer"
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
-      android:layout_marginHorizontal="@dimen/ttf_sheet_padding"
-      android:layout_marginBottom="@dimen/ttf_sheet_padding"
-      android:clipToPadding="false"
-      android:divider="@null"
-      tools:listitem="@layout/touch_to_fill_credit_card_sheet_item"/>
-
-  <LinearLayout
-      android:id="@+id/touch_to_fill_footer"
-      android:layout_width="match_parent"
-      android:orientation="vertical"
-      android:layout_height="wrap_content"
-      android:layout_alignParentBottom="true"
-      android:layout_marginBottom="@dimen/ttf_buttons_vertical_margin">
-    <!-- Divider -->
-    <View style="@style/HorizontalDivider"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/divider_height"
-        android:layout_marginHorizontal="@dimen/ttf_divider_horizontal_margin"
-        android:layout_marginBottom="@dimen/ttf_buttons_vertical_margin"/>
-    <TextView
-        android:id="@+id/scan_new_card"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/ttf_buttons_height"
-        android:clickable="true"
-        android:drawablePadding="@dimen/ttf_for_payments_menu_item_icon_padding"
-        android:focusable="true"
-        android:gravity="center_vertical|start"
-        android:paddingHorizontal="@dimen/ttf_sheet_padding"
-        android:textAppearance="@style/TextAppearance.TextMedium.Primary"
-        android:text="@string/autofill_scan_credit_card"
-        android:visibility="gone"
-        app:drawableStartCompat="@drawable/ic_photo_camera"
-        app:drawableTint="@color/default_icon_color_secondary_tint_list"
-        android:background="?android:attr/selectableItemBackground"
-        android:textDirection="locale"
-        android:textAlignment="viewStart"/>
-    <TextView
-        android:id="@+id/manage_payment_methods"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/ttf_buttons_height"
-        android:clickable="true"
-        android:drawablePadding="@dimen/ttf_for_payments_menu_item_icon_padding"
-        android:focusable="true"
-        android:gravity="center_vertical|start"
-        android:paddingHorizontal="@dimen/ttf_sheet_padding"
-        android:textAppearance="@style/TextAppearance.TextMedium.Primary"
-        android:text="@string/autofill_bottom_sheet_manage_payment_methods"
-        app:drawableStartCompat="@drawable/infobar_chrome"
-        app:drawableTint="@color/default_icon_color_secondary_tint_list"
-        android:background="?android:attr/selectableItemBackground"
-        android:textDirection="locale"
-        android:textAlignment="viewStart"/>
-  </LinearLayout>
-</RelativeLayout>
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet_item.xml b/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet_item.xml
index 6d438119..a81f5c4 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet_item.xml
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/res/layout/touch_to_fill_credit_card_sheet_item.xml
@@ -11,6 +11,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginBottom="2dp"
+    android:layout_marginHorizontal="8dp"
     android:background="@drawable/touch_to_fill_credential_background_modern_rounded_all"
     android:gravity="center_vertical"
     android:orientation="horizontal"
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardControllerRobolectricTest.java b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardControllerRobolectricTest.java
index bbc9cf0..711ed3a4 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardControllerRobolectricTest.java
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardControllerRobolectricTest.java
@@ -21,12 +21,12 @@
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.CreditCardProperties.CARD_NUMBER;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.CreditCardProperties.ON_CLICK_ACTION;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.DISMISS_HANDLER;
+import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.FooterProperties.SCAN_CREDIT_CARD_CALLBACK;
+import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.FooterProperties.SHOW_CREDIT_CARD_SETTINGS_CALLBACK;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.ItemType.CREDIT_CARD;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.ItemType.FILL_BUTTON;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.ItemType.HEADER;
-import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SCAN_CREDIT_CARD_CALLBACK;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SHEET_ITEMS;
-import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SHOW_CREDIT_CARD_SETTINGS_CALLBACK;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.VISIBLE;
 
 import android.app.Activity;
@@ -151,7 +151,11 @@
     @Test
     public void testScanNewCard() {
         mCoordinator.showSheet(new CreditCard[] {VISA, MASTER_CARD}, true);
-        mTouchToFillCreditCardModel.get(SCAN_CREDIT_CARD_CALLBACK).run();
+        int lastItemPos = mTouchToFillCreditCardModel.get(SHEET_ITEMS).size() - 1;
+        mTouchToFillCreditCardModel.get(SHEET_ITEMS)
+                .get(lastItemPos)
+                .model.get(SCAN_CREDIT_CARD_CALLBACK)
+                .run();
         verify(mDelegateMock).scanCreditCard();
         assertEquals(1,
                 RecordHistogram.getHistogramValueCountForTesting(TOUCH_TO_FILL_OUTCOME_HISTOGRAM,
@@ -161,7 +165,11 @@
     @Test
     public void testShowCreditCardSettings() {
         mCoordinator.showSheet(new CreditCard[] {VISA, MASTER_CARD}, true);
-        mTouchToFillCreditCardModel.get(SHOW_CREDIT_CARD_SETTINGS_CALLBACK).run();
+        int lastItemPos = mTouchToFillCreditCardModel.get(SHEET_ITEMS).size() - 1;
+        mTouchToFillCreditCardModel.get(SHEET_ITEMS)
+                .get(lastItemPos)
+                .model.get(SHOW_CREDIT_CARD_SETTINGS_CALLBACK)
+                .run();
         verify(mDelegateMock).showCreditCardSettings();
         assertEquals(1,
                 RecordHistogram.getHistogramValueCountForTesting(TOUCH_TO_FILL_OUTCOME_HISTOGRAM,
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardCoordinator.java b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardCoordinator.java
index 041d52b..d2c4b66f 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardCoordinator.java
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardCoordinator.java
@@ -7,10 +7,9 @@
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.DISMISS_HANDLER;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.ItemType.CREDIT_CARD;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.ItemType.FILL_BUTTON;
+import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.ItemType.FOOTER;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.ItemType.HEADER;
-import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SCAN_CREDIT_CARD_CALLBACK;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SHEET_ITEMS;
-import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SHOW_CREDIT_CARD_SETTINGS_CALLBACK;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.VISIBLE;
 
 import android.content.Context;
@@ -71,6 +70,8 @@
                 TouchToFillCreditCardViewBinder::bindHeaderView);
         adapter.registerType(FILL_BUTTON, TouchToFillCreditCardViewBinder::createFillButtonView,
                 TouchToFillCreditCardViewBinder::bindFillButtonView);
+        adapter.registerType(FOOTER, TouchToFillCreditCardViewBinder::createFooterItemView,
+                TouchToFillCreditCardViewBinder::bindFooterView);
         view.setSheetItemListAdapter(adapter);
     }
 
@@ -79,8 +80,6 @@
                 .with(VISIBLE, false)
                 .with(SHEET_ITEMS, new ModelList())
                 .with(DISMISS_HANDLER, mediator::onDismissed)
-                .with(SCAN_CREDIT_CARD_CALLBACK, mMediator::scanCreditCard)
-                .with(SHOW_CREDIT_CARD_SETTINGS_CALLBACK, mMediator::showCreditCardSettings)
                 .build();
     }
 
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardMediator.java b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardMediator.java
index c8d720f..a7780d6 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardMediator.java
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardMediator.java
@@ -5,11 +5,13 @@
 package org.chromium.chrome.browser.touch_to_fill.payments;
 
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.CreditCardProperties.ON_CLICK_ACTION;
+import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.FooterProperties.SCAN_CREDIT_CARD_CALLBACK;
+import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.FooterProperties.SHOULD_SHOW_SCAN_CREDIT_CARD;
+import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.FooterProperties.SHOW_CREDIT_CARD_SETTINGS_CALLBACK;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.HeaderProperties.IMAGE_DRAWABLE_ID;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.ItemType.CREDIT_CARD;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.ItemType.FILL_BUTTON;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SHEET_ITEMS;
-import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SHOULD_SHOW_SCAN_CREDIT_CARD;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.VISIBLE;
 
 import android.content.Context;
@@ -19,6 +21,7 @@
 
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
+import org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.FooterProperties;
 import org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.HeaderProperties;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
 import org.chromium.components.browser_ui.bottomsheet.BottomSheetController.StateChangeReason;
@@ -96,8 +99,8 @@
         }
 
         sheetItems.add(0, buildHeader(hasOnlyLocalCards(cards)));
+        sheetItems.add(buildFooter(shouldShowScanCreditCard));
 
-        mModel.set(SHOULD_SHOW_SCAN_CREDIT_CARD, shouldShowScanCreditCard);
         mModel.set(VISIBLE, true);
 
         RecordHistogram.recordCount100Histogram(TOUCH_TO_FILL_NUMBER_OF_CARDS_SHOWN, cards.length);
@@ -168,6 +171,15 @@
                         .build());
     }
 
+    private ListItem buildFooter(boolean hasScanCardButton) {
+        return new ListItem(TouchToFillCreditCardProperties.ItemType.FOOTER,
+                new PropertyModel.Builder(FooterProperties.ALL_KEYS)
+                        .with(SHOULD_SHOW_SCAN_CREDIT_CARD, hasScanCardButton)
+                        .with(SCAN_CREDIT_CARD_CALLBACK, this::scanCreditCard)
+                        .with(SHOW_CREDIT_CARD_SETTINGS_CALLBACK, this::showCreditCardSettings)
+                        .build());
+    }
+
     private static boolean hasOnlyLocalCards(CreditCard[] cards) {
         for (CreditCard card : cards) {
             if (!card.getIsLocal()) return false;
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardProperties.java b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardProperties.java
index f51cd21..8c9231c 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardProperties.java
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardProperties.java
@@ -20,17 +20,8 @@
             new PropertyModel.ReadableObjectPropertyKey("sheet_items");
     static final PropertyModel.ReadableObjectPropertyKey<Callback<Integer>> DISMISS_HANDLER =
             new PropertyModel.ReadableObjectPropertyKey<>("dismiss_handler");
-    static final PropertyModel.WritableBooleanPropertyKey SHOULD_SHOW_SCAN_CREDIT_CARD =
-            new PropertyModel.WritableBooleanPropertyKey("should_show_scan_credit_card");
-    static final PropertyModel.ReadableObjectPropertyKey<Runnable> SCAN_CREDIT_CARD_CALLBACK =
-            new ReadableObjectPropertyKey<>("scan_credit_card_callback");
-    static final PropertyModel
-            .ReadableObjectPropertyKey<Runnable> SHOW_CREDIT_CARD_SETTINGS_CALLBACK =
-            new ReadableObjectPropertyKey<>("show_credit_card_settings_callback");
 
-    static final PropertyKey[] ALL_KEYS = {VISIBLE, SHEET_ITEMS, DISMISS_HANDLER,
-            SHOULD_SHOW_SCAN_CREDIT_CARD, SCAN_CREDIT_CARD_CALLBACK,
-            SHOW_CREDIT_CARD_SETTINGS_CALLBACK};
+    static final PropertyKey[] ALL_KEYS = {VISIBLE, SHEET_ITEMS, DISMISS_HANDLER};
 
     @interface ItemType {
         // The header at the top of the touch to fill sheet.
@@ -41,6 +32,9 @@
 
         // A "Continue" button, which is shown when there is 1 credit card only.
         int FILL_BUTTON = 2;
+
+        // A footer section containing additional actions.
+        int FOOTER = 3;
     }
 
     /**
@@ -77,5 +71,24 @@
         private HeaderProperties() {}
     }
 
+    /**
+     * Properties defined here reflect the visible state of the footer in the TouchToFill sheet for
+     * payments.
+     */
+    static class FooterProperties {
+        static final PropertyModel.WritableBooleanPropertyKey SHOULD_SHOW_SCAN_CREDIT_CARD =
+                new PropertyModel.WritableBooleanPropertyKey("should_show_scan_credit_card");
+        static final PropertyModel.ReadableObjectPropertyKey<Runnable> SCAN_CREDIT_CARD_CALLBACK =
+                new ReadableObjectPropertyKey<>("scan_credit_card_callback");
+        static final PropertyModel
+                .ReadableObjectPropertyKey<Runnable> SHOW_CREDIT_CARD_SETTINGS_CALLBACK =
+                new ReadableObjectPropertyKey<>("show_credit_card_settings_callback");
+
+        static final PropertyKey[] ALL_KEYS = {SHOULD_SHOW_SCAN_CREDIT_CARD,
+                SCAN_CREDIT_CARD_CALLBACK, SHOW_CREDIT_CARD_SETTINGS_CALLBACK};
+
+        private FooterProperties() {}
+    }
+
     private TouchToFillCreditCardProperties() {}
 }
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardRenderTest.java b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardRenderTest.java
index e3bc61c..0b55d52 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardRenderTest.java
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardRenderTest.java
@@ -67,7 +67,7 @@
     @Rule
     public final ChromeRenderTestRule mRenderTestRule =
             ChromeRenderTestRule.Builder.withPublicCorpus()
-                    .setRevision(8)
+                    .setRevision(9)
                     .setBugComponent(Component.UI_BROWSER_AUTOFILL)
                     .build();
 
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardView.java b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardView.java
index de5f926..e1985e9 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardView.java
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardView.java
@@ -42,6 +42,7 @@
         protected boolean shouldSkipItemType(@ItemType int type) {
             switch (type) {
                 case ItemType.HEADER: // Fallthrough.
+                case ItemType.FOOTER: // Fallthrough.
                 case ItemType.FILL_BUTTON:
                     return true;
                 case ItemType.CREDIT_CARD:
@@ -53,8 +54,10 @@
 
         @Override
         protected boolean containsFillButton(RecyclerView parent) {
-            return parent.getAdapter().getItemViewType(parent.getAdapter().getItemCount() - 1)
-                    == ItemType.FILL_BUTTON;
+            int itemCount = parent.getAdapter().getItemCount();
+            // The button will be above the footer if it's present.
+            return itemCount > 1
+                    && parent.getAdapter().getItemViewType(itemCount - 2) == ItemType.FILL_BUTTON;
         }
     }
 
@@ -67,34 +70,13 @@
     TouchToFillCreditCardView(Context context, BottomSheetController bottomSheetController) {
         super(bottomSheetController,
                 (RelativeLayout) LayoutInflater.from(context).inflate(
-                        R.layout.touch_to_fill_credit_card_sheet, null));
+                        R.layout.touch_to_fill_sheet, null));
         mBottomSheetController = bottomSheetController;
         mSheetItemListView = getItemList();
 
         mSheetItemListView.addItemDecoration(new HorizontalDividerItemDecoration(context));
     }
 
-    void setScanCreditCardButton(boolean shouldShowScanCreditCard) {
-        View scanCreditCard = getContentView().findViewById(R.id.scan_new_card);
-        if (shouldShowScanCreditCard) {
-            scanCreditCard.setVisibility(View.VISIBLE);
-            scanCreditCard.setOnClickListener(unused -> mScanCreditCardHandler.run());
-        } else {
-            scanCreditCard.setVisibility(View.GONE);
-            scanCreditCard.setOnClickListener(null);
-        }
-    }
-
-    void setScanCreditCardCallback(Runnable callback) {
-        mScanCreditCardHandler = callback;
-    }
-
-    void setShowCreditCardSettingsCallback(Runnable callback) {
-        View managePaymentMethodsButton =
-                getContentView().findViewById(R.id.manage_payment_methods);
-        managePaymentMethodsButton.setOnClickListener(unused -> callback.run());
-    }
-
     @Override
     public int getVerticalScrollOffset() {
         return mSheetItemListView.computeVerticalScrollOffset();
@@ -126,8 +108,8 @@
     }
 
     @Override
-    protected View getFooter() {
-        return getContentView().findViewById(R.id.touch_to_fill_footer);
+    protected int getFooterId() {
+        return R.id.touch_to_fill_footer_item;
     }
 
     @Override
diff --git a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardViewBinder.java b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardViewBinder.java
index 0138955..50a25f9 100644
--- a/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardViewBinder.java
+++ b/chrome/browser/touch_to_fill/payments/android/internal/java/src/org/chromium/chrome/browser/touch_to_fill/payments/TouchToFillCreditCardViewBinder.java
@@ -10,11 +10,11 @@
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.CreditCardProperties.CARD_NUMBER;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.CreditCardProperties.ON_CLICK_ACTION;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.DISMISS_HANDLER;
+import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.FooterProperties.SCAN_CREDIT_CARD_CALLBACK;
+import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.FooterProperties.SHOULD_SHOW_SCAN_CREDIT_CARD;
+import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.FooterProperties.SHOW_CREDIT_CARD_SETTINGS_CALLBACK;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.HeaderProperties.IMAGE_DRAWABLE_ID;
-import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SCAN_CREDIT_CARD_CALLBACK;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SHEET_ITEMS;
-import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SHOULD_SHOW_SCAN_CREDIT_CARD;
-import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.SHOW_CREDIT_CARD_SETTINGS_CALLBACK;
 import static org.chromium.chrome.browser.touch_to_fill.payments.TouchToFillCreditCardProperties.VISIBLE;
 
 import android.view.LayoutInflater;
@@ -44,12 +44,6 @@
             PropertyModel model, TouchToFillCreditCardView view, PropertyKey propertyKey) {
         if (propertyKey == DISMISS_HANDLER) {
             view.setDismissHandler(model.get(DISMISS_HANDLER));
-        } else if (propertyKey == SHOULD_SHOW_SCAN_CREDIT_CARD) {
-            view.setScanCreditCardButton(model.get(SHOULD_SHOW_SCAN_CREDIT_CARD));
-        } else if (propertyKey == SCAN_CREDIT_CARD_CALLBACK) {
-            view.setScanCreditCardCallback(model.get(SCAN_CREDIT_CARD_CALLBACK));
-        } else if (propertyKey == SHOW_CREDIT_CARD_SETTINGS_CALLBACK) {
-            view.setShowCreditCardSettingsCallback(model.get(SHOW_CREDIT_CARD_SETTINGS_CALLBACK));
         } else if (propertyKey == VISIBLE) {
             boolean visibilityChangeSuccessful = view.setVisible(model.get(VISIBLE));
             if (!visibilityChangeSuccessful && model.get(VISIBLE)) {
@@ -142,4 +136,51 @@
             assert false : "Unhandled update to property:" + propertyKey;
         }
     }
+
+    /**
+     * Factory used to create a new footer inside the ListView inside the TouchToFillCreditCardView.
+     * @param parent The parent {@link ViewGroup} of the new item.
+     */
+    static View createFooterItemView(ViewGroup parent) {
+        return LayoutInflater.from(parent.getContext())
+                .inflate(R.layout.touch_to_fill_credit_card_footer_item, parent, false);
+    }
+
+    /**
+     * Called whenever a property in the given model changes. It updates the given view accordingly.
+     * @param model The observed {@link PropertyModel}. Its data need to be reflected in the view.
+     * @param view The {@link View} of the header to update.
+     * @param key The {@link PropertyKey} which changed.
+     */
+    static void bindFooterView(PropertyModel model, View view, PropertyKey propertyKey) {
+        if (propertyKey == SHOULD_SHOW_SCAN_CREDIT_CARD) {
+            setScanCreditCardButton(view, model.get(SHOULD_SHOW_SCAN_CREDIT_CARD));
+        } else if (propertyKey == SCAN_CREDIT_CARD_CALLBACK) {
+            setScanCreditCardCallback(view, model.get(SCAN_CREDIT_CARD_CALLBACK));
+        } else if (propertyKey == SHOW_CREDIT_CARD_SETTINGS_CALLBACK) {
+            setShowCreditCardSettingsCallback(view, model.get(SHOW_CREDIT_CARD_SETTINGS_CALLBACK));
+        } else {
+            assert false : "Unhandled update to property:" + propertyKey;
+        }
+    }
+
+    private static void setScanCreditCardButton(View view, boolean shouldShowScanCreditCard) {
+        View scanCreditCard = view.findViewById(R.id.scan_new_card);
+        if (shouldShowScanCreditCard) {
+            scanCreditCard.setVisibility(View.VISIBLE);
+        } else {
+            scanCreditCard.setVisibility(View.GONE);
+            scanCreditCard.setOnClickListener(null);
+        }
+    }
+
+    private static void setScanCreditCardCallback(View view, Runnable callback) {
+        View scanCreditCard = view.findViewById(R.id.scan_new_card);
+        scanCreditCard.setOnClickListener(unused -> callback.run());
+    }
+
+    private static void setShowCreditCardSettingsCallback(View view, Runnable callback) {
+        View managePaymentMethodsButton = view.findViewById(R.id.manage_payment_methods);
+        managePaymentMethodsButton.setOnClickListener(unused -> callback.run());
+    }
 }
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 87907de..0b8ec41 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -4585,7 +4585,6 @@
       "views/extensions/extensions_menu_main_page_view.cc",
       "views/extensions/extensions_menu_main_page_view.h",
       "views/extensions/extensions_menu_navigation_handler.h",
-      "views/extensions/extensions_menu_page_view.h",
       "views/extensions/extensions_menu_site_permissions_page_view.cc",
       "views/extensions/extensions_menu_site_permissions_page_view.h",
       "views/extensions/extensions_menu_view.cc",
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
index 798fb47..bada2fc 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -417,7 +417,7 @@
 
     @Override
     public View getAlignmentView() {
-        return isTablet() ? mLocationBarLayout : null;
+        return isTablet() ? mLocationBarLayout : mAutocompleteAnchorView;
     }
 
     // AutocompleteDelegate implementation.
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
index 5654e8c9..9a45760e 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
@@ -633,17 +633,13 @@
         };
 
         mAlignmentView = mEmbedder.getAlignmentView();
-        if (mAlignmentView != null) {
-            mAlignmentViewLayoutListener = new View.OnLayoutChangeListener() {
-                @Override
-                public void onLayoutChange(View v, int left, int top, int right, int bottom,
-                        int oldLeft, int oldTop, int oldRight, int oldBottom) {
-                    adjustSidePadding();
-                }
-            };
-        } else {
-            mAlignmentViewLayoutListener = null;
-        }
+        mAlignmentViewLayoutListener = new View.OnLayoutChangeListener() {
+            @Override
+            public void onLayoutChange(View v, int left, int top, int right, int bottom,
+                    int oldLeft, int oldTop, int oldRight, int oldBottom) {
+                adjustSidePadding();
+            }
+        };
     }
 
     public void emitWindowContentChanged() {
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java
index 1c53eef8..4aea015 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java
@@ -7,7 +7,6 @@
 import android.view.View;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 
 import org.chromium.ui.base.WindowDelegate;
 
@@ -19,10 +18,9 @@
 
     /**
      * Return the view that the omnibox suggestions should be aligned horizontally to.  The
-     * view must be a descendant of {@link #getAnchorView()}. If null, the suggestions will
-     * be aligned to the start of {@link #getAnchorView()}.
+     * view must be a descendant of {@link #getAnchorView()} or the anchor view itself.
      */
-    @Nullable
+    @NonNull
     View getAlignmentView();
 
     /** Return the delegate used to interact with the Window. */
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 305d3c5..29e688dc 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Jou wagwoorde word op jou toestel geënkripteer voordat hulle in Google Wagwoordbestuurder gestoor word</translation>
 <translation id="2249635629516220541">Pasmaak die inligting wat deur werwe gebruik word om vir jou advertensies te wys</translation>
 <translation id="2259659629660284697">Voer wagwoorde uit …</translation>
+<translation id="2276231040576210443">Jy kan altyd in <ph name="BEGIN_LINK1" />instellings<ph name="END_LINK1" /> kies wat om te sinkroniseer. Google kan Search en ander dienste op grond van jou geskiedenis personaliseer.</translation>
 <translation id="2276696007612801991">Meld by jou Google-rekening aan om jou wagwoorde na te gaan</translation>
 <translation id="2278052315791335171">Jou rekening op <ph name="SITE" /> sal nie uitgevee word as hierdie wagwoord uitgevee word nie</translation>
 <translation id="2286841657746966508">Faktureringadres</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Bedryfstelsel</translation>
 <translation id="7605594153474022051">Sinkronisering werk nie</translation>
 <translation id="7612619742409846846">By Google aangemeld as</translation>
+<translation id="7612989789287281429">Meld jou tans aan …</translation>
 <translation id="7616551326690708776">Kies 'n templaat vir jou gemerkte teks.</translation>
 <translation id="7619072057915878432">Kon <ph name="FILE_NAME" /> weens netwerkmislukkings nie aflaai nie.</translation>
 <translation id="7626032353295482388">Welkom by Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Iets is fout.</translation>
 <translation id="8972098258593396643">Laai af na verstekvouer?</translation>
 <translation id="8987641763863173640">Bestuur videovoorskou-instellings</translation>
+<translation id="8987736167266086032">Gaan aan waar jy opgehou het</translation>
 <translation id="8989968390305463310">Jou blaaigeskiedenis beïnvloed die advertensies wat jy sien en die belangstellings soos hieronder geskat. Chrome vee outomaties elke maand jou belangstellings op ’n rollende basis uit om jou privaatheid te beskerm. Belangstellings kan herlaai, tensy jy hulle verwyder.</translation>
 <translation id="8993760627012879038">Maak 'n nuwe oortjie in incognitomodus oop</translation>
 <translation id="8996847606757455498">Kies 'n ander verskaffer</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 3a0cc8a7..9875b834 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">የይለፍ ቃላትዎ ወደ Google የይለፍ ቃል አስተዳዳሪ ከመቀመጣቸው በፊት በመሣሪያዎ ላይ ይመሰጠራሉ</translation>
 <translation id="2249635629516220541">ማስታወቂያዎችን ለእርስዎ ለማሳየት በጣቢያዎች ጥቅም ላይ የሚውለውን መረጃ ያብጁ</translation>
 <translation id="2259659629660284697">የይለፍ ቃላትን ወደ ውጭ ላክ...</translation>
+<translation id="2276231040576210443">በማንኛውም ጊዜ ምን እንደሚያሰምሩ በ<ph name="BEGIN_LINK1" />ቅንብሮች<ph name="END_LINK1" /> ውስጥ መምረጥ ይችላሉ። Google በእርስዎ ታሪክ ላይ በመመስረት ፍለጋን እና ሌሎች አገልግሎቶችን ግላዊነት ያላብሳል።</translation>
 <translation id="2276696007612801991">የይለፍ ቃላትዎን ለመፈተሽ ወደ Google መለያዎ ይግቡ</translation>
 <translation id="2278052315791335171">ይህን የይለፍ ቃል መሰረዝ <ph name="SITE" /> ላይ መለያዎን አይሰርዘውም</translation>
 <translation id="2286841657746966508">የመላኪያ አድራሻ</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">የሆነ ችግር ተፈጥሯል።</translation>
 <translation id="8972098258593396643">ወደ ነባሪው አቃፊ ይውረድ?</translation>
 <translation id="8987641763863173640">የቪዲዮ ቅድመ-እይታ ቅንብሮችን ያቀናብሩ</translation>
+<translation id="8987736167266086032">ካቆሙበት ቦታ ይቀጥሉ</translation>
 <translation id="8989968390305463310">የአሰሳ ታሪክዎ ከታች እንደተገመተው እርስዎ በሚያዩዋቸው ማስታወቂያዎች እና ዝንባሌዎች ላይ ተጽዕኖ ያሳድራል። የእርስዎን ግላዊነት ለመጠበቅ Chrome በየወሩ ዝንባሌዎችዎን በራስ-ሰር ይሰርዛል። እርስዎ ካላስወገዷቸው በስተቀር ዝንባሌዎችን ማደስ ይችላሉ።</translation>
 <translation id="8993760627012879038">አዲስ ትር በማንነት የማያሳውቅ ሁነታ ውስጥ ክፈት</translation>
 <translation id="8996847606757455498">ሌላ አቅራቢ ይምረጡ</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 14f03ff..f194bd7a 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">‏يتم تشفير كلمات المرور على جهازك قبل حفظها في "مدير كلمات المرور" من Google.</translation>
 <translation id="2249635629516220541">تخصيص المعلومات التي تستخدمها المواقع الإلكترونية لعرض الإعلانات لك</translation>
 <translation id="2259659629660284697">تصدير كلمات المرور...</translation>
+<translation id="2276231040576210443">‏يمكنك متى شئت اختيار البيانات التي تريد مزامنتها، وذلك من خلال <ph name="BEGIN_LINK1" />الإعدادات<ph name="END_LINK1" />. وقد تستخدم Google السجلّ لتخصيص "بحث Google" والخدمات الأخرى.</translation>
 <translation id="2276696007612801991">‏يُرجى تسجيل الدخول إلى حسابك على Google للتحقُّق من كلمات المرور.</translation>
 <translation id="2278052315791335171">لن يؤدي حذف كلمة المرور هذه إلى حذف حسابك على <ph name="SITE" />.</translation>
 <translation id="2286841657746966508">عنوان الفاتورة</translation>
@@ -1494,6 +1495,7 @@
 <translation id="8970887620466824814">حدث خطأ.</translation>
 <translation id="8972098258593396643">هل تريد التنزيل إلى المجلد التلقائي؟</translation>
 <translation id="8987641763863173640">إدارة إعدادات معاينة الفيديو</translation>
+<translation id="8987736167266086032">الاستئناف من حيث توقفت</translation>
 <translation id="8989968390305463310">‏يؤثر سجلّ تصفّحك في الإعلانات التي تظهر لك وفي تقدير اهتماماتك على النحو الموضّح أدناه. لحماية خصوصيتك، يحذف Chrome تلقائيًا اهتماماتك بشكل متواصل مرة واحدة على الأقل شهريًا. ويمكنك تحديث الاهتمامات ما لم تزِلها.</translation>
 <translation id="8993760627012879038">فتح علامة تبويب جديدة في وضع التصفّح المتخفّي</translation>
 <translation id="8996847606757455498">اختيار مقدِّم خدمة آخر</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 195901496..97e8e4d 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Google পাছৱৰ্ড পৰিচালকত ছেভ কৰাৰ পূৰ্বে আপোনাৰ ডিভাইচত আপোনাৰ পাছৱৰ্ড এনক্ৰিপ্ট কৰা হয়</translation>
 <translation id="2249635629516220541">আপোনাক বিজ্ঞাপন দেখুৱাবলৈ ছাইটসমূহে ব্যৱহাৰ কৰা তথ্য কাষ্টমাইজ কৰক</translation>
 <translation id="2259659629660284697">পাছৱর্ডসমূহ ৰপ্তানি কৰক…</translation>
+<translation id="2276231040576210443">আপুনি কি ছিংক কৰিব লাগে সেয়া <ph name="BEGIN_LINK1" />ছেটিঙ<ph name="END_LINK1" />লৈ গৈ যেতিয়াই মন যায় তেতিয়াই বাছনি কৰিব পাৰে। Googleএ আপোনাৰ ইতিহাসৰ ওপৰত ভিত্তি কৰি Search আৰু অন্য সেৱা ব্যক্তিগতকৰণ কৰিব পাৰে।</translation>
 <translation id="2276696007612801991">আপোনাৰ পাছৱৰ্ডসমূহ পৰীক্ষা কৰিবলৈ আপোনাৰ Google একাউণ্টত ছাইন ইন কৰক</translation>
 <translation id="2278052315791335171">এই পাছৱৰ্ডটো মচাৰ ফলত <ph name="SITE" />ত থকা আপোনাৰ একাউণ্টটো মচি পেলোৱা নহ’ব</translation>
 <translation id="2286841657746966508">বিলিঙৰ ঠিকনা</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">অপাৰেটিং ছিষ্টেম</translation>
 <translation id="7605594153474022051">ছিংক কৰিব পৰা নাই</translation>
 <translation id="7612619742409846846">এই হিচাপে Googleত ছাইন ইন কৰক</translation>
+<translation id="7612989789287281429">আপোনাক ছাইন ইন কৰাই থকা হৈছে…</translation>
 <translation id="7616551326690708776">আপোনাৰ হাইলাইটৰ বাবে এটা টেমপ্লে’ট বাছনি কৰক।</translation>
 <translation id="7619072057915878432">নেটৱর্কৰ সমস্যাৰ বাবে <ph name="FILE_NAME" /> ডাউনল'ড কৰিব পৰা নগ'ল।</translation>
 <translation id="7626032353295482388">Chromeলৈ স্বাগতম</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 c795ef98..31da709 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Parollarınız Google Parol Menecerində saxlanmazdan əvvəl cihazınızda şifrələnir</translation>
 <translation id="2249635629516220541">Sizə reklam göstərmək üçün saytların istifadə etdiyi məlumatları fərdiləşdirin</translation>
 <translation id="2259659629660284697">Parolları eksport edin...</translation>
+<translation id="2276231040576210443">Sinxronizasiya seçimlərini <ph name="BEGIN_LINK1" />ayarlarda<ph name="END_LINK1" /> edə bilərsiniz. Google tarixçənizə əsasən Axtarış və digər xidmətləri fərdiləşdirə bilər.</translation>
 <translation id="2276696007612801991">Parollarınızı yoxlamaq üçün Google hesabınıza daxil olun</translation>
 <translation id="2278052315791335171">Bu parolu sildikdə <ph name="SITE" /> saytında hesabınız silinməyəcək</translation>
 <translation id="2286841657746966508">Faktura ünvanı</translation>
@@ -1491,6 +1492,7 @@
 <translation id="8970887620466824814">Xəta baş verdi.</translation>
 <translation id="8972098258593396643">Defolt qovluğa endirilsin?</translation>
 <translation id="8987641763863173640">Video Önizləmə Ayarlarını İdarə Edin</translation>
+<translation id="8987736167266086032">Qaldığınız yerdən davam edin</translation>
 <translation id="8989968390305463310">Baxış tarixçəniz gördüyünüz reklamlara və aşağıda təxmin edilən maraqlara təsir edir. Məxfiliyinizi qorumaq üçün Chrome hər ay maraqlarınızı növbəlilik əsasında avtomatik olaraq silir. Silmədiyiniz təqdirdə maraqlar yenilənə bilər.</translation>
 <translation id="8993760627012879038">Incognito rejimində yeni panel açın</translation>
 <translation id="8996847606757455498">Başqa provayder seçin</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 9b571e8..a48237b 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Вашы паролі шыфруюцца на прыладзе і толькі потым захоўваюцца ў Менеджары пароляў Google</translation>
 <translation id="2249635629516220541">Кіраванне данымі, якія сайты выкарыстоўваюць для паказу вам рэкламы</translation>
 <translation id="2259659629660284697">Экспарт пароляў…</translation>
+<translation id="2276231040576210443">Вы заўсёды можаце выбраць, што сінхранізаваць, <ph name="BEGIN_LINK1" />у наладах<ph name="END_LINK1" />. Google можа персаналізаваць Пошук і іншыя сэрвісы на аснове гісторыі прагляду вамі сайтаў.</translation>
 <translation id="2276696007612801991">Для праверкі пароляў увайдзіце ва Уліковы запіс Google</translation>
 <translation id="2278052315791335171">Пры выдаленні гэтага пароля ўліковы запіс на сайце <ph name="SITE" /> не выдаліцца</translation>
 <translation id="2286841657746966508">Адрас для выстаўлення рахункаў</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Паспрабуйце наступнае: праверце, ці дастаткова месца на прыладзе, затым паўтарыце экспарт.</translation>
 <translation id="7686086654630106285">Падрабязней пра рэкламу, якая прапануецца сайтамі</translation>
 <translation id="768618399695552958">Некаторыя са старонак, якія вы наведваеце, перадзагружаюцца. Калі пераход на іх ажыццяўляецца з сайта Google, перадзагрузка можа ажыццяўляцца праз серверы Google.</translation>
+<translation id="7691043218961417207">Шукайце змесціва, на якое варта падпісацца</translation>
 <translation id="7698359219371678927">Напісаць электронны ліст у праграме "<ph name="APP_NAME" />"</translation>
 <translation id="7707922173985738739">Выкарыстоўваць мабільную перадачу даных</translation>
 <translation id="7709094866268987903">Выдаленыя вамі інтарэсы будуць з'яўляцца тут</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 e449e25..ff45104 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Паролите ви се шифроват на устройството ви, преди да бъдат запазени в мениджъра на паролите в Google</translation>
 <translation id="2249635629516220541">Персонализиране на информацията, използвана от сайтовете с цел показване на реклами</translation>
 <translation id="2259659629660284697">Експортиране на паролите…</translation>
+<translation id="2276231040576210443">Винаги можете да изберете какво да се синхронизира от <ph name="BEGIN_LINK1" />настройките<ph name="END_LINK1" />. Google може да персонализира Търсене и други услуги въз основа на историята ви.</translation>
 <translation id="2276696007612801991">Влезте в профила си в Google, за да бъдат проверени паролите ви</translation>
 <translation id="2278052315791335171">Изтриването на тази парола няма да премахне профила ви за <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Адрес за фактуриране</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Изпробвайте следните съвети: Уверете се, че има достатъчно място на устройството ви. Опитайте отново да експортирате.</translation>
 <translation id="7686086654630106285">Повече за предлаганите от сайтовете реклами</translation>
 <translation id="768618399695552958">Някои от страниците, които посещавате, са заредени предварително. Страниците може да се зареждат предварително чрез сървърите ни, когато връзките, които водят към съответните страници, са на сайт в Google.</translation>
+<translation id="7691043218961417207">Разгледайте съдържание, което да следите</translation>
 <translation id="7698359219371678927">Създайте имейл в <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Използване на мобилни данни</translation>
 <translation id="7709094866268987903">Премахнатите от вас интереси ще се показват тук</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Нещо се обърка.</translation>
 <translation id="8972098258593396643">Да се изтегли ли файлът в стандартната папка?</translation>
 <translation id="8987641763863173640">Управление на настройките за визуализация на видеоклиповете</translation>
+<translation id="8987736167266086032">Продължавайте оттам, откъдето сте прекъснали</translation>
 <translation id="8989968390305463310">Историята ви на сърфиране влияе върху показваните ви реклами и прогнозираните по-долу интереси. С цел защита на поверителността ви Chrome автоматично изтрива интересите ви всеки месец. Те могат да се опресняват, освен ако не ги премахнете.</translation>
 <translation id="8993760627012879038">Отваряне на нов раздел в режим „инкогнито“</translation>
 <translation id="8996847606757455498">Избиране на друг доставчик</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 78e77722..c9efc5b9 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Google পাসওয়ার্ড ম্যানেজারে সেভ করার আগে আপনার পাসওয়ার্ড ডিভাইসে এনক্রিপ্ট করা হয়</translation>
 <translation id="2249635629516220541">আপনাকে বিজ্ঞাপন দেখানোর জন্য সাইট দ্বারা ব্যবহার করা তথ্য কাস্টমাইজ করুন</translation>
 <translation id="2259659629660284697">পাসওয়ার্ড এক্সপোর্ট করুন...</translation>
+<translation id="2276231040576210443"><ph name="BEGIN_LINK1" />সেটিংসে<ph name="END_LINK1" /> কোন ধরনের ডেটা সিঙ্ক করা হবে তা আপনি সবসময় বেছে নিতে পারবেন। আপনার ইতিহাসের উপরে ভিত্তি করে, সার্চ ও অন্যান্য পরিষেবা পছন্দমতো করে তুলতে Google এই ডেটা ব্যবহার করতে পারে।</translation>
 <translation id="2276696007612801991">আপনার পাসওয়ার্ড চেক করতে Google অ্যাকাউন্টে সাইন-ইন করুন</translation>
 <translation id="2278052315791335171">এই পাসওয়ার্ডটি মুছে দিলেও, <ph name="SITE" />-এ আপনার অ্যাকাউন্ট মুছে যাবে না</translation>
 <translation id="2286841657746966508">বিলিং ঠিকানা</translation>
@@ -1495,6 +1496,7 @@
 <translation id="8970887620466824814">কিছু সমস্যা হয়েছে।</translation>
 <translation id="8972098258593396643">ডিফল্ট ফোল্ডারে ডাউনলোড করবেন?</translation>
 <translation id="8987641763863173640">ভিডিও প্রিভিউ সেটিংস ম্যানেজ করুন</translation>
+<translation id="8987736167266086032">আপনি যেখানে ছেড়ে গিয়েছিলেন সেখান থেকে শুরু করুন</translation>
 <translation id="8989968390305463310">আপনার ব্রাউজিং ইতিহাস আপনি যে বিজ্ঞাপনগুলি দেখেন এবং নিচের অনুমান অনুযায়ী আগ্রহগুলিকে প্রভাবিত করে। আপনার গোপনীয়তা রক্ষা করার জন্য, Chrome প্রতি মাসে রোলিংয়ের ভিত্তিতে আপনার আগ্রহগুলি অটোমেটিক মুছে দেয়। আপনি সেগুলি সরিয়ে না দিলে আগ্রহগুলি রিফ্রেশ হতে পারে।</translation>
 <translation id="8993760627012879038">ছদ্মবেশী মোডে একটি নতুন ট্যাব খুলুন</translation>
 <translation id="8996847606757455498">অন্য একটি পরিষেবা প্রদানকারী বেছে নিন</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 e6be907..7e44a1c 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Lozinke se šifriraju na uređaju prije nego što se sačuvaju u Googleovom Upravitelju lozinki</translation>
 <translation id="2249635629516220541">Prilagodite informacije koje web lokacije koriste da vam prikazuju oglase</translation>
 <translation id="2259659629660284697">Izvoz lozinki…</translation>
+<translation id="2276231040576210443">Uvijek možete odabrati šta želite sinhronizirati u <ph name="BEGIN_LINK1" />postavkama<ph name="END_LINK1" />. Google može personalizirati Pretraživanje i druge usluge na osnovu vaše historije.</translation>
 <translation id="2276696007612801991">Prijavite se na svoj Google račun da provjerite lozinke</translation>
 <translation id="2278052315791335171">Brisanjem ove lozinke se neće izbrisati vaš račun na web lokaciji <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Adresa za naplatu</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Nešto nije uredu.</translation>
 <translation id="8972098258593396643">Preuzeti u zadani folder?</translation>
 <translation id="8987641763863173640">Upravljajte postavkama pregleda videozapisa</translation>
+<translation id="8987736167266086032">Nastavite tamo gdje ste stali</translation>
 <translation id="8989968390305463310">Vaša historija pregledanja utiče na oglase koje vidite i interesovanja, kao što je procijenjeno u nastavku. Da zaštiti vašu privatnost, Chrome automatski briše vaša interesovanja na mjesečnoj osnovi. Interesovanja se mogu osvježiti ukoliko ih ne uklonite.</translation>
 <translation id="8993760627012879038">Otvori novu karticu u anonimnom načinu rada</translation>
 <translation id="8996847606757455498">Odaberite drugog pružaoca</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 f327c67e..35ba4a8f 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Les contrasenyes s'encripten al dispositiu abans de desar-les al gestor de contrasenyes de Google</translation>
 <translation id="2249635629516220541">Personalitza la informació que utilitzen els llocs web per mostrar-te anuncis</translation>
 <translation id="2259659629660284697">Exporta les contrasenyes…</translation>
+<translation id="2276231040576210443">Sempre pots anar a la <ph name="BEGIN_LINK1" />configuració<ph name="END_LINK1" /> per decidir què vols sincronitzar. És possible que Google personalitzi la Cerca i altres serveis en funció del teu historial.</translation>
 <translation id="2276696007612801991">Inicia la sessió al teu Compte de Google per comprovar les contrasenyes</translation>
 <translation id="2278052315791335171">Encara que suprimeixis aquesta contrasenya, no se suprimirà el teu compte a <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Adreça de facturació</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">S'ha produït un error.</translation>
 <translation id="8972098258593396643">Vols baixar el fitxer a la carpeta predeterminada?</translation>
 <translation id="8987641763863173640">Gestiona la configuració de la previsualització de vídeos</translation>
+<translation id="8987736167266086032">Continua des d'on ho vas deixar</translation>
 <translation id="8989968390305463310">El teu historial de navegació afecta els anuncis que veus i les estimacions d'interessos que es mostren més avall. Amb la finalitat de protegir la teva privadesa, Chrome suprimeix automàticament els interessos de manera contínua cada mes, i es poden actualitzar tret que els suprimeixis.</translation>
 <translation id="8993760627012879038">Obre una pestanya nova en mode d'incògnit</translation>
 <translation id="8996847606757455498">Tria un altre proveïdor</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 89e4e1b..8f07e82 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Hesla jsou před uložením do Správce hesel Google v zařízení zašifrována</translation>
 <translation id="2249635629516220541">Přizpůsobení informací, které weby používají k zobrazování reklam</translation>
 <translation id="2259659629660284697">Exportovat hesla…</translation>
+<translation id="2276231040576210443">Synchronizované položky můžete kdykoliv vybrat v <ph name="BEGIN_LINK1" />nastavení<ph name="END_LINK1" />. Google může personalizovat Vyhledávání a další služby na základě vaší historie.</translation>
 <translation id="2276696007612801991">Pokud chcete zkontrolovat hesla, přihlaste se k účtu Google</translation>
 <translation id="2278052315791335171">Odstraněním tohoto hesla nesmažete svůj účet na webu <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Fakturační adresa</translation>
@@ -1494,6 +1495,7 @@
 <translation id="8970887620466824814">Došlo k chybě.</translation>
 <translation id="8972098258593396643">Stáhnout do výchozí složky?</translation>
 <translation id="8987641763863173640">Spravovat nastavení náhledu videa</translation>
+<translation id="8987736167266086032">Pokračujte, kde jste skončili</translation>
 <translation id="8989968390305463310">Vaše historie prohlížení ovlivňuje zobrazované reklamy a odhadované zájmy uvedené níže. Aby Chrome chránil vaše soukromí, vaše zájmy každý měsíc pravidelně maže. Zájmy se mohou obnovovat, dokud je neodstraníte.</translation>
 <translation id="8993760627012879038">Otevřít novou kartu v anonymním režimu</translation>
 <translation id="8996847606757455498">Vybrat jiného poskytovatele</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
index bbcff41..a9fbde12 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Mae eich cyfrineiriau yn cael eu hamgryptio ar eich dyfais cyn iddynt gael eu cadw i Reolwr Cyfrineiriau Google</translation>
 <translation id="2249635629516220541">Addaswch y wybodaeth a ddefnyddir gan wefannau i ddangos hysbysebion i chi</translation>
 <translation id="2259659629660284697">Allforio cyfrineiriau…</translation>
+<translation id="2276231040576210443">Gallwch bob amser ddewis beth i'w gysoni yn y <ph name="BEGIN_LINK1" />gosodiadau<ph name="END_LINK1" />. Gall Google bersonoleiddio Search a gwasanaethau eraill yn seiliedig ar eich hanes.</translation>
 <translation id="2276696007612801991">Mewngofnodwch i'ch cyfrif Google i wirio eich cyfrineiriau</translation>
 <translation id="2278052315791335171">Ni fydd dileu'r cyfrinair hwn yn dileu'ch cyfrif ar <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Cyfeiriad bilio</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Rhowch gynnig ar yr argymhellion canlynol: gwnewch yn siŵr bod digon o le ar eich dyfais, rhowch gynnig arall ar allforio.</translation>
 <translation id="7686086654630106285">Rhagor am hysbysebion a awgrymir gan wefan</translation>
 <translation id="768618399695552958">Mae rhai o'r tudalennau rydych yn ymweld â nhw wedi'u rhaglwytho. Gellir rhaglwytho tudalennau drwy weinyddion Google pan fyddant wedi'u cysylltu o wefan Google.</translation>
+<translation id="7691043218961417207">Archwilio cynnwys i ddilyn</translation>
 <translation id="7698359219371678927">Crëwch e-bost yn <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Defnyddio data symudol</translation>
 <translation id="7709094866268987903">Bydd diddordebau a dynnwyd gennych yn ymddangos yma</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 c7477a2..36037e1 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Dine adgangskoder krypteres på din enhed, inden de gemmes i Googles Adgangskodeadministrator</translation>
 <translation id="2249635629516220541">Tilpas de oplysninger, som websites kan bruge til at vise dig annoncer</translation>
 <translation id="2259659629660284697">Eksportér adgangskoder…</translation>
+<translation id="2276231040576210443">Du kan altid vælge, hvad der skal synkroniseres, i <ph name="BEGIN_LINK1" />indstillingerne<ph name="END_LINK1" />. Google kan tilpasse Søgning og andre tjenester baseret på din historik.</translation>
 <translation id="2276696007612801991">Log ind på din Google-konto for at tjekke dine adgangskoder</translation>
 <translation id="2278052315791335171">Fjernelse af denne adgangskode sletter ikke din konto på <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Faktureringsadresse</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Noget gik galt.</translation>
 <translation id="8972098258593396643">Vil du downloade til standardmappen?</translation>
 <translation id="8987641763863173640">Administrer indstillinger for forhåndsvisning af video</translation>
+<translation id="8987736167266086032">Fortsæt, hvor du slap</translation>
 <translation id="8989968390305463310">Din browserhistorik påvirker de annoncer, som du ser, og de interesser, som er estimeret nedenfor. Af hensyn til beskyttelsen af dine personlige oplysninger sletter Chrome automatisk dine interesser en gang om måneden. Interesserne kan blive opdateret, medmindre du fjerner dem.</translation>
 <translation id="8993760627012879038">Åbn en ny fane i inkognitotilstand</translation>
 <translation id="8996847606757455498">Vælg en anden udbyder</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 3817ddc1..eea0610 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Deine Passwörter werden auf deinem Gerät verschlüsselt, bevor sie im Google Passwortmanager gespeichert werden</translation>
 <translation id="2249635629516220541">Du kannst die Informationen anpassen, die von Websites verwendet werden, um dir Werbung zu präsentieren</translation>
 <translation id="2259659629660284697">Passwörter exportieren…</translation>
+<translation id="2276231040576210443">In den <ph name="BEGIN_LINK1" />Einstellungen<ph name="END_LINK1" /> kannst du auswählen, was synchronisiert werden soll. Google kann die Google Suche und andere Dienste auf der Grundlage deines Verlaufs personalisieren.</translation>
 <translation id="2276696007612801991">Melde dich in deinem Google-Konto an, um deine Passwörter zu prüfen</translation>
 <translation id="2278052315791335171">Durch das Entfernen dieses Passworts wird dein Konto auf <ph name="SITE" /> nicht gelöscht</translation>
 <translation id="2286841657746966508">Rechnungsadresse</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Probiere folgende Tipps aus: Sorge dafür, dass auf deinem Gerät ausreichend Speicherplatz vorhanden ist, und wiederhole den Export.</translation>
 <translation id="7686086654630106285">Weitere Informationen zu Werbung, die von Websites vorgeschlagen wird</translation>
 <translation id="768618399695552958">Einige der Seiten, die du besuchst, werden vorab geladen. Diese Seiten werden über Google-Server geladen, wenn sie von einer Google Sites-Website verlinkt sind.</translation>
+<translation id="7691043218961417207">Inhalte, denen du folgen kannst</translation>
 <translation id="7698359219371678927">E-Mail in <ph name="APP_NAME" /> erstellen</translation>
 <translation id="7707922173985738739">Mobile Daten verwenden</translation>
 <translation id="7709094866268987903">Die von dir entfernten Interessen werden hier angezeigt</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Es gab ein Problem.</translation>
 <translation id="8972098258593396643">In Standardordner herunterladen?</translation>
 <translation id="8987641763863173640">Einstellungen für die Videovorschau verwalten</translation>
+<translation id="8987736167266086032">Da weitermachen, wo Sie aufgehört haben</translation>
 <translation id="8989968390305463310">Dein Browserverlauf hat Einfluss auf die unten stehenden, geschätzten Interessen und darauf, welche Werbung dir gezeigt wird. Zum Schutz deiner Daten löscht Chrome automatisch jeden Monat deine Interessen. Solange du deine Interessen nicht entfernst, können sie aktualisiert werden.</translation>
 <translation id="8993760627012879038">Neuen Tab im Inkognitomodus öffnen</translation>
 <translation id="8996847606757455498">Anderen Anbieter auswählen</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 636d6bde..c1312a9f8 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Οι κωδικοί πρόσβασης κρυπτογραφούνται στη συσκευή σας προτού αποθηκευτούν στον Διαχειριστή κωδικών πρόσβασης Google</translation>
 <translation id="2249635629516220541">Προσαρμόστε τις πληροφορίες που χρησιμοποιούνται από ιστοτόπους για την προβολή διαφημίσεων</translation>
 <translation id="2259659629660284697">Εξαγωγή κωδικών πρόσβασης…</translation>
+<translation id="2276231040576210443">Μπορείτε πάντα να επιλέξετε τα στοιχεία που θέλετε να συγχρονίσετε στις <ph name="BEGIN_LINK1" />ρυθμίσεις<ph name="END_LINK1" />. Η Google μπορεί να εξατομικεύει την Αναζήτηση και άλλες υπηρεσίες με βάση το ιστορικό σας.</translation>
 <translation id="2276696007612801991">Συνδεθείτε στον Λογαριασμό σας Google για να ελέγξετε τους κωδικούς πρόσβασής σας.</translation>
 <translation id="2278052315791335171">Η κατάργηση αυτού του κωδικού πρόσβασης δεν θα διαγράψει τον λογαριασμό σας στον ιστότοπο <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Διεύθυνση τιμολόγησης</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Λειτουργικό σύστημα</translation>
 <translation id="7605594153474022051">Ο συγχρονισμός δεν λειτουργεί</translation>
 <translation id="7612619742409846846">Έχετε συνδεθεί στο Google ως</translation>
+<translation id="7612989789287281429">Γίνεται σύνδεση…</translation>
 <translation id="7616551326690708776">Επιλέξτε ένα πρότυπο για την επισήμανσή σας.</translation>
 <translation id="7619072057915878432">Η λήψη του αρχείου <ph name="FILE_NAME" /> απέτυχε λόγω προβλημάτων στο δίκτυο.</translation>
 <translation id="7626032353295482388">Καλώς ήρθατε στο Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Προέκυψε πρόβλημα.</translation>
 <translation id="8972098258593396643">Λήψη στον προεπιλεγμένο φάκελο;</translation>
 <translation id="8987641763863173640">Διαχείριση ρυθμίσεων προεπισκόπησης βίντεο</translation>
+<translation id="8987736167266086032">Συνεχίστε από εκεί που σταματήσατε</translation>
 <translation id="8989968390305463310">Το ιστορικό περιήγησής σας επηρεάζει τις διαφημίσεις που βλέπετε και τις εκτιμήσεις για τα ενδιαφέροντά σας παρακάτω. Για την προστασία του απορρήτου σας, το Chrome διαγράφει αυτόματα τα ενδιαφέροντά σας σε κυλιόμενη βάση κάθε μήνα. Τα ενδιαφέροντα μπορούν να ανανεώνονται, εκτός εάν τα καταργήσετε.</translation>
 <translation id="8993760627012879038">Άνοιγμα καρτέλας σε κατάσταση ανώνυμης περιήγησης</translation>
 <translation id="8996847606757455498">Επιλογή άλλου παρόχου</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 3aab147..abf11e8 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Your passwords are encrypted on your device before they’re saved to Google Password Manager</translation>
 <translation id="2249635629516220541">Customise the info used by sites to show you ads</translation>
 <translation id="2259659629660284697">Export passwords…</translation>
+<translation id="2276231040576210443">You can always choose what to sync in <ph name="BEGIN_LINK1" />settings<ph name="END_LINK1" />. Google may personalise Search and other services based on your history.</translation>
 <translation id="2276696007612801991">Sign in to your Google Account to check your passwords</translation>
 <translation id="2278052315791335171">Deleting this password will not delete your account on <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Billing address</translation>
@@ -1494,6 +1495,7 @@
 <translation id="8970887620466824814">Something went wrong.</translation>
 <translation id="8972098258593396643">Download to default folder?</translation>
 <translation id="8987641763863173640">Manage video preview settings</translation>
+<translation id="8987736167266086032">Pick up from where you left off</translation>
 <translation id="8989968390305463310">Your browsing history affects the ads that you see and the interests as estimated below. To protect your privacy, Chrome auto-deletes your interests on a rolling basis each month. Interests can refresh unless you remove them.</translation>
 <translation id="8993760627012879038">Open a new tab in Incognito mode</translation>
 <translation id="8996847606757455498">Choose another provider</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 33e8b4c..8f647af 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Las contraseñas se encriptan en tu dispositivo antes de guardarse en el Administrador de contraseñas de Google</translation>
 <translation id="2249635629516220541">Personaliza la información que usan los sitios para mostrarte anuncios</translation>
 <translation id="2259659629660284697">Exportar contraseñas…</translation>
+<translation id="2276231040576210443">En la <ph name="BEGIN_LINK1" />configuración<ph name="END_LINK1" />, puedes elegir los datos para sincronizar en cualquier momento. Es posible que Google personalice la Búsqueda y otros servicios en función de tu historial.</translation>
 <translation id="2276696007612801991">Para verificar las contraseñas, accede a tu Cuenta de Google</translation>
 <translation id="2278052315791335171">Si borras esta contraseña, no se quitará tu cuenta de <ph name="SITE" />.</translation>
 <translation id="2286841657746966508">Dirección de facturación</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Intenta las siguientes sugerencias: Antes de exportar las contraseñas nuevamente, asegúrate de que haya espacio suficiente en tu dispositivo.</translation>
 <translation id="7686086654630106285">Obtén más información sobre los anuncios sugeridos por sitios</translation>
 <translation id="768618399695552958">Algunas de las páginas que visitas están precargadas. Las páginas pueden precargarse por medio de servidores de Google cuando están vinculadas desde un sitio de Google.</translation>
+<translation id="7691043218961417207">Explorar contenido para seguir</translation>
 <translation id="7698359219371678927">Crear correo electrónico en <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Usa los datos móviles.</translation>
 <translation id="7709094866268987903">Los intereses que quitaste aparecerán aquí.</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Se produjo un error</translation>
 <translation id="8972098258593396643">¿Deseas descargarlo a la carpeta predeterminada?</translation>
 <translation id="8987641763863173640">Administra la configuración de la vista previa de videos.</translation>
+<translation id="8987736167266086032">Retoma la sesión desde donde la dejaste</translation>
 <translation id="8989968390305463310">Tu historial de navegación afecta los anuncios que ves y los intereses como se estima a continuación. Para proteger tu privacidad, Chrome borra tus intereses automáticamente de manera continua todos los meses. Los intereses se pueden actualizar a no ser que los quites.</translation>
 <translation id="8993760627012879038">Abrir ventana nueva en modo de navegación incógnito</translation>
 <translation id="8996847606757455498">Elegir otro proveedor</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 00122f6..cb28026 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Tus contraseñas se cifran en tu dispositivo antes de guardarse en el Gestor de contraseñas de Google</translation>
 <translation id="2249635629516220541">Personaliza la información que usan los sitios para mostrarte anuncios</translation>
 <translation id="2259659629660284697">Exportar contraseñas…</translation>
+<translation id="2276231040576210443">Siempre puedes seleccionar qué contenido quieres sincronizar en los <ph name="BEGIN_LINK1" />ajustes<ph name="END_LINK1" />. Google puede personalizar la Búsqueda y otros servicios en función de tu historial.</translation>
 <translation id="2276696007612801991">Inicia sesión en tu cuenta de Google para comprobar tus contraseñas</translation>
 <translation id="2278052315791335171">Al eliminar esta contraseña, no se eliminará tu cuenta de <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Dirección de facturación</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Ha ocurrido un error.</translation>
 <translation id="8972098258593396643">¿Quieres descargarlo en la carpeta predeterminada?</translation>
 <translation id="8987641763863173640">Gestionar los ajustes de vista previa de vídeo</translation>
+<translation id="8987736167266086032">Continúa donde lo dejaste</translation>
 <translation id="8989968390305463310">Tu historial de navegación influye en los anuncios que ves y en los intereses que se estiman abajo. Para proteger tu privacidad, Chrome elimina automáticamente tus intereses cada mes. Los intereses se actualizan a menos que los elimines.</translation>
 <translation id="8993760627012879038">Abre una nueva pestaña en modo Incógnito</translation>
 <translation id="8996847606757455498">Elegir otro proveedor</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 05ad504..7b258e3 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Paroolid krüpteeritakse teie seadmes, enne kui need salvestatakse Google'i paroolihaldurisse</translation>
 <translation id="2249635629516220541">Kohandage teavet, mida saidid teile reklaamide kuvamiseks kasutavad</translation>
 <translation id="2259659629660284697">Paroolide eksportimine …</translation>
+<translation id="2276231040576210443">Jaotises <ph name="BEGIN_LINK1" />Seaded<ph name="END_LINK1" /> saate igal ajal valida, mida sünkroonida. Google võib Otsingut ja muid teenuseid teie ajaloo alusel isikupärastada.</translation>
 <translation id="2276696007612801991">Paroolide kontrollimiseks logige sisse oma Google'i kontole</translation>
 <translation id="2278052315791335171">Selle parooli kustutamisel ei kustutata teie kontot saidil <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Arveldusaadress</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Järgige neid nõuandeid: veenduge, et seadmes oleks piisavalt ruumi, seejärel proovige uuesti eksportida.</translation>
 <translation id="7686086654630106285">Lisateave saidi soovitatud reklaamide kohta</translation>
 <translation id="768618399695552958">Mõned teie külastatavad lehed on eellaaditud. Kui lehed on lingitud Google'i saidilt, võidakse need eellaadida Google'i serverite kaudu.</translation>
+<translation id="7691043218961417207">Avastage sisu, mida jälgida</translation>
 <translation id="7698359219371678927">Looge meil rakenduses <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Kasuta mobiilset andmesidet</translation>
 <translation id="7709094866268987903">Eemaldatud huvid kuvatakse siin</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Midagi läks valesti.</translation>
 <translation id="8972098258593396643">Kas soovite alla laadida vaikekausta?</translation>
 <translation id="8987641763863173640">Videoeelvaate seadete haldamine</translation>
+<translation id="8987736167266086032">Jätkake poolelijäänud kohast</translation>
 <translation id="8989968390305463310">Teie sirvimisajalugu mõjutab kuvatavaid reklaame ja huvisid vastavalt allolevatele prognoosidele. Teie privaatsuse kaitsmiseks kustutab Chrome automaatselt teie huvisid jooksvalt iga kuu. Huvisid võidakse värskendada, kui te neid ei eemalda.</translation>
 <translation id="8993760627012879038">Uue vahelehe avamine inkognito režiimis</translation>
 <translation id="8996847606757455498">Valige teine teenusepakkuja</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 6b65452..eabaa10 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Pasahitzak gailuan bertan enkriptatzen dira Google-ren Pasahitz-kudeatzailea zerbitzuan gorde aurretik</translation>
 <translation id="2249635629516220541">Pertsonalizatu webguneek iragarkiak erakusteko erabiltzen duten informazioa</translation>
 <translation id="2259659629660284697">Esportatu pasahitzak…</translation>
+<translation id="2276231040576210443">Zer sinkronizatu nahi duzun aukeratzeko, joan <ph name="BEGIN_LINK1" />Ezarpenak<ph name="END_LINK1" /> atalera. Baliteke Google-k Bilaketa eta beste zerbitzu batzuk pertsonalizatzea zure historiaren arabera.</translation>
 <translation id="2276696007612801991">Hasi saioa Google-ko kontuan pasahitzak egiaztatzeko</translation>
 <translation id="2278052315791335171">Pasahitza ezabatzen baduzu ere, ez da ezabatuko <ph name="SITE" /> webguneko kontua</translation>
 <translation id="2286841657746966508">Fakturazio-helbidea</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Arazo bat izan da.</translation>
 <translation id="8972098258593396643">Karpeta lehenetsira deskargatu nahi duzu?</translation>
 <translation id="8987641763863173640">Kudeatu bideoak aurreikusteko ezarpenak</translation>
+<translation id="8987736167266086032">Jarraitu utzi zenuen tokitik</translation>
 <translation id="8989968390305463310">Agertzen zaizkizun iragarkietan eta behean estimatutako interesetan eragina du arakatze-historiak. Zure pribatutasuna babesteko, Chrome-k automatikoki ezabatzen ditu zure interesak hilero. Interesak eguneratu egin daitezke, haiek kendu ezean.</translation>
 <translation id="8993760627012879038">Ireki beste fitxa bat ezkutuko moduan</translation>
 <translation id="8996847606757455498">Aukeratu beste hornitzaile bat</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 bce6f0a27..c528c604 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">‏گذرواژه‌هایتان قبل‌از ذخیره شدن در «مدیر گذرواژه Google» در دستگاهتان رمزگذاری می‌شود</translation>
 <translation id="2249635629516220541">سفارشی کردن اطلاعات مورداستفاده سایت‌ها برای نمایش آگهی به شما</translation>
 <translation id="2259659629660284697">درحال صادر کردن گذرواژه‌ها…</translation>
+<translation id="2276231040576210443">‏همواره می‌توانید در <ph name="BEGIN_LINK1" />تنظیمات<ph name="END_LINK1" /> انتخاب کنید چه مواردی همگام‌سازی شوند. Google ممکن است براساس سابقه‌تان «جستجو» و سرویس‌های دیگر را شخصی کند.</translation>
 <translation id="2276696007612801991">‏برای بررسی گذرواژه‌هایتان، به سیستم حساب Google وارد شوید</translation>
 <translation id="2278052315791335171">حذف این گذرواژه باعث حذف شدن حساب شما در <ph name="SITE" /> نخواهد شد</translation>
 <translation id="2286841657746966508">آدرس ارسال صورتحساب</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">مشکلی پیش آمد.</translation>
 <translation id="8972098258593396643">در پوشه پیش‌فرض بارگیری شود؟</translation>
 <translation id="8987641763863173640">مدیریت تنظیمات پیش‌دید ویدیو</translation>
+<translation id="8987736167266086032">ادامه دادن از جایی که ترک کرده‌اید</translation>
 <translation id="8989968390305463310">‏سابقه مرور شما بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chrome علایقتان را هر ماه به‌طور خودکار و چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
 <translation id="8993760627012879038">باز کردن برگه جدیدی در حالت ناشناس</translation>
 <translation id="8996847606757455498">انتخاب ارائه‌دهنده دیگر</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 89c4daa9..ed32e72 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Salasanat salataan laitteella ennen niiden tallentamista Googlen Salasanojen ylläpitoon</translation>
 <translation id="2249635629516220541">Valitse, mitä tietoja sivustot käyttävät mainosten näyttämiseen</translation>
 <translation id="2259659629660284697">Vie salasanat…</translation>
+<translation id="2276231040576210443">Voit valita synkronoitavan sisällön <ph name="BEGIN_LINK1" />asetuksista<ph name="END_LINK1" />. Google voi personoida Hakua ja muita palveluita historiasi perusteella.</translation>
 <translation id="2276696007612801991">Kirjaudu Google-tilillesi tarkistaaksesi salasanasi</translation>
 <translation id="2278052315791335171">Vaikka poistat salasanan, tiliäsi (<ph name="SITE" />) ei poisteta</translation>
 <translation id="2286841657746966508">Laskutusosoite</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Kokeile seuraavia keinoja: varmista, että laitteellasi on tarpeeksi tilaa, yritä viedä uudelleen.</translation>
 <translation id="7686086654630106285">Lisätietoja sivuston ehdottamista mainoksista</translation>
 <translation id="768618399695552958">Jotkin avaamistasi sivuista ovat esiladattuja. Sivut on mahdollisesti esiladattu Googlen palvelimien kautta, kun niihin on linkitetty Googlen sivustolta.</translation>
+<translation id="7691043218961417207">Tutustu seurattavaan sisältöön</translation>
 <translation id="7698359219371678927">Luo sähköposti sovelluksessa <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Käytä mobiilidataa</translation>
 <translation id="7709094866268987903">Poistamasi kiinnostuksen kohteet näkyvät täällä</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Tapahtui virhe.</translation>
 <translation id="8972098258593396643">Ladataanko tiedosto oletuskansioon?</translation>
 <translation id="8987641763863173640">Muuta videoesikatselun asetuksia</translation>
+<translation id="8987736167266086032">Jatka siitä, mihin jäit</translation>
 <translation id="8989968390305463310">Selaushistoria vaikuttaa näkemiisi mainoksiin ja alla kuvatulla tavalla arvioituihin kiinnostuksen kohteisiisi. Yksityisyyden suojaamiseksi Chrome poistaa kiinnostuksen kohteesi automaattisesti kuukausittain. Kiinnostuksen kohteet voivat päivittyä, ellet poista niitä.</translation>
 <translation id="8993760627012879038">Avaa uusi välilehti incognito-tilassa</translation>
 <translation id="8996847606757455498">Valitse toinen palvelu</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 8d268d22..b85029b 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Ine-encrypt ang iyong mga password sa device mo bago i-save ang mga ito sa Google Password Manager</translation>
 <translation id="2249635629516220541">I-customize ang impormasyong ginagamit ng mga site para magpakita sa iyo ng mga ad</translation>
 <translation id="2259659629660284697">I-export ang mga password…</translation>
+<translation id="2276231040576210443">Mapipili mo kung ano ang isi-sync anumang oras sa <ph name="BEGIN_LINK1" />mga setting<ph name="END_LINK1" />. Puwedeng i-personalize ng Google ang Search at iba pang mga serbisyo batay sa iyong history.</translation>
 <translation id="2276696007612801991">Mag-sign in sa iyong Google account para masuri ang mga password mo</translation>
 <translation id="2278052315791335171">Kapag na-delete ang password na ito, hindi ide-delete ang iyong account sa <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Billing address</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Operating system</translation>
 <translation id="7605594153474022051">Hindi gumagana ang pag-sync</translation>
 <translation id="7612619742409846846">Naka-sign in sa Google bilang</translation>
+<translation id="7612989789287281429">Sina-sign in ka…</translation>
 <translation id="7616551326690708776">Pumili ng template para sa iyong highlight.</translation>
 <translation id="7619072057915878432">Hindi na-download ang <ph name="FILE_NAME" /> dahil sa mga problema sa network.</translation>
 <translation id="7626032353295482388">Welcome sa Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Nagkaproblema.</translation>
 <translation id="8972098258593396643">I-download sa default na folder?</translation>
 <translation id="8987641763863173640">Pamahalaan ang Mga Setting ng Preview ng Video</translation>
+<translation id="8987736167266086032">Bumalik kung saan ka tumigil</translation>
 <translation id="8989968390305463310">Naaapektuhan ng iyong history ng pag-browse ang mga ad na nakikita mo at mga interes tulad ng tinatantya sa ibaba. Para protektahan ang iyong privacy, awtomatikong ide-delete ng Chrome ang mga interes mo sa rolling na paraan bawat buwan. Puwedeng ma-refresh ang mga interes maliban na lang kung alisin mo ang mga ito.</translation>
 <translation id="8993760627012879038">Magbukas ng bagong tab sa Incognito mode</translation>
 <translation id="8996847606757455498">Pumili ng ibang provider</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 93fe7cf..a83b2f8 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Vos mots de passe sont chiffrés sur votre appareil avant d'être enregistrés dans le gestionnaire de mots de passe Google</translation>
 <translation id="2249635629516220541">Personnaliser les renseignements utilisés par les sites pour vous suggérer des annonces</translation>
 <translation id="2259659629660284697">Exporter les mots de passe…</translation>
+<translation id="2276231040576210443">Vous pouvez toujours choisir les éléments à synchroniser dans les <ph name="BEGIN_LINK1" />paramètres<ph name="END_LINK1" />. Google peut personnaliser la recherche et d'autres services en fonction de votre historique.</translation>
 <translation id="2276696007612801991">Connectez-vous à votre compte Google pour vérifier vos mots de passe</translation>
 <translation id="2278052315791335171">Supprimer ce mot de passe ne supprimera pas également votre compte sur <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Adresse de facturation</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Une erreur s'est produite.</translation>
 <translation id="8972098258593396643">Télécharger vers le dossier par défaut?</translation>
 <translation id="8987641763863173640">Gérez les paramètres d'aperçu de la vidéo</translation>
+<translation id="8987736167266086032">Reprenez là où vous vous étiez arrêté</translation>
 <translation id="8989968390305463310">Votre historique de navigation a une incidence sur les annonces que vous voyez ainsi que sur les centres d'intérêt tels qu'ils sont estimés ci-dessous. Afin de protéger votre confidentialité, Chrome supprime automatiquement et de façon continue vos centres d'intérêt chaque mois. Les centres d'intérêt peuvent être actualisés à moins que vous ne les retiriez.</translation>
 <translation id="8993760627012879038">Ouvrir un nouvel onglet en mode de nav. privée</translation>
 <translation id="8996847606757455498">Choisir un autre fournisseur</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 b7b71905..56b275e 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Vos mots de passe sont chiffrés sur votre appareil avant d'être enregistrés dans le Gestionnaire de mots de passe Google</translation>
 <translation id="2249635629516220541">Personnaliser les infos utilisées par les sites pour vous présenter des annonces</translation>
 <translation id="2259659629660284697">Exporter les mots de passe…</translation>
+<translation id="2276231040576210443">Vous pouvez toujours choisir quels éléments synchroniser dans les <ph name="BEGIN_LINK1" />paramètres<ph name="END_LINK1" />. Google peut personnaliser la recherche et d'autres services en fonction de votre historique.</translation>
 <translation id="2276696007612801991">Connectez-vous à votre compte Google pour vérifier vos mots de passe</translation>
 <translation id="2278052315791335171">La suppression de ce mot de passe n'entraînera pas celle de votre compte sur <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Adresse de facturation</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Essayez l'astuce suivante°: assurez-vous de disposer de suffisamment d'espace sur votre appareil, puis tentez à nouveau d'exporter les mots de passe.</translation>
 <translation id="7686086654630106285">En savoir plus sur les annonces suggérées par les sites</translation>
 <translation id="768618399695552958">Certaines pages que vous consultez sont préchargées. Elles peuvent l'être via les serveurs de Google lorsqu'elles sont liées à partir d'un site Google.</translation>
+<translation id="7691043218961417207">Découvrir des contenus à suivre</translation>
 <translation id="7698359219371678927">Créer un e-mail dans <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Utilisera les données mobiles</translation>
 <translation id="7709094866268987903">Les centres d'intérêt que vous supprimez s'afficheront ici</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Un problème est survenu</translation>
 <translation id="8972098258593396643">Télécharger dans le dossier par défaut ?</translation>
 <translation id="8987641763863173640">Gérez les paramètres de l'aperçu vidéo</translation>
+<translation id="8987736167266086032">Reprenez là où vous vous étiez arrêté</translation>
 <translation id="8989968390305463310">Votre historique de navigation influe sur les annonces que vous voyez et les centres d'intérêt estimés ci-dessous. Pour protéger votre confidentialité, Chrome supprime automatiquement vos centres d'intérêt tous les mois. Les centres d'intérêt peuvent s'actualiser, sauf si vous les supprimez.</translation>
 <translation id="8993760627012879038">Ouvrir un nouvel onglet en mode navigation privée</translation>
 <translation id="8996847606757455498">Sélectionner un autre fournisseur</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 ec4aee25..b9febef 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Os teus contrasinais encríptanse no dispositivo antes de gardarse no xestor de contrasinais de Google</translation>
 <translation id="2249635629516220541">Personaliza a información que usan os sitios para mostrarche anuncios</translation>
 <translation id="2259659629660284697">Exportar contrasinais…</translation>
+<translation id="2276231040576210443">Sempre podes escoller na <ph name="BEGIN_LINK1" />configuración<ph name="END_LINK1" /> o contido que queres sincronizar. Google pode personalizar a Busca e outros servizos en función do teu historial.</translation>
 <translation id="2276696007612801991">Inicia sesión na túa Conta de Google para comprobar os teus contrasinais</translation>
 <translation id="2278052315791335171">Ao eliminar este contrasinal non se eliminará a túa conta de <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Enderezo de facturación</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Sigue estes consellos: asegúrate de que hai espazo suficiente no dispositivo e proba a exportar os contrasinais de novo.</translation>
 <translation id="7686086654630106285">Máis información sobre os anuncios suxeridos polos sitios</translation>
 <translation id="768618399695552958">Precárganse algunhas das páxinas que visitas. As páxinas poden precargarse a través dos nosos servidores se están vinculadas a un sitio de Google.</translation>
+<translation id="7691043218961417207">Descubre contido para seguir</translation>
 <translation id="7698359219371678927">Crea un correo electrónico en <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Utilizaranse datos móbiles</translation>
 <translation id="7709094866268987903">Os intereses que quites mostraranse aquí</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Produciuse un erro.</translation>
 <translation id="8972098258593396643">Queres gardar a descarga no cartafol predeterminado?</translation>
 <translation id="8987641763863173640">Xestionar configuración da vista previa dos vídeos</translation>
+<translation id="8987736167266086032">Continúa onde o deixaches</translation>
 <translation id="8989968390305463310">O teu historial de navegación aféctalles aos anuncios que se che mostran e aos intereses estimados que se indican abaixo. Para protexer a túa privacidade, Chrome elimina automaticamente os teus intereses cada mes. A menos que os quites, os intereses poden actualizarse.</translation>
 <translation id="8993760627012879038">Abrir unha nova pestana no modo de incógnito</translation>
 <translation id="8996847606757455498">Escoller outro provedor</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 3724a15a..75c0495 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">તમારા પાસવર્ડ Google પાસવર્ડ મેનેજર પર સાચવવામાં આવે તે પહેલાં તેમને તમારા ડિવાઇસ પર એન્ક્રિપ્ટ કરવામાં આવે છે</translation>
 <translation id="2249635629516220541">તમારી જાહેરાતો બતાવવા માટે સાઇટ દ્વારા ઉપયોગમાં લેવામાં આવતી માહિતી કસ્ટમાઇઝ કરો</translation>
 <translation id="2259659629660284697">બધા પાસવર્ડની નિકાસ કરો…</translation>
+<translation id="2276231040576210443">શું સિંક કરવું, તે તમે <ph name="BEGIN_LINK1" />સેટિંગ<ph name="END_LINK1" />માં જઈને કોઈપણ સમયે પસંદ કરી શકો છો. Google તમારા ઇતિહાસના આધારે Search અને અન્ય સેવાઓને મનગમતી બનાવી શકે છે.</translation>
 <translation id="2276696007612801991">તમારા પાસવર્ડ ચેક કરવા માટે તમારા Google એકાઉન્ટમાં સાઇન ઇન કરો</translation>
 <translation id="2278052315791335171">આ પાસવર્ડ ડિલીટ કરવાથી <ph name="SITE" /> પરનું તમારું એકાઉન્ટ ડિલીટ થશે નહીં</translation>
 <translation id="2286841657746966508">બિલિંગ સરનામું</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">કંઈક ખોટું થયું.</translation>
 <translation id="8972098258593396643">ડિફૉલ્ટ ફોલ્ડરમાં ડાઉનલોડ કરીએ?</translation>
 <translation id="8987641763863173640">વીડિયોના પ્રીવ્યૂના સેટિંગ મેનેજ કરો</translation>
+<translation id="8987736167266086032">તમે જ્યાંથી છોડેલું ત્યાંથી ચૂંટો</translation>
 <translation id="8989968390305463310">તમારો બ્રાઉઝિંગ ઇતિહાસ તમે જુઓ છો તે જાહેરાતોને અને નીચે જણાવેલી અનુમાનિત રુચિઓને અસર કરે છે. તમારી પ્રાઇવસીની સુરક્ષા કરવા માટે Chrome નવા વિષયો આવતા જાય, તેના આધારે દર મહિને તમારી રુચિના વિષયોને ઑટોમૅટિક રીતે ડિલીટ કરે છે. જો તમે રુચિઓને કાઢી ન નાખો, તો તે રિફ્રેશ થઈ શકે છે.</translation>
 <translation id="8993760627012879038">છુપા મોડમાં એક નવું ટૅબ ખોલો</translation>
 <translation id="8996847606757455498">કોઈ અન્ય પ્રદાતા પસંદ કરો</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 8942c357..92193a81 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Google पासवर्ड मैनेजर में सेव होने से पहले, आपके डिवाइस पर पासवर्ड एन्क्रिप्ट (सुरक्षित) किए जाते हैं</translation>
 <translation id="2249635629516220541">विज्ञापन दिखाने के लिए साइटें जिस जानकारी का इस्तेमाल करती हैं उसमें अपनी ज़रूरत के हिसाब से बदलाव करें</translation>
 <translation id="2259659629660284697">पासवर्ड निर्यात करें…</translation>
+<translation id="2276231040576210443"><ph name="BEGIN_LINK1" />सेटिंग<ph name="END_LINK1" /> में जाकर, कभी भी यह चुना जा सकता है कि कौनसा डेटा सिंक करना है. Google आपके इतिहास के आधार पर, Search और अन्य सेवाओं को आपकी पसंद के मुताबिक बना सकता है.</translation>
 <translation id="2276696007612801991">अपने पासवर्ड की जांच करने के लिए, Google खाते में साइन इन करें</translation>
 <translation id="2278052315791335171">यह पासवर्ड मिटाने से, आपका <ph name="SITE" /> वाला खाता नहीं मिटेगा</translation>
 <translation id="2286841657746966508">बिलिंग पता</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">ऑपरेटिंग सिस्टम</translation>
 <translation id="7605594153474022051">समन्वयन काम नहीं कर रहा है</translation>
 <translation id="7612619742409846846">आपने Google में इस ईमेल पते से साइन इन किया है</translation>
+<translation id="7612989789287281429">साइन इन किया जा रहा है…</translation>
 <translation id="7616551326690708776">अपनी हाइलाइट के लिए कोई टेंप्लेट चुनें.</translation>
 <translation id="7619072057915878432">नेटवर्क विफलताओं के कारण <ph name="FILE_NAME" /> डाउनलोड विफल रहा.</translation>
 <translation id="7626032353295482388">Chrome में आपका स्वागत है</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">कुछ गड़बड़ी हुई.</translation>
 <translation id="8972098258593396643">डिफ़ॉल्ट फ़ोल्डर में डाउनलोड करें?</translation>
 <translation id="8987641763863173640">वीडियो की झलक की सेटिंग मैनेज करें</translation>
+<translation id="8987736167266086032">वहीं से प्रारंभ करें जहां आपने छोड़ा था</translation>
 <translation id="8989968390305463310">आपके ब्राउज़िंग इतिहास से इस बात पर असर पड़ता है कि आपको कौनसे विज्ञापन दिखेंगे. साथ ही, यहां दिए गए आपकी पसंद के विषयों के अनुमान पर भी इसका असर पड़ता है. आपकी निजता को सुरक्षित रखने के लिए, Chrome हर महीने आपकी पसंद के विषयों को ऑटोमैटिकली मिटा देता है. पसंद के विषय तब तक रीफ़्रेश किए जा सकते हैं, जब तक उन्हें मिटाया नहीं जाता.</translation>
 <translation id="8993760627012879038">गुप्त मोड में नया टैब खोलें</translation>
 <translation id="8996847606757455498">सेवा देने वाली कोई और कंपनी चुनें</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 df82be0..b6d3917 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Vaše se zaporke šifriraju na uređaju prije spremanja na Google upravitelj zaporki</translation>
 <translation id="2249635629516220541">Prilagodite podatke koje web-lokacije koriste da bi vam prikazivale oglase</translation>
 <translation id="2259659629660284697">Izvoz zaporki...</translation>
+<translation id="2276231040576210443">U <ph name="BEGIN_LINK1" />postavkama<ph name="END_LINK1" /> možete odabrati što će se sinkronizirati. Google može prilagoditi Pretraživanje i druge usluge na temelju vaše povijesti.</translation>
 <translation id="2276696007612801991">Prijavite se na svoj Google račun da biste provjerili zaporke</translation>
 <translation id="2278052315791335171">Brisanjem zaporke neće se izbrisati vaš račun na <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Adresa za naplatu</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Nešto nije u redu.</translation>
 <translation id="8972098258593396643">Želite li preuzeti u zadanu mapu?</translation>
 <translation id="8987641763863173640">Upravljanje postavkama pregleda videozapisa</translation>
+<translation id="8987736167266086032">Nastavite tamo gdje ste stali</translation>
 <translation id="8989968390305463310">Vaša povijest pregledavanja utječe na oglase koji vam se prikazuju i interese procijenjene u nastavku. Da bi zaštitio vašu privatnost, Chrome automatski kontinuirano briše vaše interese svakog mjeseca. Interesi se mogu osvježiti ako ih ne uklonite.</translation>
 <translation id="8993760627012879038">Otvaranje nove kartice u anonimnom načinu</translation>
 <translation id="8996847606757455498">Odaberi drugog davatelja usluga</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 823a8b7f8..0fcadc4 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Jelszavai titkosításra kerülnek az eszközön, mielőtt elmenti őket a rendszer a Google Jelszókezelőbe</translation>
 <translation id="2249635629516220541">Megszabhatja, hogy a webhelyek milyen adatokat használhassanak, amikor hirdetéseket jelenítnek meg Önnek</translation>
 <translation id="2259659629660284697">Jelszavak exportálása…</translation>
+<translation id="2276231040576210443">A <ph name="BEGIN_LINK1" />beállítások<ph name="END_LINK1" /> között bármikor módosíthatja a szinkronizálni kívánt elemeket. A Google az Ön előzményei alapján személyre szabhatja a Keresőt és más szolgáltatásokat.</translation>
 <translation id="2276696007612801991">Jelszavai ellenőrzéséhez jelentkezzen be Google-fiókjába</translation>
 <translation id="2278052315791335171">A jelszó eltávolításával nem törli fiókját a következő domainről: <ph name="SITE" />.</translation>
 <translation id="2286841657746966508">Számlázási cím</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Operációs rendszer</translation>
 <translation id="7605594153474022051">A szinkronizálás nem működik.</translation>
 <translation id="7612619742409846846">Bejelentkezve a Google rendszerébe mint</translation>
+<translation id="7612989789287281429">Bejelentkezés…</translation>
 <translation id="7616551326690708776">Válasszon sablont a kiemeléshez.</translation>
 <translation id="7619072057915878432">A következő fájl letöltése hálózati hibák miatt nem sikerült: <ph name="FILE_NAME" />.</translation>
 <translation id="7626032353295482388">A Chrome üdvözli Önt!</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Hiba történt.</translation>
 <translation id="8972098258593396643">Letölti az alapértelmezett mappába?</translation>
 <translation id="8987641763863173640">Videó-előnézeti beállítások kezelése</translation>
+<translation id="8987736167266086032">Ott folytathatja, ahol abbahagyta</translation>
 <translation id="8989968390305463310">Böngészési előzményei határozzák meg az Ön számára megjelenő hirdetéseket és az alább látható módon felmért érdeklődési köröket. Adatai védelme érdekében a Chrome havi rendszerességgel automatikusan törli az Ön érdeklődési köreit. Az érdeklődési körök frissülhetnek, kivéve, ha eltávolítja őket.</translation>
 <translation id="8993760627012879038">Új lap megnyitása inkognitó módban</translation>
 <translation id="8996847606757455498">Másik szolgáltató választása</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 bb86542d..b457d057 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Գաղտնաբառերը գաղտնագրվում են ձեր սարքում, այնուհետև պահվում Google Գաղտնաբառերի կառավարիչում։</translation>
 <translation id="2249635629516220541">Կառավարեք տվյալները, որոնք օգտագործում են կայքերը՝ ձեզ գովազդ ցուցադրելու համար</translation>
 <translation id="2259659629660284697">Գաղտնաբառերի արտահանում…</translation>
+<translation id="2276231040576210443">Դուք ցանկացած ժամանակ կարող եք անցնել <ph name="BEGIN_LINK1" />կարգավորումներ<ph name="END_LINK1" /> և ընտրել, թե ինչն եք ուզում համաժամացնել։ Google-ը կարող է ձեր պատմության հիման վրա անհատականացնել Որոնումը և այլ ծառայությունները։</translation>
 <translation id="2276696007612801991">Մտեք Google հաշիվ՝ ձեր գաղտնաբառերը ստուգելու համար</translation>
 <translation id="2278052315791335171">Եթե հեռացնեք այս գաղտնաբառը, ձեր հաշիվը չի ջնջվի <ph name="SITE" /> կայքից։</translation>
 <translation id="2286841657746966508">Վճարային հասցե</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Փորձեք անել հետևյալը․ համոզվեք, որ ձեր սարքում բավարար տարածք կա և նորից փորձեք արտահանել։</translation>
 <translation id="7686086654630106285">Կայքերի կողմից առաջարկվող գովազդների մասին</translation>
 <translation id="768618399695552958">Ձեր կողմից այցելվող որոշ էջեր նախապես են բեռնվում։ Եթե հղումը կատարվում է Google-ի որևէ կայքից, նախաբեռնումը կարող է կատարվել Google-ի սերվերների միջոցով։</translation>
+<translation id="7691043218961417207">Բացահայտեք հետաքրքիր բովանդակություն</translation>
 <translation id="7698359219371678927">Ստեղծեք նամակ <ph name="APP_NAME" /> հավելվածում</translation>
 <translation id="7707922173985738739">Օգտագործել բջջային ինտերնետ</translation>
 <translation id="7709094866268987903">Այստեղ կհայտնվեն ձեր հեռացրած հետաքրքրությունները</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Սխալ առաջացավ:</translation>
 <translation id="8972098258593396643">Ներբեռնե՞լ կանխադրված պանակ</translation>
 <translation id="8987641763863173640">Կառավարել տեսանյութերի նախադիտման կարգավորումները</translation>
+<translation id="8987736167266086032">Շարունակեք այնտեղից, որտեղ կանգ էիք առել</translation>
 <translation id="8989968390305463310">Ձեր այցելությունների պատմությունն ազդում է ձեզ ցուցադրվող գովազդի և ստորև ներկայացված հետաքրքրությունների վրա։ Ձեր գաղտնիությունը պաշտպանելու նպատակով Chrome-ը ամեն ամիս ավտոմատ ջնջում է ձեր հետաքրքրությունները։ Հետաքրքրությունները կարող են թարմացվել, եթե դրանք չհեռացնեք։</translation>
 <translation id="8993760627012879038">Բացել նոր ներդիր ինկոգնիտո ռեժիմում</translation>
 <translation id="8996847606757455498">Ընտրել մեկ այլ մատակարար</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 43825cab..690b7104 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Sandi Anda dienkripsi di perangkat sebelum disimpan ke Pengelola Sandi Google</translation>
 <translation id="2249635629516220541">Sesuaikan info yang digunakan situs untuk menampilkan iklan</translation>
 <translation id="2259659629660284697">Ekspor sandi…</translation>
+<translation id="2276231040576210443">Anda dapat memilih jenis data yang akan disinkronkan di <ph name="BEGIN_LINK1" />setelan<ph name="END_LINK1" /> kapan saja. Google dapat mempersonalisasi Penelusuran dan layanan lainnya berdasarkan histori Anda.</translation>
 <translation id="2276696007612801991">Login ke Akun Google Anda untuk memeriksa sandi</translation>
 <translation id="2278052315791335171">Menghapus sandi ini tidak akan menghapus akun Anda di <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Alamat penagihan</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Terjadi error.</translation>
 <translation id="8972098258593396643">Download ke folder default?</translation>
 <translation id="8987641763863173640">Mengelola Setelan Pratinjau Video</translation>
+<translation id="8987736167266086032">Lanjutkan dari saat terakhir Anda menggunakannya</translation>
 <translation id="8989968390305463310">Histori penjelajahan Anda memengaruhi iklan yang Anda lihat dan minat yang diperkirakan di bawah. Untuk melindungi privasi Anda, Chrome otomatis menghapus minat Anda secara berkala setiap bulan. Minat dapat diperbarui kecuali jika Anda menghapusnya.</translation>
 <translation id="8993760627012879038">Membuka tab baru dalam mode Samaran</translation>
 <translation id="8996847606757455498">Pilih penyedia lain</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 f4fd3a4..7a4ac629 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Aðgangsorðin þín eru dulkóðuð í tækinu áður en þau eru vistuð í aðgangsorðastjórnun Google</translation>
 <translation id="2249635629516220541">Sérsníddu upplýsingarnar sem vefsvæði nota til að birta þér auglýsingar</translation>
 <translation id="2259659629660284697">Flytja út aðgangsorð…</translation>
+<translation id="2276231040576210443">Þú getur alltaf valið hvað á að samstilla í <ph name="BEGIN_LINK1" />stillingunum<ph name="END_LINK1" />. Google kann að sérsníða Leit og aðrar þjónustur í samræmi við ferilinn þinn.</translation>
 <translation id="2276696007612801991">Skráðu þig inn á Google reikninginn þinn til að athuga aðgangsorðin þín</translation>
 <translation id="2278052315791335171">Reikningnum þínum á <ph name="SITE" /> verður ekki eytt þó að þessu aðgangsorði verði eytt</translation>
 <translation id="2286841657746966508">Heimilisfang greiðanda</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Prófaðu eftirfarandi: Gakktu úr skugga um að nóg pláss sé á tækinu og reyndu að flytja út aftur.</translation>
 <translation id="7686086654630106285">Nánar um auglýsingar sem vefsvæði leggja til</translation>
 <translation id="768618399695552958">Sumar síður sem þú opnar eru forhlaðnar. Síður kunna að forhlaðast í gegnum netþjóna Google þegar þær eru tengdar Google vefsvæði.</translation>
+<translation id="7691043218961417207">Skoðaðu efni til að fylgja</translation>
 <translation id="7698359219371678927">Skrifa tölvupóst í <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Nota farsímagögn</translation>
 <translation id="7709094866268987903">Áhugamál sem þú fjarlægðir birtast hér</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Eitthvað fór úrskeiðis.</translation>
 <translation id="8972098258593396643">Hlaða niður í sjálfgefna möppu?</translation>
 <translation id="8987641763863173640">Stjórna stillingum forskoðunar myndskeiða</translation>
+<translation id="8987736167266086032">Haltu áfram þaðan sem frá var horfið</translation>
 <translation id="8989968390305463310">Vafraferillinn þinn hefur áhrif á auglýsingarnar sem þú sérð og áhugasviðin sem eru áætluð hér fyrir neðan. Til að gæta persónuverndar þinnar eyðir Chrome áhugamálunum þínum sjálfkrafa mánaðarlega. Áhugasvið verða hugsanlega endurnýjuð nema þú fjarlægir þau.</translation>
 <translation id="8993760627012879038">Opna nýjan flipa í huliðsstillingu</translation>
 <translation id="8996847606757455498">Velja aðra veitu</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 7de97e0..4bf0d6c 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Le tue password vengono criptate sul dispositivo prima di essere salvate in Gestore delle password di Google</translation>
 <translation id="2249635629516220541">Personalizza le informazioni usate dai siti per mostrarti annunci</translation>
 <translation id="2259659629660284697">Esporta password…</translation>
+<translation id="2276231040576210443">Puoi scegliere in qualsiasi momento i dati da sincronizzare nelle <ph name="BEGIN_LINK1" />impostazioni<ph name="END_LINK1" />. Google potrebbe personalizzare la Ricerca e altri servizi in base alla tua cronologia.</translation>
 <translation id="2276696007612801991">Accedi al tuo Account Google per controllare le tue password</translation>
 <translation id="2278052315791335171">L'eliminazione di questa password non comporta l'eliminazione del tuo account su <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Indirizzo di fatturazione</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Prova i seguenti suggerimenti: assicurati di avere spazio sufficiente sul dispositivo e prova a esportare di nuovo.</translation>
 <translation id="7686086654630106285">Scopri di più sugli annunci suggeriti dal sito</translation>
 <translation id="768618399695552958">Alcune delle pagine che visiti sono precaricate. Le pagine potrebbero essere precaricate tramite i server di Google quando il sito che vi rimanda è un sito Google.</translation>
+<translation id="7691043218961417207">Esplora i contenuti da seguire</translation>
 <translation id="7698359219371678927">Crea email in <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Verranno utilizzati i dati mobili</translation>
 <translation id="7709094866268987903">Gli interessi che rimuovi verranno visualizzati qui</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">C'è stato un problema.</translation>
 <translation id="8972098258593396643">Scaricare nella cartella predefinita?</translation>
 <translation id="8987641763863173640">Gestisci le impostazioni di anteprima video</translation>
+<translation id="8987736167266086032">Riprendi da dove eri rimasto</translation>
 <translation id="8989968390305463310">La cronologia di navigazione incide sugli annunci che ti vengono mostrati e sugli interessi stimati riportati qui sotto. Per tutelare la tua privacy, Chrome elimina automaticamente i tuoi interessi ogni mese. A meno che non li rimuovi, gli interessi possono essere aggiornati.</translation>
 <translation id="8993760627012879038">Apri nuova scheda in mod. di navigaz. in incognito</translation>
 <translation id="8996847606757455498">Scegli un altro fornitore</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 d5aca8f..59dbc74 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">‏הסיסמאות שלך מוצפנות במכשיר לפני שהן נשמרות במנהל הסיסמאות של Google</translation>
 <translation id="2249635629516220541">התאמה אישית של המידע שמשמש אתרים להצגת מודעות</translation>
 <translation id="2259659629660284697">ייצוא סיסמאות…</translation>
+<translation id="2276231040576210443">‏תמיד אפשר לבחור מה לסנכרן דרך <ph name="BEGIN_LINK1" />ההגדרות<ph name="END_LINK1" />. Google עשויה להתאים אישית את החיפוש ושירותים נוספים על סמך ההיסטוריה שלך.</translation>
 <translation id="2276696007612801991">‏יש להיכנס לחשבון Google כדי לבדוק את הסיסמאות שלך</translation>
 <translation id="2278052315791335171">מחיקת הסיסמה הזו לא תגרום למחיקת החשבון שלך באתר <ph name="SITE" />.</translation>
 <translation id="2286841657746966508">כתובת לחיוב</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">אפשר לנסות את הטיפים הבאים: צריך לוודא שיש מספיק מקום פנוי במכשיר ואז לנסות לייצא שוב.</translation>
 <translation id="7686086654630106285">מידע נוסף על הצעות למודעות באתרים</translation>
 <translation id="768618399695552958">‏חלק מהדפים שאליהם עוברים נטענים מראש. דפים יכולים להיטען מראש באמצעות שרתי Google כשיש אליהם קישורים מאתר שנוצר באמצעות Google Sites.</translation>
+<translation id="7691043218961417207">אפשרויות לתוכן למעקב</translation>
 <translation id="7698359219371678927">יצירת הודעת אימייל ב-<ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">שימוש בחבילת הגלישה</translation>
 <translation id="7709094866268987903">תחומי עניין שהסרת יופיעו כאן</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">משהו השתבש.</translation>
 <translation id="8972098258593396643">האם להוריד לתיקיית ברירת המחדל?</translation>
 <translation id="8987641763863173640">ניהול הגדרות התצוגה המקדימה של סרטונים</translation>
+<translation id="8987736167266086032">המשך מהנקודה שבה הפסקת</translation>
 <translation id="8989968390305463310">‏היסטוריית הגלישה שלך משפיעה על המודעות שמוצגות לך ועל תחומי העניין המשוערים שמופיעים בהמשך. כדי להגן על הפרטיות שלך, מתבצעת ב-Chrome מחיקה אוטומטית של תחומי העניין שלך על בסיס מתחלף מדי חודש. תחומי עניין שלא הוסרו עוברים רענון.</translation>
 <translation id="8993760627012879038">פתיחת חלון חדש במצב אנונימי</translation>
 <translation id="8996847606757455498">בחירת ספק אחר</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 42ad5f7..c8495c4 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Google パスワード マネージャーに保存する前にデバイス上でパスワードを暗号化します</translation>
 <translation id="2249635629516220541">サイトが広告表示に使用する情報をカスタマイズします</translation>
 <translation id="2259659629660284697">パスワードをエクスポート…</translation>
+<translation id="2276231040576210443">同期する項目はいつでも [<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />] で選択できます。Google では、履歴に基づいて検索やその他のサービスをカスタマイズすることがあります。</translation>
 <translation id="2276696007612801991">パスワードを確認するには、Google アカウントにログインしてください</translation>
 <translation id="2278052315791335171">このパスワードを削除しても、<ph name="SITE" /> のアカウントは削除されません</translation>
 <translation id="2286841657746966508">請求先住所</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">エラーが発生しました。</translation>
 <translation id="8972098258593396643">デフォルトのフォルダにダウンロードしますか?</translation>
 <translation id="8987641763863173640">動画プレビューの設定を管理します</translation>
+<translation id="8987736167266086032">同じところから再開</translation>
 <translation id="8989968390305463310">閲覧履歴は、表示される広告と以下の推定された興味 / 関心に影響します。プライバシーを保護するために、Chrome ではユーザーの興味 / 関心が毎月順番に自動削除されます。ユーザーが削除しない限り、興味 / 関心は更新される可能性があります。</translation>
 <translation id="8993760627012879038">新しいタブをシークレット モードで開く</translation>
 <translation id="8996847606757455498">別のプロバイダを選択</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 4f5a0be9..bbd311f 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Google-ის პაროლების მმართველში შენახვამდე, თქვენი პაროლები თქვენს მოწყობილობაზე დაიშიფრება</translation>
 <translation id="2249635629516220541">ჩაასწორეთ ინფორმაცია, რომელსაც იყენებს საიტები თქვენთვის რეკლამის საჩვენებლად</translation>
 <translation id="2259659629660284697">პაროლების ექსპორტი…</translation>
+<translation id="2276231040576210443"><ph name="BEGIN_LINK1" />პარამეტრებიდან<ph name="END_LINK1" /> ნებისმიერ დროს შეგიძლიათ აირჩიოთ, რისი სინქრონიზაცია გსურთ. თქვენი ისტორიის მეშვეობით Google შეძლებს Search-ისა და სხვა სერვისების თქვენზე მორგებას.</translation>
 <translation id="2276696007612801991">პაროლების შესამოწმებლად შედით თქვენს Google ანგარიშში</translation>
 <translation id="2278052315791335171">ამ პაროლის წაშლის შემთხვევაში თქვენი ანგარიში <ph name="SITE" />-ზე არ წაიშლება</translation>
 <translation id="2286841657746966508">ბილინგის მისამართი</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">წარმოიქმნა შეფერხება.</translation>
 <translation id="8972098258593396643">გსურთ ნაგულისხმევ საქაღალდეში ჩამოტვირთვა?</translation>
 <translation id="8987641763863173640">მართეთ ვიდეოების გადახედვის პარამეტრები</translation>
+<translation id="8987736167266086032">გააგრძელეთ იქიდან, სადაც შეჩერდით</translation>
 <translation id="8989968390305463310">თქვენ მიერ ვების დათვალიერების ისტორია აისახება თქვენთვის ხილულ რეკლამასა და თქვენს ინტერესებზე, ქვემოთ პროგნოზირებულის შესაბამისად. თქვენი კონფიდენციალურობის დაცვის მიზნით, Chrome ავტომატურად წაშლის თქვენს ინტერესებს ყოველთვიურად რიგითობის მიხედვით. ინტერესები გაახლდება, თუ რომელიმე მათგანს არ წაშლით.</translation>
 <translation id="8993760627012879038">ახალი ჩანართის ინკოგნიტო რეჟიმში გახსნა</translation>
 <translation id="8996847606757455498">სხვა პროვაიდერის არჩევა</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 a2dd0020..aa1bfb1 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Құрылғыдағы құпия сөздер Google Құпия сөз менеджеріне сақталмас бұрын шифрланады.</translation>
 <translation id="2249635629516220541">Жарнамаларыңызды көрсету үшін сайттар пайдаланатын ақпаратты бейімдеу</translation>
 <translation id="2259659629660284697">Құпия сөздерді экспорттау...</translation>
+<translation id="2276231040576210443">Синхрондалатын контентті кез келген уақытта <ph name="BEGIN_LINK1" />Параметрлер<ph name="END_LINK1" /> бөлімінде таңдай аласыз. Google жүйесі Search және басқа да қызметтерді тарихыңызға негіздеп жекелендіре алады.</translation>
 <translation id="2276696007612801991">Құпия сөзіңізді тексеру үшін Google аккаунтыңызға кіріңіз.</translation>
 <translation id="2278052315791335171">Құпия сөзді жойсаңыз да, <ph name="SITE" /> сайтындағы аккаунтыңыз жойылмайды.</translation>
 <translation id="2286841657746966508">Төлем мекенжайы</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Бірдеңе дұрыс болмады.</translation>
 <translation id="8972098258593396643">Әдепкі қалтаға жүктеп алынсын ба?</translation>
 <translation id="8987641763863173640">Бейнені алдын ала көру параметрлерін басқару</translation>
+<translation id="8987736167266086032">Тоқтаған жерден әрі қарай жалғастырыңыз</translation>
 <translation id="8989968390305463310">Браузерді қолдану тарихы төменде берілгендей сіз көретін жарнамаларға және қызығушылықтарға әсер етеді. Құпиялылығыңызды сақтау үшін Chrome қызығушылықтарды ай сайын автоматты түрде жойып отырады. Қызығушылықтарды өшірмесеңіз, олар жаңартыла беруі мүмкін.</translation>
 <translation id="8993760627012879038">Жаңа қойындыны инкогнито режимінде ашу</translation>
 <translation id="8996847606757455498">Басқа провайдер таңдау</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 2523804c..f7810c02 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">ពាក្យសម្ងាត់​របស់អ្នក​ត្រូវបាន​អ៊ីនគ្រីប​នៅលើឧបករណ៍​របស់អ្នក មុនពេលរក្សាទុក​ពាក្យសម្ងាត់​ទាំងនោះទៅ​កម្មវិធីគ្រប់គ្រង​ពាក្យសម្ងាត់ Google</translation>
 <translation id="2249635629516220541">ប្ដូរ​តាមបំណង​នូវព័ត៌មាន​ដែល​បានប្រើប្រាស់​ដោយ​គេហទំព័រ ដើម្បី​បង្ហាញ​ការ​ផ្សាយពាណិជ្ជកម្ម​ដល់អ្នក</translation>
 <translation id="2259659629660284697">នាំ​ចេញ​ពាក្យ​សម្ងាត់…</translation>
+<translation id="2276231040576210443">អ្នកអាចជ្រើសរើស​អ្វីដែលត្រូវធ្វើសមកាលកម្ម​នៅក្នុង<ph name="BEGIN_LINK1" />ការកំណត់<ph name="END_LINK1" />បានជានិច្ច។ Google អាច​កំណត់​ឱ្យ​ម៉ាស៊ីន​​ស្វែងរក និង​សេវាកម្ម​ផ្សេង​ទៀតមាន​លក្ខណៈ​ផ្ទាល់​ខ្លួន​ ផ្អែក​តាម​ប្រវត្តិ​របស់​អ្នក។</translation>
 <translation id="2276696007612801991">ចូលគណនី Google របស់អ្នក ដើម្បីពិនិត្យ​ពាក្យសម្ងាត់​របស់អ្នក</translation>
 <translation id="2278052315791335171">ការលុបពាក្យសម្ងាត់នេះ​នឹងមិន​លុបគណនីរបស់អ្នក​នៅលើ <ph name="SITE" />​ ទេ</translation>
 <translation id="2286841657746966508">អាសយដ្ឋានទូទាត់​វិក្កយបត្រ</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">ប្រព័ន្ធប្រតិបត្តិការ</translation>
 <translation id="7605594153474022051">សមកាលកម្មមិនដំណើរការទេ</translation>
 <translation id="7612619742409846846">បានចូល Google ជា</translation>
+<translation id="7612989789287281429">កំពុងនាំអ្នកចូលគណនី…</translation>
 <translation id="7616551326690708776">ជ្រើសរើស​ទម្រង់គំរូ​សម្រាប់​ការរំលេច​របស់អ្នក។</translation>
 <translation id="7619072057915878432">ការដោនឡូត <ph name="FILE_NAME" /> បានបរាជ័យដោយសារបរាជ័យក្នុងការភ្ជាប់បណ្តាញ។</translation>
 <translation id="7626032353295482388">ស្វាគមន៍មកកាន់ Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">មានអ្វីមួយ​ខុសប្រក្រតី។</translation>
 <translation id="8972098258593396643">ទាញយក​ទៅថត​លំនាំដើម​មែនទេ?</translation>
 <translation id="8987641763863173640">គ្រប់គ្រង​ការកំណត់​ការមើល​វីដេអូ​សាកល្បង</translation>
+<translation id="8987736167266086032">ប្រើនៅចំណុចដែលអ្នកបានចាកចេញ</translation>
 <translation id="8989968390305463310">ប្រវត្តិរុករក​តាមអ៊ីនធឺណិត​របស់អ្នក​មានឥទ្ធិពលលើ​ការផ្សាយពាណិជ្ជកម្មដែល​អ្នកឃើញ និង​ចំណាប់អារម្មណ៍​ដូចដែលបានប៉ាន់ស្មាន​ខាងក្រោម។ ដើម្បី​ការពារ​ឯកជនភាព​របស់អ្នក Chrome លុបចំណាប់អារម្មណ៍​របស់អ្នក​ដោយស្វ័យប្រវត្តិ​ជាបន្តបន្ទាប់​រៀងរាល់ខែ។ ចំណាប់អារម្មណ៍​អាចផ្ទុក​ឡើងវិញ ប្រសិនបើអ្នក​មិនដកវាចេញទេ។</translation>
 <translation id="8993760627012879038">បើកផ្ទាំងថ្មីនៅក្នុងមុខងារអនាមិក</translation>
 <translation id="8996847606757455498">ជ្រើសរើស​ក្រុមហ៊ុនផ្ដល់សេវា​ផ្សេងទៀត</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 f095fea3..21ec871 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು Google ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕದಲ್ಲಿ ಉಳಿಸುವ ಮೊದಲು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗುತ್ತದೆ</translation>
 <translation id="2249635629516220541">ನಿಮಗೆ ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸಲು ಸೈಟ್‌ಗಳು ಬಳಸುವ ಮಾಹಿತಿಯನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ</translation>
 <translation id="2259659629660284697">ಪಾಸ್‌ವರ್ಡ್‍ಗಳನ್ನು ಎಕ್ಸ್‌ಪೋರ್ಟ್ ಮಾಡಿ…</translation>
+<translation id="2276231040576210443">ಏನನ್ನು ಸಿಂಕ್ ಮಾಡಬೇಕು ಎಂಬುದನ್ನು <ph name="BEGIN_LINK1" />ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK1" /> ಯಾವಾಗ ಬೇಕಾದರೂ ನೀವು ಆಯ್ಕೆಮಾಡಬಹುದು. ನಿಮ್ಮ ಇತಿಹಾಸವನ್ನು ಆಧರಿಸಿ Google ಹುಡುಕಾಟ ಮತ್ತು ಇತರ ಸೇವೆಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಬಹುದು.</translation>
 <translation id="2276696007612801991">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು, ನಿಮ್ಮ Google ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="2278052315791335171">ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಅಳಿಸುವುದರಿಂದ <ph name="SITE" /> ನಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="2286841657746966508">ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸ</translation>
@@ -1492,6 +1493,7 @@
 <translation id="8970887620466824814">ಏನೋ ತಪ್ಪಾಗಿದೆ.</translation>
 <translation id="8972098258593396643">ಡೀಫಾಲ್ಟ್ ಫೋಲ್ಡರ್‌ಗೆ ಡೌನ್‌ಲೋಡ್‌ ಮಾಡುವುದೇ?</translation>
 <translation id="8987641763863173640">ವೀಡಿಯೊ ಪೂರ್ವವೀಕ್ಷಣೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
+<translation id="8987736167266086032">ನೀವು ಎಲ್ಲಿಗೆ ಬಿಟ್ಟಿರುವಿರೋ ಅಲ್ಲಿಂದ ಮುಂದುವರಿಸಿ</translation>
 <translation id="8989968390305463310">ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸ ನಿಮಗೆ ಕಾಣಿಸುವ ಜಾಹೀರಾತುಗಳು ಮತ್ತು ಆಸಕ್ತಿಗಳ ಮೇಲೆ, ಕೆಳಗೆ ಅಂದಾಜು ಮಾಡಿರುವಂತೆ ಪ್ರಭಾವ ಬೀರುತ್ತದೆ. ನಿಮ್ಮ ಗೌಪ್ಯತೆಯನ್ನು ರಕ್ಷಿಸಲು, Chrome ನಿಮ್ಮ ಆಸಕ್ತಿಗಳನ್ನು ಪ್ರತಿ ತಿಂಗಳು ರೋಲಿಂಗ್ ಆಧಾರದಲ್ಲಿ ಸ್ವಯಂ-ಅಳಿಸುತ್ತದೆ. ನೀವು ಆಸಕ್ತಿಗಳನ್ನು ತೆಗೆದುಹಾಕದಿದ್ದಾಗ ಅವು ರಿಫ್ರೆಶ್ ಆಗಬಹುದು.</translation>
 <translation id="8993760627012879038">ಅದೃಶ್ಯ ಮೋಡ್‌ನಲ್ಲಿ ಹೊಸ ವಿಂಡೋ ತೆರೆಯಿರಿ</translation>
 <translation id="8996847606757455498">ಬೇರೆ ಪೂರೈಕೆದಾರರನ್ನು ಆಯ್ಕೆಮಾಡಿ</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 9c2d39c..4c08905 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">비밀번호를 기기 내에서 암호화한 후 Google 비밀번호 관리자에 저장합니다</translation>
 <translation id="2249635629516220541">사이트에서 광고를 표시하는 데 사용하는 정보를 맞춤설정합니다.</translation>
 <translation id="2259659629660284697">비밀번호 내보내기...</translation>
+<translation id="2276231040576210443">언제든지 <ph name="BEGIN_LINK1" />설정<ph name="END_LINK1" />에서 동기화할 항목을 선택할 수 있습니다. Google에서는 사용자의 방문 기록을 기반으로 Google 검색 및 기타 서비스를 맞춤설정할 수 있습니다.</translation>
 <translation id="2276696007612801991">비밀번호를 확인하려면 Google 계정에 로그인하세요.</translation>
 <translation id="2278052315791335171">비밀번호를 삭제해도 <ph name="SITE" /> 계정은 삭제되지 않습니다.</translation>
 <translation id="2286841657746966508">결제주소</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">문제 발생</translation>
 <translation id="8972098258593396643">기본 폴더에 다운로드하시겠습니까?</translation>
 <translation id="8987641763863173640">동영상 미리보기 설정 관리</translation>
+<translation id="8987736167266086032">멈춘 부분에서 계속</translation>
 <translation id="8989968390305463310">방문 기록에 따라 표시되는 광고 및 아래의 예측 관심분야가 달라집니다. 개인 정보를 보호하기 위해 Chrome에서는 매월 최소 한 번씩 수시로 관심분야를 자동 삭제합니다. 관심분야는 직접 삭제하지 않는 한 새로고침될 수 있습니다.</translation>
 <translation id="8993760627012879038">시크릿 모드로 새 탭 열기</translation>
 <translation id="8996847606757455498">다른 제공업체 선택</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 2c268ae..a0ee22dc 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Google Сырсөздөрдү башкаргычка сакталганга чейин сырсөздөрүңүз түзмөгүңүздө шифрленет</translation>
 <translation id="2249635629516220541">Жарнамаларды көрсөтүү үчүн сайттар колдонгон маалыматты ыңгайлаштыруу</translation>
 <translation id="2259659629660284697">Сырсөздөрдү экспорттоо…</translation>
+<translation id="2276231040576210443">Эмнени шайкештирүү керек экенин <ph name="BEGIN_LINK1" />жөндөөлөрдөн<ph name="END_LINK1" /> ар дайым тандай аласыз. Google таржымалыңыздын негизинде Издөөнү жана башка кызматтарды жекелештириши мүмкүн.</translation>
 <translation id="2276696007612801991">Сырсөздөрүңүздү текшерүү үчүн Google аккаунтуңузга кириңиз</translation>
 <translation id="2278052315791335171">Бул сырсөздү жок кылуу менен <ph name="SITE" /> аккаунтуңуз өчпөйт</translation>
 <translation id="2286841657746966508">Төлөмдүн дареги</translation>
@@ -1485,6 +1486,7 @@
 <translation id="8970887620466824814">Бир жерден ката кетти.</translation>
 <translation id="8972098258593396643">Демейки папкага жүктөлүп алынсынбы?</translation>
 <translation id="8987641763863173640">Видеону алдын ала көрүү параметрлерин башкарасыз</translation>
+<translation id="8987736167266086032">Кайсы жерден токтосоңуз, ошол жерден улап кетесиз</translation>
 <translation id="8989968390305463310">Жарнамалар көрүлгөн вебсайттарга жана төмөндө болжолдонгон кызыккан нерселериңизге жараша көрсөтүлөт. Купуялыгыңызды коргоо максатында Chrome кызыккан нерселериңизди ай сайын автоматтык түрдө жок кылат. Кызыккан нерселериңиз өчүрүлмөйүнчө жаңыртыла берет.</translation>
 <translation id="8993760627012879038">Жаңы өтмөктү жашыруун режимде ачуу</translation>
 <translation id="8996847606757455498">Башка провайдерди тандоо</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 30f5f63..8ccb7ff 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">ລະຫັດຜ່ານຂອງທ່ານແມ່ນຖືກເຂົ້າລະຫັດໄວ້ຢູ່ອຸປະກອນຂອງທ່ານກ່ອນທີ່ພວກມັນຈະຖືກບັນທຶກໄປໃສ່ຕົວຈັດການລະຫັດຜ່ານ Google</translation>
 <translation id="2249635629516220541">ປັບແຕ່ງຂໍ້ມູນທີ່ໃຊ້ໂດຍເວັບໄຊເພື່ອສະແດງໂຄສະນາໃຫ້ທ່ານເຫັນ</translation>
 <translation id="2259659629660284697">ສົ່ງລະຫັດຜ່ານອອກ...</translation>
+<translation id="2276231040576210443">ທ່ານສາມາດເລືອກສິ່ງທີ່ຈະຊິ້ງຂໍ້ມູນໄດ້ໃນ <ph name="BEGIN_LINK1" />ການຕັ້ງຄ່າ<ph name="END_LINK1" />. Google ອາດປັບແຕ່ງການຊອກຫາ ແລະ ບໍລິການອື່ນໆຂອງ Google ໃຫ້ເປັນແບບສ່ວນຕົວໂດຍອ້າງອີງໃສ່ປະຫວັດຂອງທ່ານ.</translation>
 <translation id="2276696007612801991">ເຂົ້າສູ່ລະບົບບັນຊີ Google ຂອງທ່ານເພື່ອກວດລະຫັດຜ່ານຂອງທ່ານ</translation>
 <translation id="2278052315791335171">ການລຶບລະຫັດຜ່ານນີ້ຈະບໍ່ລຶບບັນຊີຂອງທ່ານຢູ່ <ph name="SITE" /> ອອກ</translation>
 <translation id="2286841657746966508">ທີ່ຢູ່ການຮຽກເກັບເງິນ</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">ມີບາງຢ່າງຜິດພາດ.</translation>
 <translation id="8972098258593396643">ດາວໂຫຼດໃສ່ໂຟນເດີເລີ່ມຕົ້ນບໍ?</translation>
 <translation id="8987641763863173640">ຈັດການການຕັ້ງຄ່າຕົວຢ່າງວິດີໂອ</translation>
+<translation id="8987736167266086032">ເລືອກຈາກ​ບ່ອນ​ທີ່​ທ່ານ​ອອກ​ໄປ</translation>
 <translation id="8989968390305463310">ປະຫວັດການທ່ອງເວັບຂອງທ່ານມີຜົນກັບໂຄສະນາທີ່ທ່ານເຫັນ ແລະ ຄວາມສົນໃຈທີ່ປະເມີນໄວ້ຢູ່ທາງລຸ່ມ. ເພື່ອປົກປ້ອງຄວາມເປັນສ່ວນຕົວຂອງທ່ານ, Chrome ຈະລຶບຄວາມສົນໃຈຂອງທ່ານອອກອັດຕະໂນມັດເປັນປະຈຳໃນແຕ່ລະເດືອນ. ຄວາມສົນໃຈສາມາດໂຫຼດຂໍ້ມູນຄືນໃໝ່ເວັ້ນແຕ່ທ່ານຈະລຶບພວກມັນອອກ.</translation>
 <translation id="8993760627012879038">ເປີດແຖບໃໝ່ໃນໂໝດ Incognito</translation>
 <translation id="8996847606757455498">ເລືອກຜູ້ໃຫ້ບໍລິການອື່ນ</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 60b661d..6ff2708 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Jūsų slaptažodžiai šifruojami įrenginyje prieš išsaugant juos „Google“ slaptažodžių tvarkytuvėje</translation>
 <translation id="2249635629516220541">Tinkinkite informaciją, pagal kurią svetainės rodo jums skelbimus</translation>
 <translation id="2259659629660284697">Eksportuoti slaptažodžius…</translation>
+<translation id="2276231040576210443">Bet kada galite pasirinkti, ką norite sinchronizuoti, skiltyje <ph name="BEGIN_LINK1" />„Nustatymai“<ph name="END_LINK1" />. „Google“ gali suasmeninti Paiešką ir kitas paslaugas pagal jūsų istoriją.</translation>
 <translation id="2276696007612801991">Prisijunkite prie „Google“ paskyros, kad patikrintumėte slaptažodžius</translation>
 <translation id="2278052315791335171">Ištrynus šį slaptažodį jūsų paskyra svetainėje <ph name="SITE" /> nebus ištrinta</translation>
 <translation id="2286841657746966508">Atsiskaitymo adresas</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Kažkas ne taip.</translation>
 <translation id="8972098258593396643">Atsisiųsti į numatytąjį aplanką?</translation>
 <translation id="8987641763863173640">Tvarkykite vaizdo įrašų peržiūros nustatymus</translation>
+<translation id="8987736167266086032">Pradėkite ten, kur baigėte</translation>
 <translation id="8989968390305463310">Naršymo istorija lemia, kokius skelbimus matysite ir kokie jūsų pomėgiai bus numatomi toliau. Siekiant apsaugoti privatumą, „Chrome“ reguliariai kiekvieną mėnesį automatiškai ištrina jūsų pomėgius. Pomėgiai gali būti atnaujinami, kol jų nepašalinate.</translation>
 <translation id="8993760627012879038">Atidaryti naują skirtuką inkognito režimu</translation>
 <translation id="8996847606757455498">Pasirinkti kitą teikėją</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 6aba16c..85b1f8af 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Jūsu paroles tiek šifrētas jūsu ierīcē, pirms tās tiek saglabātas Google paroļu pārvaldniekā.</translation>
 <translation id="2249635629516220541">Varat pielāgot informāciju, kas vietnēs tiek izmantota reklāmu rādīšanai</translation>
 <translation id="2259659629660284697">Paroļu eksportēšana…</translation>
+<translation id="2276231040576210443">Jūs jebkurā laikā <ph name="BEGIN_LINK1" />iestatījumos<ph name="END_LINK1" /> varat izvēlēties, ko sinhronizēt. Google var personalizēt pakalpojumu Meklēšana un citus pakalpojumus, ņemot vērā jūsu vēsturi.</translation>
 <translation id="2276696007612801991">Lai pārbaudītu paroles, pierakstieties Google kontā</translation>
 <translation id="2278052315791335171">Izdzēšot šo paroli, netiks dzēsts jūsu konts vietnē <ph name="SITE" />.</translation>
 <translation id="2286841657746966508">Norēķinu adrese</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Ņemiet vērā šos ieteikumus: atbrīvojiet ierīcē vietu un mēģiniet eksportēt vēlreiz.</translation>
 <translation id="7686086654630106285">Vairāk par vietnēs ieteiktajām reklāmām</translation>
 <translation id="768618399695552958">Dažas no jūsu apmeklētajām lapām ir ielādētas iepriekš. Lapas var tikt ielādētas iepriekš, izmantojot Google serverus, ja novirzīšana tiek veikta no Google vietnes.</translation>
+<translation id="7691043218961417207">Izpētiet saturu, kam sekot</translation>
 <translation id="7698359219371678927">Izveidojiet e-pasta ziņojumu lietotnē <ph name="APP_NAME" />.</translation>
 <translation id="7707922173985738739">Izmantot mobilos datus</translation>
 <translation id="7709094866268987903">Šeit būs redzamas jūsu noņemtās intereses.</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Radās kļūda.</translation>
 <translation id="8972098258593396643">Vai lejupielādēt noklusējuma mapē?</translation>
 <translation id="8987641763863173640">Pārvaldiet video priekšskatīšanas iestatījumus</translation>
+<translation id="8987736167266086032">Turpiniet darbu no vietas, kur to pārtraucāt</translation>
 <translation id="8989968390305463310">Pārlūkošanas vēsture ietekmē to, kādas reklāmas jums tiek rādītas, un tālāk redzamās aptuveni noteiktās intereses. Lai aizsargātu jūsu konfidencialitāti, Chrome automātiski katru mēnesi pakāpeniski dzēš jūsu intereses. Intereses var tikt atjaunotas, ja vien nenoņemat tās.</translation>
 <translation id="8993760627012879038">Atvērt jaunu cilni inkognito režīmā</translation>
 <translation id="8996847606757455498">Izvēlēties citu nodrošinātāju</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 060a01e..baa8d7b 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Лозинките се шифрираат на уредот пред да се зачуваат во „Управникот со лозинки на Google“</translation>
 <translation id="2249635629516220541">Приспособете ги податоците што ги користат сајтовите за да ви прикажуваат реклами</translation>
 <translation id="2259659629660284697">Извезување лозинки…</translation>
+<translation id="2276231040576210443">Секогаш може да изберете што да синхронизирате во <ph name="BEGIN_LINK1" />Поставки<ph name="END_LINK1" />. Google може да ги персонализира „Пребарување“ и другите услуги според вашата историја.</translation>
 <translation id="2276696007612801991">Најавете се на сметката на Google за да ги проверите лозинките</translation>
 <translation id="2278052315791335171">Со бришењето на лозинкава нема да се избрише вашата сметка на <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Адреса за наплата</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Испробајте ги следниве совети: проверете дали има доволно простор на уредот, обидете се да ги извезете повторно.</translation>
 <translation id="7686086654630106285">Повеќе за реклами предложени од сајтови</translation>
 <translation id="768618399695552958">Некои од страниците што ги посетувате се вчитани однапред. Страниците може да се вчитани однапред преку серверите на Google кога се поврзани од сајт на Google.</translation>
+<translation id="7691043218961417207">Истражете содржини за следење</translation>
 <translation id="7698359219371678927">Создајте е-пошта во <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Ќе користи мобилен интернет</translation>
 <translation id="7709094866268987903">Интересите што сте ги отстраниле ќе се појават тука</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Нешто тргна наопаку.</translation>
 <translation id="8972098258593396643">Дали да се преземе во стандардната папка?</translation>
 <translation id="8987641763863173640">Управувајте со поставките за преглед на видео</translation>
+<translation id="8987736167266086032">Продолжете каде што сте застанале</translation>
 <translation id="8989968390305463310">Вашата историја на прелистувањето влијае на рекламите што ги гледате и на интересите како што е проценето подолу. За да ја заштитите приватноста, Chrome автоматски ги брише вашите интереси секој месец. Интересите може да се освежуваат освен ако не ги отстраните.</translation>
 <translation id="8993760627012879038">Отворете нова картичка во режим инкогнито</translation>
 <translation id="8996847606757455498">Изберете друг одредувач</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 519c39f..967c2980 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Google പാസ്‌വേഡ് മാനേജറിലേക്ക് സംരക്ഷിക്കുന്നതിന് മുമ്പ് നിങ്ങളുടെ ഉപകരണത്തിൽ പാസ്‌വേഡുകൾ എൻക്രിപ്റ്റ് ചെയ്യുന്നു</translation>
 <translation id="2249635629516220541">നിങ്ങളെ പരസ്യം കാണിക്കുന്നതിനായി സൈറ്റുകൾ ഉപയോഗിക്കുന്ന വിവരങ്ങൾ ഇഷ്ടാനുസൃതമാക്കുക</translation>
 <translation id="2259659629660284697">പാസ്‌വേഡുകൾ എക്‌സ്‌പോർട്ട് ചെയ്യുക...</translation>
+<translation id="2276231040576210443">എന്തൊക്കെ സമന്വയിപ്പിക്കണമെന്ന് നിങ്ങൾക്ക് എല്ലായ്‌പ്പോഴും <ph name="BEGIN_LINK1" />ക്രമീകരണത്തിൽ<ph name="END_LINK1" /> തിരഞ്ഞെടുക്കാം. നിങ്ങളുടെ ചരിത്രത്തെ അടിസ്ഥാനമാക്കി, Search, മറ്റ് സേവനങ്ങൾ എന്നിവ Google വ്യക്തിപരമാക്കിയേക്കാം.</translation>
 <translation id="2276696007612801991">പാസ്‌വേഡുകൾ പരിശോധിക്കാൻ നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് സെെൻ ഇൻ ചെയ്യുക</translation>
 <translation id="2278052315791335171">ഈ പാസ്‌വേഡ് ഇല്ലാതാക്കുന്നത് <ph name="SITE" /> -ലെ നിങ്ങളുടെ അക്കൗണ്ട് ഇല്ലാതാക്കില്ല</translation>
 <translation id="2286841657746966508">ബില്ലിംഗ് വിലാസം</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">ഓപ്പറേറ്റിംഗ് സിസ്റ്റം</translation>
 <translation id="7605594153474022051">സമന്വയിപ്പിക്കൽ പ്രവർത്തിക്കുന്നില്ല</translation>
 <translation id="7612619742409846846">ഇനി പറയുന്നതിൽ നിന്നും Google-ലേക്ക് സൈൻ ഇൻ ചെയ്‌തു</translation>
+<translation id="7612989789287281429">നിങ്ങളെ സൈൻ ഇൻ ചെയ്യിക്കുന്നു…</translation>
 <translation id="7616551326690708776">നിങ്ങളുടെ ഹെെലെെറ്റിനുള്ള ടെംപ്ലേറ്റ് തിരഞ്ഞെടുക്കുക.</translation>
 <translation id="7619072057915878432">നെറ്റ്‌വർക്ക് പരാജയം കാരണം <ph name="FILE_NAME" /> ഡൗൺലോഡ് ചെയ്യാനായില്ല.</translation>
 <translation id="7626032353295482388">Chrome-ലേക്ക് സ്വാഗതം</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">എന്തോ കുഴപ്പമുണ്ടായി.</translation>
 <translation id="8972098258593396643">ഡിഫോൾട്ട് ഫോൾഡറിലേക്ക് ഡൗൺലോഡ് ചെയ്യണോ?</translation>
 <translation id="8987641763863173640">വീഡിയോ പ്രിവ്യു ക്രമീകരണം മാനേജ് ചെയ്യുക</translation>
+<translation id="8987736167266086032">നിങ്ങൾ അവസാനിപ്പിച്ചയിടത്ത് നിന്ന് തുടരുക</translation>
 <translation id="8989968390305463310">നിങ്ങൾ കാണുന്ന പരസ്യങ്ങളെയും ചുവടെ നിർണ്ണയിച്ചിരിക്കുന്നത് പോലുള്ള താൽപ്പര്യങ്ങളെയും നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ബാധിക്കുന്നു. നിങ്ങളുടെ സ്വകാര്യത പരിരക്ഷിക്കുന്നതിന് ഓരോ മാസവും റോളിംഗ് അടിസ്ഥാനത്തിൽ Chrome നിങ്ങളുടെ താൽപ്പര്യങ്ങൾ സ്വയമേവ ഇല്ലാതാക്കുന്നു. നിങ്ങൾ താൽപ്പര്യങ്ങൾ നീക്കം ചെയ്തില്ലെങ്കിൽ അവ റീഫ്രഷ് ചെയ്യാനാകും.</translation>
 <translation id="8993760627012879038">അദൃശ്യ മോഡിൽ പുതിയൊരു വിൻഡോ തുറക്കുക</translation>
 <translation id="8996847606757455498">മറ്റൊരു ദാതാവിനെ തിരഞ്ഞെടുക്കുക</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 a7170ed..e17a3b1 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Таны нууц үгнүүдийг Google-н Нууц үгний менежерт хадгалахаас нь өмнө төхөөрөмж дээр тань шифрлэдэг</translation>
 <translation id="2249635629516220541">Танд зар харуулахын тулд сайтуудын ашигладаг мэдээллийг өөрчилнө үү</translation>
 <translation id="2259659629660284697">Нууц үгийг экспортлох...</translation>
+<translation id="2276231040576210443">Та синк хийх зүйлээ <ph name="BEGIN_LINK1" />тохиргоо<ph name="END_LINK1" /> хэсгээс хүссэн үедээ сонгох боломжтой. Google таны түүхэд тулгуурлан Хайлт болон бусад үйлчилгээг хувийн болгож магадгүй.</translation>
 <translation id="2276696007612801991">Нууц үгээ шалгахын тулд Google Бүртгэлдээ нэвтэрнэ үү</translation>
 <translation id="2278052315791335171">Энэ нууц үгийг устгаснаар таны бүртгэлийг <ph name="SITE" /> дээрээс устгахгүй</translation>
 <translation id="2286841657746966508">Тооцооны хаяг</translation>
@@ -1492,6 +1493,7 @@
 <translation id="8970887620466824814">Алдаа гарлаа.</translation>
 <translation id="8972098258593396643">Өгөгдмөл фолдерт татаж авах уу?</translation>
 <translation id="8987641763863173640">Видео урьдчилан үзэлтийн тохиргоог удирдана уу</translation>
+<translation id="8987736167266086032">Үйлдлээ зогсоосон газраасаа үргэлжлүүлнэ үү</translation>
 <translation id="8989968390305463310">Таны хөтчийн түүх таны хардаг зар болон доор тооцоолсны дагуу сонирхолд нөлөөлнө. Таны нууцлалыг хамгаалахын тулд Chrome тодорхойгүй хугацаанд сар бүр таны сонирхлыг автоматаар устгана. Та сонирхлыг хасаагүй бол сэргээх боломжтой.</translation>
 <translation id="8993760627012879038">Шинэ чихтэй хуудсыг нууцлалын горимд нээх</translation>
 <translation id="8996847606757455498">Өөр үйлчилгээ үзүүлэгч сонгох</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 5639eb1..9424041 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">तुमचे पासवर्ड हे Google पासवर्ड व्यवस्थापक यामध्ये सेव्ह केले जाण्यापूर्वी तुमच्या डिव्हाइसवर एंक्रिप्ट केले जातात</translation>
 <translation id="2249635629516220541">तुम्हाला जाहिराती दाखवण्यासाठी साइटद्वारे वापरलेली माहिती कस्टमाइझ करा</translation>
 <translation id="2259659629660284697">पासवर्ड एक्सपोर्ट करा…</translation>
+<translation id="2276231040576210443">तुम्ही काय सिंक करायचे हे <ph name="BEGIN_LINK1" />सेटिंग्ज<ph name="END_LINK1" /> मध्ये कधीही निवडू शकता. Google तुमच्या इतिहासाच्या आधारे Search आणि इतर सेवा पर्सनलाइझ करू शकते.</translation>
 <translation id="2276696007612801991">तुमचे पासवर्ड तपासण्यासाठी तुमच्या Google खात्यामध्ये साइन इन करा</translation>
 <translation id="2278052315791335171">हा पासवर्ड हटवल्यामुळे तुमचे <ph name="SITE" /> वरील खाते हटवले जाणार नाही</translation>
 <translation id="2286841657746966508">बिलिंग पत्ता</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">खालील टिपा वापरून पहा: तुमच्या डिव्हाइसवर पुरेशी जागा असल्याची खात्री करा, पुन्हा एक्सपोर्ट करण्याचा प्रयत्न करा.</translation>
 <translation id="7686086654630106285">साइटने सुचवलेल्या जाहिरातींबद्दल आणखी</translation>
 <translation id="768618399695552958">तुम्ही भेट देत असलेली काही पेज प्रीलोड केलेली आहेत. Google साइटवरून लिंक केल्यावर पेज Google सर्व्हरद्वारे प्रीलोड केली जाऊ शकतात.</translation>
+<translation id="7691043218961417207">फॉलो करण्यासाठी आशय एक्सप्लोर करा</translation>
 <translation id="7698359219371678927"><ph name="APP_NAME" /> मध्ये ईमेल तयार करा</translation>
 <translation id="7707922173985738739">मोबाइल डेटा वापरा</translation>
 <translation id="7709094866268987903">तुम्ही काढून टाकलेली स्वारस्ये येथे दिसतील</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">काहीतरी चूक झाली.</translation>
 <translation id="8972098258593396643">डीफॉल्ट फोल्डरमध्ये डाउनलोड करायचे?</translation>
 <translation id="8987641763863173640">व्हिडिओ पूर्वावलोकन सेटिंग्ज व्यवस्थापित करा</translation>
+<translation id="8987736167266086032">तुम्ही सोडले होते तिथून पुढे सुरू करा</translation>
 <translation id="8989968390305463310">तुमचा ब्राउझिंग इतिहास हा तुम्ही पाहता त्या जाहिराती आणि खाली दिलेली अंदाजित स्वारस्ये यांवर परिणाम करतो. तुमच्या गोपनीयतेचे संरक्षण करण्यासाठी, Chrome दर महिन्याला रोलिंगच्या आधारे तुमची स्वारस्ये ऑटो-डिलीट करते. तुम्ही स्वारस्ये काढून टाकत नाही तोपर्यंत ती रिफ्रेश करू शकता.</translation>
 <translation id="8993760627012879038">गुप्त मोडमध्ये एक नवीन टॅब उघडा</translation>
 <translation id="8996847606757455498">दुसरा पुरवठादार निवडा</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 7130380..facbe621 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Kata laluan anda disulitkan pada peranti sebelum disimpan ke Pengurus Kata Laluan Google</translation>
 <translation id="2249635629516220541">Sesuaikan maklumat yang digunakan oleh laman untuk memaparkan iklan kepada anda</translation>
 <translation id="2259659629660284697">Eksport kata laluan…</translation>
+<translation id="2276231040576210443">Anda boleh memilih item yang hendak disegerakkan dalam <ph name="BEGIN_LINK1" />tetapan<ph name="END_LINK1" /> pada bila-bila masa. Google mungkin memeribadikan Carian dan perkhidmatan lain berdasarkan sejarah anda.</translation>
 <translation id="2276696007612801991">Log masuk ke akaun Google anda untuk menyemak kata laluan anda</translation>
 <translation id="2278052315791335171">Pemadaman kata laluan ini tidak akan memadamkan akaun anda pada <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Alamat pengebilan</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Sistem pengendalian</translation>
 <translation id="7605594153474022051">Penyegerakan tidak berfungsi</translation>
 <translation id="7612619742409846846">Dilog masuk ke Google sebagai</translation>
+<translation id="7612989789287281429">Anda sedang log masuk…</translation>
 <translation id="7616551326690708776">Pilih templat untuk serlahan anda.</translation>
 <translation id="7619072057915878432">Muat turun <ph name="FILE_NAME" /> gagal kerana kegagalan rangkaian.</translation>
 <translation id="7626032353295482388">Selamat Datang ke Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Kesilapan telah berlaku.</translation>
 <translation id="8972098258593396643">Muat turun ke folder lalai?</translation>
 <translation id="8987641763863173640">Urus Tetapan Pratonton Video</translation>
+<translation id="8987736167266086032">Sambung semula dari tempat anda berhenti</translation>
 <translation id="8989968390305463310">Sejarah penyemakan imbas anda mempengaruhi iklan yang anda lihat dan minat seperti yang dianggarkan di bawah. Untuk melindungi privasi anda, Chrome memadamkan minat anda secara automatik secara bergilir setiap bulan. Minat akan dimuat semula melainkan anda mengalih keluar minat anda.</translation>
 <translation id="8993760627012879038">Buka tetingkap baharu dalam mod Inkognito</translation>
 <translation id="8996847606757455498">Pilih penyedia lain</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 8586ba0..9d4908e 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">စကားဝှက်များကို ‘Google စကားဝှက်မန်နေဂျာ’ သို့ မသိမ်းမီ သင်၏စက်၌ အသွင်ဝှက်ပြီးပါပြီ</translation>
 <translation id="2249635629516220541">သင့်ကိုကြော်ငြာပြရန် ဝဘ်ဆိုက်များ အသုံးပြုသည့် အချက်အလက်ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်သည်</translation>
 <translation id="2259659629660284697">စကားဝှက်များကို တင်ပို့ခြင်း…</translation>
+<translation id="2276231040576210443">စင့်ခ်လုပ်မည့်အရာကို <ph name="BEGIN_LINK1" />ဆက်တင်များ<ph name="END_LINK1" /> တွင် အချိန်မရွေး ရွေးနိုင်သည်။ Google က Search နှင့် အခြားဝန်ဆောင်မှုများကို သင့်မှတ်တမ်းပေါ်မူတည်၍ ပုဂ္ဂိုလ်ရေးသီးသန့် ပြုလုပ်နိုင်သည်။</translation>
 <translation id="2276696007612801991">သင့်စကားဝှက်များကိုစစ်ရန် သင့် Google အကောင့်သို့ လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="2278052315791335171">ဤစကားဝှက်ကို ဖျက်ခြင်းဖြင့် <ph name="SITE" /> ရှိ သင့်အကောင့်ကို ဖျက်မည်မဟုတ်ပါ</translation>
 <translation id="2286841657746966508">ငွေတောင်းခံလွှာပို့ရန် လိပ်စာ</translation>
@@ -1223,6 +1224,7 @@
 <translation id="7596558890252710462">လည်ပတ်မှု စနစ်</translation>
 <translation id="7605594153474022051">စင့်ခ်လုပ်၍မရပါ</translation>
 <translation id="7612619742409846846">အဖြစ် Google သို့လက်မှတ်ထိုးဝင်ရန်</translation>
+<translation id="7612989789287281429">လက်မှတ်ထိုးဝင်နေသည်…</translation>
 <translation id="7616551326690708776">သင်၏အထူးဖော်ပြမှုအတွက် နမူနာ ပုံစံရွေးပါ။</translation>
 <translation id="7619072057915878432"><ph name="FILE_NAME" /> ဒေါင်းလုဒ်မှာ ကွန်ရက် ပြဿနာများကြောင့် မအောင်မြင်ခဲ့ပါ။</translation>
 <translation id="7626032353295482388">Chrome က ကြိုဆိုပါသည်</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">တစ်ခုခု မှားသွားပါသည်။</translation>
 <translation id="8972098258593396643">မူရင်းဖိုင်တွဲသို့ ဒေါင်းလုဒ်လုပ်လိုပါသလား။</translation>
 <translation id="8987641763863173640">ဗီဒီယိုအစမ်းကြည့်ရှုခြင်း ဆက်တင်များကို စီမံရန်</translation>
+<translation id="8987736167266086032">သင်ထားခဲ့သည့်နေရာမှ ဆက်လက်အသုံးပြုပါ</translation>
 <translation id="8989968390305463310">သင်၏ကြည့်ရှုခြင်းမှတ်တမ်းသည် သင်မြင်ရသည့်ကြော်ငြာများနှင့် အောက်တွင် ခန့်မှန်းထားသည့် စိတ်ဝင်စားမှုများအပေါ် သက်ရောက်မှုရှိသည်။ သင်၏ကိုယ်ရေးအချက်အလက်လုံခြုံမှုကို ကာကွယ်ရန် Chrome သည် သင်၏စိတ်ဝင်စားမှုများကို လစဉ်အလှည့်ကျ အလိုအလျောက်ဖျက်သည်။ စိတ်ဝင်စားမှုများကို မဖယ်ရှားပါက ပြန်လည်စတင်နိုင်သည်။</translation>
 <translation id="8993760627012879038">တဘ်အသစ်ကို ရုပ်ဖျက်မုဒ်တွင် ဖွင့်ရန်</translation>
 <translation id="8996847606757455498">ဝန်ဆောင်မှုပေးသူ နောက်တစ်ခု ရွေးရန်</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 015e9de9..fd08b3896 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">तपाईंका पासवर्डहरू तपाईंको डिभाइसमा इन्क्रिप्ट गरेपछि मात्र Google पासवर्ड म्यानेजरमा सेभ गरिन्छ</translation>
 <translation id="2249635629516220541">साइटहरूले तपाईंलाई विज्ञापन देखाउन प्रयोग गर्ने जानकारी कस्टमाइज गर्नुहोस्</translation>
 <translation id="2259659629660284697">पासवर्डहरू निर्यात गर्नुहोस्…</translation>
+<translation id="2276231040576210443">तपाईं जुनसुकै बेला <ph name="BEGIN_LINK1" />सेटिङ<ph name="END_LINK1" />मा गई आफूले सिंक गर्न चाहेको डेटा छनौट गर्न सक्नुहुन्छ। Google ले तपाईंले गरेका गतिविधिको इतिहासका आधारमा Search र अन्य सेवाहरू पर्सनलाइज गर्न सक्छ।</translation>
 <translation id="2276696007612801991">आफ्ना पासवर्डहरू जाँच गर्न आफ्नो Google खातामा साइन इन गर्नुहोस्</translation>
 <translation id="2278052315791335171">तपाईंले यो पासवर्ड मेटाउनुभयो भने पनि <ph name="SITE" /> मा रहेको तपाईंको खाता मेटिने छैन</translation>
 <translation id="2286841657746966508">बिल पठाउने ठेगाना</translation>
@@ -1223,6 +1224,7 @@
 <translation id="7596558890252710462">अपरेटिङ सिस्टम</translation>
 <translation id="7605594153474022051">सिंकले काम गरिरहेको छैन</translation>
 <translation id="7612619742409846846">यस रूपमा Google मा साइन इन गरियो</translation>
+<translation id="7612989789287281429">साइन इन गरिँदै छ…</translation>
 <translation id="7616551326690708776">आफूले हाइलाइट गरेको पाठका लागि टेम्प्लेट चयन गर्नुहोस्।</translation>
 <translation id="7619072057915878432"><ph name="FILE_NAME" /> डाउनलोड नेटवर्क असफलताका कारणले असफल भयो।</translation>
 <translation id="7626032353295482388">Chrome मा स्वागत छ</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">केही चिज गडबड भयो।</translation>
 <translation id="8972098258593396643">डिफल्ट फोल्डरमा डाउनलोड गर्ने हो?</translation>
 <translation id="8987641763863173640">भिडियोको प्रिभ्यू हेर्ने सुविधासम्बन्धी सेटिङ मिलाउनुहोस्</translation>
+<translation id="8987736167266086032">तपाईँले जहाँ छोड्नुभएको थियो त्यहाँबाट जारी राख्नुहोस्</translation>
 <translation id="8989968390305463310">तपाईंको ब्राउजिङ इतिहासका कारण तपाईंलाई देखाइने विज्ञापन र तलका अनुमानित रुचिहरू फरक पर्न सक्छन्। तपाईंको गोपनीयताको सुरक्षार्थ Chrome ले हरेक महिना क्रमिक रूपमा तपाईंका रुचिहरू स्वतः मेटाउँछ। तपाईंले आफ्ना रुचिहरू नहटाउन्जेल ती रुचि रिफ्रेस हुन सक्छन्।</translation>
 <translation id="8993760627012879038">इनकोग्निटो मोडमा एउटा नयाँ ट्याब खोल्नुहोस्</translation>
 <translation id="8996847606757455498">अर्को सेवा प्रदायक छनौट गर्नुहोस्</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 0d24900e..831c7610 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Je wachtwoorden worden versleuteld op je apparaat voordat ze worden opgeslagen in Google Wachtwoordmanager</translation>
 <translation id="2249635629516220541">Pas de informatie aan die sites gebruiken om advertenties te laten zien</translation>
 <translation id="2259659629660284697">Wachtwoorden exporteren…</translation>
+<translation id="2276231040576210443">Je kunt altijd in de <ph name="BEGIN_LINK1" />instellingen<ph name="END_LINK1" /> bepalen wat je wilt synchroniseren. Google kan Zoeken en andere services personaliseren op basis van je geschiedenis.</translation>
 <translation id="2276696007612801991">Log in met je Google-account om je wachtwoorden te checken</translation>
 <translation id="2278052315791335171">Als je dit wachtwoord verwijdert, wordt je account op <ph name="SITE" /> niet verwijderd</translation>
 <translation id="2286841657746966508">Factuuradres</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Er is iets misgegaan.</translation>
 <translation id="8972098258593396643">Downloaden naar standaardmap?</translation>
 <translation id="8987641763863173640">Instellingen voor videovoorbeeld beheren</translation>
+<translation id="8987736167266086032">Ga verder waar je gebleven was</translation>
 <translation id="8989968390305463310">Je browsegeschiedenis heeft invloed op de advertenties die je ziet en je interesses. Hieronder staat een schatting. Ter bescherming van je privacy verwijdert Chrome je interesses automatisch elke maand op voortschrijdende basis. Interesses kunnen worden vernieuwd, tenzij je ze verwijdert.</translation>
 <translation id="8993760627012879038">Een nieuw venster openen in de incognitomodus</translation>
 <translation id="8996847606757455498">Een andere provider kiezen</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 a83749d7a9..5aabeb1 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Passordene dine krypteres på enheten før de lagres i Google Passordlagring</translation>
 <translation id="2249635629516220541">Tilpass informasjonen som brukes av nettsteder for å vise deg annonser</translation>
 <translation id="2259659629660284697">Eksportér passord</translation>
+<translation id="2276231040576210443">Du kan når som helst velge hva du vil synkronisere, i <ph name="BEGIN_LINK1" />innstillingene<ph name="END_LINK1" />. Google kan gi Søk og andre tjenester personlig preg basert på loggen din.</translation>
 <translation id="2276696007612801991">Logg på Google-kontoen din for å sjekke passordene dine</translation>
 <translation id="2278052315791335171">Sletting av dette passordet sletter ikke kontoen din på <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Faktureringsadresse</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Operativsystem</translation>
 <translation id="7605594153474022051">Synkronisering fungerer ikke</translation>
 <translation id="7612619742409846846">Logget på Google som</translation>
+<translation id="7612989789287281429">Logger på …</translation>
 <translation id="7616551326690708776">Velg en mal for markeringen.</translation>
 <translation id="7619072057915878432">Nedlastingen av <ph name="FILE_NAME" /> ble avbrutt på grunn av nettverksproblemer.</translation>
 <translation id="7626032353295482388">Velkommen til Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Noe gikk galt.</translation>
 <translation id="8972098258593396643">Vil du laste ned til standardmappen?</translation>
 <translation id="8987641763863173640">Administrer innstillinger for videoforhåndsvisning</translation>
+<translation id="8987736167266086032">Fortsett der du slapp</translation>
 <translation id="8989968390305463310">Nettleserloggen din påvirker hvilke annonser du ser, og interessene som er anslått nedenfor. For å beskytte personvernet ditt sletter Chrome interessene dine automatisk på rullerende basis hver måned. Interessene kan fornyes med mindre du fjerner dem.</translation>
 <translation id="8993760627012879038">Åpne en ny fane i inkognitomodus</translation>
 <translation id="8996847606757455498">Velg en annen leverandør</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 3af04dad..661d65e 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକ Google ପାସୱାର୍ଡ ମ୍ୟାନେଜରରେ ସେଭ ହେବା ପୂର୍ବରୁ ସେଗୁଡ଼ିକୁ ଆପଣଙ୍କ ଡିଭାଇସରେ ଏନକ୍ରିପ୍ଟ କରାଯାଏ</translation>
 <translation id="2249635629516220541">ଆପଣଙ୍କୁ ବିଜ୍ଞାପନଗୁଡ଼ିକ ଦେଖାଇବା ପାଇଁ ସାଇଟଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ ସୂଚନାକୁ କଷ୍ଟମାଇଜ କରନ୍ତୁ</translation>
 <translation id="2259659629660284697">ପାସ୍‍ୱାର୍ଡଗୁଡ଼ିକୁ ଏକ୍ସପୋର୍ଟ କରନ୍ତୁ…</translation>
+<translation id="2276231040576210443">କଣ ସିଙ୍କ କରାଯିବ, ତାହା ଆପଣ <ph name="BEGIN_LINK1" />ସେଟିଂସ<ph name="END_LINK1" />ରେ ସର୍ବଦା ବାଛିପାରିବେ। Google ଆପଣଙ୍କ ଇତିହାସ ଆଧାରରେ Search ଏବଂ ଅନ୍ୟ ସେବାଗୁଡ଼ିକୁ ପର୍ସନାଲାଇଜ କରିପାରେ।</translation>
 <translation id="2276696007612801991">ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିବା ପାଇଁ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation>
 <translation id="2278052315791335171">ଏହି ପାସୱାର୍ଡ ଡିଲିଟ୍ କରିବା ଫଳରେ <ph name="SITE" />ରେ ଥିବା ଆପଣଙ୍କ ଆକାଉଣ୍ଟ ଡିଲିଟ୍ ହେବ ନାହିଁ</translation>
 <translation id="2286841657746966508">ବିଲିଂ ଠିକଣା</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 cb544f1..71b0d5c 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Google ਪਾਸਵਰਡ ਪ੍ਰਬੰਧਕ 'ਤੇ ਰੱਖਿਅਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਤੁਹਾਡੇ ਡੀਵਾਈਸ 'ਤੇ ਇਨਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ</translation>
 <translation id="2249635629516220541">ਤੁਹਾਨੂੰ ਵਿਗਿਆਪਨ ਦਿਖਾਉਣ ਲਈ ਸਾਈਟਾਂ ਵੱਲੋਂ ਵਰਤੀ ਜਾਣ ਵਾਲੀ ਜਾਣਕਾਰੀ ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ</translation>
 <translation id="2259659629660284697">ਪਾਸਵਰਡ ਨਿਰਯਾਤ ਕਰੋ...</translation>
+<translation id="2276231040576210443">ਤੁਸੀਂ <ph name="BEGIN_LINK1" />ਸੈਟਿੰਗਾਂ<ph name="END_LINK1" /> ਵਿੱਚ ਇਹ ਕਿਸੇ ਵੀ ਵੇਲੇ ਚੁਣ ਸਕਦੇ ਹੋ ਕਿ ਕੀ ਸਿੰਕ ਕਰਨਾ ਹੈ। Google ਤੁਹਾਡੇ ਇਤਿਹਾਸ ਦੇ ਆਧਾਰ 'ਤੇ Search ਅਤੇ ਹੋਰ ਸੇਵਾਵਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾ ਸਕਦਾ ਹੈ।</translation>
 <translation id="2276696007612801991">ਆਪਣੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
 <translation id="2278052315791335171">ਇਸ ਪਾਸਵਰਡ ਨੂੰ ਮਿਟਾਉਣ ਨਾਲ <ph name="SITE" /> 'ਤੇ ਤੁਹਾਡੇ ਖਾਤੇ ਨੂੰ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾਵੇਗਾ</translation>
 <translation id="2286841657746966508">ਬਿਲਿੰਗ ਪਤਾ</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ।</translation>
 <translation id="8972098258593396643">ਕੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਫੋਲਡਰ ਵਿੱਚ ਡਾਊਨਲੋਡ ਕਰਨਾ ਹੈ?</translation>
 <translation id="8987641763863173640">ਵੀਡੀਓ ਪੂਰਵ-ਝਲਕ ਸੈਟਿੰਗਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
+<translation id="8987736167266086032">ਜਿੱਥੇ ਤੁਸੀਂ ਛੱਡਿਆ ਸੀ ਓਥੋਂ ਸ਼ੁਰੂ ਕਰੋ</translation>
 <translation id="8989968390305463310">ਤੁਹਾਡਾ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਤੁਹਾਨੂੰ ਦਿਸਣ ਵਾਲੇ ਵਿਗਿਆਪਨਾਂ ਅਤੇ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਅੰਦਾਜ਼ਨ ਦਿਲਚਸਪੀਆਂ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ। ਤੁਹਾਡੀ ਪਰਦੇਦਾਰੀ ਦੀ ਸੁਰੱਖਿਆ ਲਈ, Chrome ਹਰ ਮਹੀਨੇ ਰੋਲਿੰਗ ਦੇ ਆਧਾਰ 'ਤੇ ਤੁਹਾਡੀਆਂ ਦਿਲਚਸਪੀਆਂ ਨੂੰ ਸਵੈਚਲਿਤ-ਮਿਟਾਉਂਦਾ ਹੈ। ਦਿਲਚਸਪੀਆਂ ਰਿਫ੍ਰੈਸ਼ ਹੋ ਸਕਦੀਆਂ ਹਨ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਨੂੰ ਹਟਾ ਨਹੀਂ ਦਿੰਦੇ।</translation>
 <translation id="8993760627012879038">ਇਨਕੋਗਨਿਟੋ ਮੋਡ ਵਿੱਚ ਇੱਕ ਨਵੀਂ ਟੈਬ ਖੋਲ੍ਹੋ</translation>
 <translation id="8996847606757455498">ਕੋਈ ਹੋਰ ਪ੍ਰਦਾਨਕ ਚੁਣੋ</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 ce92f277..9c28008 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Przed zapisaniem w menedżerze haseł Google hasła są szyfrowane na urządzeniu</translation>
 <translation id="2249635629516220541">Dostosuj informacje używane przez witryny do wyświetlania Ci reklam</translation>
 <translation id="2259659629660284697">Eksportuj hasła…</translation>
+<translation id="2276231040576210443">W <ph name="BEGIN_LINK1" />ustawieniach<ph name="END_LINK1" /> możesz wybrać, co chcesz synchronizować. Google może korzystać z Twojej historii, aby dostosowywać działanie wyszukiwarki i innych usług.</translation>
 <translation id="2276696007612801991">Aby sprawdzić swoje hasła, zaloguj się na konto Google</translation>
 <translation id="2278052315791335171">Usunięcie tego hasła nie spowoduje usunięcia Twojego konta na stronie <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Adres rozliczeniowy</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Coś poszło nie tak.</translation>
 <translation id="8972098258593396643">Czy pobrać do folderu domyślnego?</translation>
 <translation id="8987641763863173640">Zarządzaj ustawieniami podglądu wideo</translation>
+<translation id="8987736167266086032">Wznów od tego samego miejsca</translation>
 <translation id="8989968390305463310">Historia przeglądania wpływa na wyświetlane reklamy i oszacowane zainteresowania (patrz poniżej). Żeby chronić Twoją prywatność, Chrome co miesiąc automatycznie usuwa Twoje zainteresowania. Zainteresowania mogą być odświeżane, chyba że je usuniesz.</translation>
 <translation id="8993760627012879038">Otwórz nową kartę w trybie incognito</translation>
 <translation id="8996847606757455498">Wybierz innego dostawcę</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 0699d73..8d17f744 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Suas senhas são criptografadas no dispositivo antes de serem salvas no Gerenciador de senhas do Google</translation>
 <translation id="2249635629516220541">Personalize as informações usadas pelos sites para mostrar anúncios</translation>
 <translation id="2259659629660284697">Exportar senhas…</translation>
+<translation id="2276231040576210443">Nas <ph name="BEGIN_LINK1" />configurações<ph name="END_LINK1" />, é possível escolher a qualquer momento o que é sincronizado. O Google pode personalizar a Pesquisa e outros serviços com base no seu histórico.</translation>
 <translation id="2276696007612801991">Faça login na Conta do Google para verificar suas senhas</translation>
 <translation id="2278052315791335171">A exclusão desta senha não excluirá a conta em <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Endereço de faturamento</translation>
@@ -1494,6 +1495,7 @@
 <translation id="8970887620466824814">Algo deu errado.</translation>
 <translation id="8972098258593396643">Fazer o download para a pasta padrão?</translation>
 <translation id="8987641763863173640">Gerenciar configurações de prévia de vídeos</translation>
+<translation id="8987736167266086032">Recomece de onde você parou</translation>
 <translation id="8989968390305463310">Seu histórico de navegação afeta os anúncios que você vê e os interesses estimados abaixo. Para proteger sua privacidade, o Chrome exclui automaticamente seus interesses mais antigos do que um mês. Os interesses podem ser atualizados, a menos que você os remova.</translation>
 <translation id="8993760627012879038">Abrir uma nova guia no modo de navegação anônima</translation>
 <translation id="8996847606757455498">Escolha outro provedor</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 37e4d97..2070e51 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">As palavras-passe são encriptadas no seu dispositivo antes de serem guardadas no Gestor de palavras-passe da Google</translation>
 <translation id="2249635629516220541">Personalize as informações usadas pelos sites para lhe mostrar anúncios</translation>
 <translation id="2259659629660284697">Exportar palavras-passe</translation>
+<translation id="2276231040576210443">Pode escolher o que quer sincronizar nas <ph name="BEGIN_LINK1" />definições<ph name="END_LINK1" />. A Google pode personalizar a Pesquisa e outros serviços com base no seu histórico.</translation>
 <translation id="2276696007612801991">Inicie sessão na sua Conta Google para verificar as suas palavras-passe.</translation>
 <translation id="2278052315791335171">Eliminar esta palavra-passe não elimina a sua conta em <ph name="SITE" />.</translation>
 <translation id="2286841657746966508">Endereço de faturação</translation>
@@ -282,7 +283,7 @@
 <translation id="257470231920177468">Quando a opção está ativada, é apresentada aqui uma lista de sites que visita e que adivinham os seus interesses.</translation>
 <translation id="2580436639406015883">A redução de spam e fraudes depende de símbolos de estado privados para ajudar os sites a combater fraudes e distinguir bots de pessoas.
 
-Com base na sua interação com um site, como iniciar sessão regularmente numa conta, esse site pode emitir um símbolo de estado privado para o seu navegador. Posteriormente, se outros sites que visitar verificarem e encontrarem um símbolo de estado privado válido, é mais provável que tratem o utilizador como uma pessoa e não como um bot.
+Com base na sua interação com um site, como iniciar sessão regularmente numa conta, esse site pode emitir um token de estado privado para o seu navegador. Posteriormente, se outros sites que visitar verificarem e encontrarem um token de estado privado válido, é mais provável que tratem o utilizador como uma pessoa e não como um bot.
 
 Os símbolos de estado privado melhoram a privacidade na Web e não podem ser usados para descobrir a sua identidade.</translation>
 <translation id="2581165646603367611">Esta ação elimina os cookies, a cache e outros dados de sites que o Chrome não considera importantes.</translation>
@@ -573,7 +574,7 @@
 <translation id="4141536112466364990">Conheça o Chrome</translation>
 <translation id="4147131678541801076">Quando as avaliações estão ativadas, a redução de spam e fraudes depende de símbolos de estado privado para ajudar os sites a combater fraudes e distinguir bots de pessoas.
 
-Com base na sua interação com um site, como iniciar sessão regularmente numa conta, esse site pode emitir um símbolo de estado privado para o seu navegador. Posteriormente, se outros sites que visitar verificarem e encontrarem um símbolo de estado privado válido, é mais provável que tratem o utilizador como uma pessoa e não como um bot.
+Com base na sua interação com um site, como iniciar sessão regularmente numa conta, esse site pode emitir um token de estado privado para o seu navegador. Posteriormente, se outros sites que visitar verificarem e encontrarem um token de estado privado válido, é mais provável que tratem o utilizador como uma pessoa e não como um bot.
 
 Os símbolos de estado privado melhoram a privacidade na Web e não podem ser usados para descobrir a sua identidade.</translation>
 <translation id="4162867837470729563">Lista de opções de partilha à altura total.</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Sistema operativo</translation>
 <translation id="7605594153474022051">A sincronização não está a funcionar</translation>
 <translation id="7612619742409846846">Iniciou sessão no Google como</translation>
+<translation id="7612989789287281429">A iniciar sessão…</translation>
 <translation id="7616551326690708776">Selecione um modelo para o seu destaque.</translation>
 <translation id="7619072057915878432">A transferência de <ph name="FILE_NAME" /> falhou devido a falhas de rede.</translation>
 <translation id="7626032353295482388">Bem-vindo ao Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Ocorreu um erro.</translation>
 <translation id="8972098258593396643">Pretende transferir para a pasta predefinida?</translation>
 <translation id="8987641763863173640">Faça a gestão das definições de pré-visualização de vídeo</translation>
+<translation id="8987736167266086032">Continue onde ficou</translation>
 <translation id="8989968390305463310">O seu histórico de navegação afeta os anúncios que vê e os interesses, conforme estimados abaixo. Para proteger a sua privacidade, o Chrome elimina automaticamente os seus interesses todos os meses. Os interesses podem ser atualizados, a menos que os remova.</translation>
 <translation id="8993760627012879038">Abrir novo separador no modo de navegação anónima</translation>
 <translation id="8996847606757455498">Escolher outro fornecedor</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 3b325fa9..4c3dbdd 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Parolele tale sunt criptate pe dispozitiv înainte să se salveze în Managerul de parole Google</translation>
 <translation id="2249635629516220541">Personalizează informațiile folosite de site-uri pentru a-ți afișa anunțuri</translation>
 <translation id="2259659629660284697">Exportă parolele…</translation>
+<translation id="2276231040576210443">Poți să alegi oricând ce să sincronizezi în <ph name="BEGIN_LINK1" />setări<ph name="END_LINK1" />. Google poate personaliza Căutarea și alte servicii pe baza istoricului.</translation>
 <translation id="2276696007612801991">Conectează-te la contul Google pentru a verifica parolele</translation>
 <translation id="2278052315791335171">Prin ștergerea acestei parole, nu va fi șters și contul de pe <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Adresa de facturare</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">A apărut o eroare.</translation>
 <translation id="8972098258593396643">Descarci în dosarul prestabilit?</translation>
 <translation id="8987641763863173640">Gestionează setările pentru previzualizarea videoclipurilor</translation>
+<translation id="8987736167266086032">Reia de unde ai rămas</translation>
 <translation id="8989968390305463310">Istoricul tău de navigare influențează anunțurile pe care le vezi și categoriile de interese estimate de mai jos. Pentru a-ți proteja confidențialitatea, Chrome șterge automat categoriile de interese în permanență, în fiecare lună. Categoriile de interese se pot actualiza dacă nu le elimini.</translation>
 <translation id="8993760627012879038">Deschide o filă nouă în modul incognito</translation>
 <translation id="8996847606757455498">Alege alt furnizor</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 d978f34..f67c25776 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Ваши пароли шифруются на устройстве и только потом сохраняются в Google Менеджере паролей.</translation>
 <translation id="2249635629516220541">Управление данными, которые используют сайты для показа рекламы</translation>
 <translation id="2259659629660284697">Экспорт паролей…</translation>
+<translation id="2276231040576210443">Вы всегда можете выбрать, что синхронизировать, в <ph name="BEGIN_LINK1" />настройках<ph name="END_LINK1" />. Google может персонально настраивать Поиск и другие сервисы на основе вашей истории.</translation>
 <translation id="2276696007612801991">Чтобы проверить пароли, войдите в свой аккаунт Google.</translation>
 <translation id="2278052315791335171">Это не приведет к удалению вашего аккаунта на сайте <ph name="SITE" />.</translation>
 <translation id="2286841657746966508">Платежный адрес</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Операционная система</translation>
 <translation id="7605594153474022051">Ошибка синхронизации</translation>
 <translation id="7612619742409846846">Вы вошли в аккаунт</translation>
+<translation id="7612989789287281429">Вход в аккаунт…</translation>
 <translation id="7616551326690708776">Выберите шаблон для выделенного текста.</translation>
 <translation id="7619072057915878432">Не удалось скачать файл <ph name="FILE_NAME" /> из-за сбоев сети.</translation>
 <translation id="7626032353295482388">Добро пожаловать в Chrome!</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Произошла ошибка</translation>
 <translation id="8972098258593396643">Скачать в папку по умолчанию?</translation>
 <translation id="8987641763863173640">Управляйте настройками предварительного просмотра видео</translation>
+<translation id="8987736167266086032">Не прерывайте работу</translation>
 <translation id="8989968390305463310">История браузера влияет на предложенные интересы, которые представлены ниже, и на то, какую рекламу вы будете видеть. Чтобы обеспечивать вашу конфиденциальность, Chrome каждый месяц автоматически удаляет ваши интересы. Они могут обновляться, если вы их не удалите.</translation>
 <translation id="8993760627012879038">Открыть новое окно в режиме инкогнито</translation>
 <translation id="8996847606757455498">Выбрать другого поставщика</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 6be4cb4..957f33e 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">ඔබගේ මුරපදය Google මුරපද කළමනාකරු වෙත සුරැකීමට පෙර ඔබගේ උපාංගයේ සංකේතනය කර ඇත</translation>
 <translation id="2249635629516220541">ඔබට දැන්වීම් පෙන්වීමට අඩවි විසින් භාවිතා කරන තතු අභිරුචිකරණය කරන්න</translation>
 <translation id="2259659629660284697">මුරපද නිර්යාත කරන්න…</translation>
+<translation id="2276231040576210443">ඔබට සැම විට <ph name="BEGIN_LINK1" />සැකසීම්<ph name="END_LINK1" /> තුළ සමමුහුර්ත කළ යුතු දේ තෝරා ගත හැක. Google ඔබේ ඉතිහාසය මත පදනම්ව සෙවීම් සහ අනෙකුත් සේවාවන් පෞද්ගලීකරණය කිරීමට ඉඩ ඇත.</translation>
 <translation id="2276696007612801991">ඔබගේ මුරපද පරීක්ෂා කිරීමට ඔබගේ Google ගිණුමට පුරන්න</translation>
 <translation id="2278052315791335171">මෙම මුරපදය මැකීම <ph name="SITE" /> හි ඔබගේ ගිණුම මකන්නේ නැත</translation>
 <translation id="2286841657746966508">බිල්පත් ලිපිනය</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">යම් දෙයක් වැරදිණි</translation>
 <translation id="8972098258593396643">පෙරනිමි ෆෝල්ඩරයට බාන්නද?</translation>
 <translation id="8987641763863173640">වීඩියෝ පෙරදසුන් සැකසීම් කළමනාකරණය කරන්න</translation>
+<translation id="8987736167266086032">ඔබ නතර කළ තැනින් පටන් ගන්න</translation>
 <translation id="8989968390305463310">ඔබගේ බ්‍රවුස් කිරීමේ ඉතිහාසය ඔබ දකින වෙළඳ දැන්වීම්වලට සහ ලැදිකම්වලට පහත තක්සේරු කර ඇති පරිදි බලපායි. ඔබගේ පෞද්ගලිකත්වය ආරක්ෂා කිරීමට, Chrome සෑම මසකම පෙරළෙන පදනම මත ඔබගේ ලැදිකම් ස්වයංක්‍රීයව මකයි. ඔබ ඒවා ඉවත් නොකළහොත් ලැදිකම් නැවුම් විය හැකිය.</translation>
 <translation id="8993760627012879038">අප්‍රකට ප්‍රකාරය තුළ නව ටැබයක් විවෘත කරන්න</translation>
 <translation id="8996847606757455498">වෙනත් සැපයුම්කරුවකු තෝරන්න</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 7eed96a6..4f8be25a 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Heslá sú šifrované v zariadení ešte pred ich uložením do správcu hesiel Google</translation>
 <translation id="2249635629516220541">Prispôsobenie informácií, na základe ktorých weby zobrazujú reklamy</translation>
 <translation id="2259659629660284697">Exportovať heslá…</translation>
+<translation id="2276231040576210443">Položky, ktoré chcete synchronizovať, môžete kedykoľvek vybrať v <ph name="BEGIN_LINK1" />nastaveniach<ph name="END_LINK1" />. Google môže prispôsobiť Vyhľadávanie a ďalšie služby na základe vašej histórie.</translation>
 <translation id="2276696007612801991">Ak si chcete skontrolovať heslá, prihláste sa do svojho účtu Google</translation>
 <translation id="2278052315791335171">Odstránením tohto hesla nevymažete svoj účet na webe <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Fakturačná adresa</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Vyskytol sa problém.</translation>
 <translation id="8972098258593396643">Stiahnuť do predvoleného priečinka?</translation>
 <translation id="8987641763863173640">Spravujte nastavenia ukážok videa</translation>
+<translation id="8987736167266086032">Pokračujte tam, kde ste skončili</translation>
 <translation id="8989968390305463310">Vaša história prehliadania ovplyvňuje zobrazované reklamy a záujmy, ktoré sú odhadnuté nižšie. Chrome priebežne automaticky odstraňuje vaše záujmy každý mesiac, aby tak chránil vaše súkromie. Záujmy sa môžu obnoviť, pokiaľ ich neodstránite.</translation>
 <translation id="8993760627012879038">Otvorenie novej karty v režime inkognito</translation>
 <translation id="8996847606757455498">Vybrať iného poskytovateľa</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 e61e85b..4b79684 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Gesla so šifrirana v napravi, preden se shranijo v Google Upravitelju gesel.</translation>
 <translation id="2249635629516220541">Prilagajanje podatkov, ki jih spletna mesta uporabljajo za prikazovanje oglasov.</translation>
 <translation id="2259659629660284697">Izvozi gesla …</translation>
+<translation id="2276231040576210443">V <ph name="BEGIN_LINK1" />nastavitvah<ph name="END_LINK1" /> lahko kadar koli izberete, kaj želite sinhronizirati. Google lahko prilagodi Iskanje Google in druge storitve glede na vašo zgodovino.</translation>
 <translation id="2276696007612801991">Če želite preveriti gesla, se prijavite v račun Google</translation>
 <translation id="2278052315791335171">Če izbrišete to geslo, ne izbrišete računa na <ph name="SITE" />.</translation>
 <translation id="2286841657746966508">Naslov za obračun storitev</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Operacijski sistem</translation>
 <translation id="7605594153474022051">Sync isn't working</translation>
 <translation id="7612619742409846846">V Google ste prijavljeni kot</translation>
+<translation id="7612989789287281429">Prijavljamo vas …</translation>
 <translation id="7616551326690708776">Izberite predlogo za označitev.</translation>
 <translation id="7619072057915878432">Prenos datoteke <ph name="FILE_NAME" /> ni uspel zaradi napak v omrežju.</translation>
 <translation id="7626032353295482388">Dobrodošli v Chromu</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Prišlo je do napake.</translation>
 <translation id="8972098258593396643">Želite prenesti v privzeto mapo?</translation>
 <translation id="8987641763863173640">Upravljanje nastavitev predogleda videoposnetkov</translation>
+<translation id="8987736167266086032">Nadaljujte, kjer ste ostali</translation>
 <translation id="8989968390305463310">Zgodovina brskanja vpliva na prikazane oglase in zanimanja, kot je ocenjeno spodaj. Chrome zaradi varovanja vaše zasebnosti vsak mesec sproti samodejno izbriše vaša zanimanja. Zanimanja se lahko osvežujejo, razen če jih odstranite.</translation>
 <translation id="8993760627012879038">Odpiranje novega anonimnega zavihka</translation>
 <translation id="8996847606757455498">Izberi drugega ponudnika:</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 5e3e3c48..a3d37d7 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Fjalëkalimet enkriptohen në pajisjen tënde para se të ruhen në "Menaxherin e fjalëkalimeve të Google"</translation>
 <translation id="2249635629516220541">Personalizo informacionet e përdorura nga sajtet për të të shfaqur reklama</translation>
 <translation id="2259659629660284697">Eksporto fjalëkalimet…</translation>
+<translation id="2276231040576210443">Mund të zgjedhësh gjithmonë se çfarë do të sinkronizosh te <ph name="BEGIN_LINK1" />cilësimet<ph name="END_LINK1" />. Google mund t'i personalizojë "Kërko" dhe shërbimet e tjera bazuar në historikun tënd.</translation>
 <translation id="2276696007612801991">Identifikohu në "Llogarinë tënde të Google" për të kontrolluar fjalëkalimet e tua</translation>
 <translation id="2278052315791335171">Fshirja e këtij fjalëkalimi nuk do ta fshijë llogarinë tënde në <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Adresa e faturimit</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Provoni këshillat e mëposhtme: sigurohu që ka hapësirë ​​të mjaftueshme në pajisjen tënde dhe provo të eksportosh përsëri.</translation>
 <translation id="7686086654630106285">Më shumë rreth reklamave të sugjeruara nga sajtet</translation>
 <translation id="768618399695552958">Disa nga faqet që ti viziton janë të ngarkuara paraprakisht. Faqet mund të ngarkohen paraprakisht nëpërmjet serverëve të Google kur lidhen nga një sajt i Google.</translation>
+<translation id="7691043218961417207">Eksploro përmbajtje për t'i ndjekur</translation>
 <translation id="7698359219371678927">Krijo mail në <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Përdor të dhënat celulare</translation>
 <translation id="7709094866268987903">Interesat që hoqe do të shfaqen këtu</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Ndodhi një gabim.</translation>
 <translation id="8972098258593396643">Të shkarkohet në dosjen e parazgjedhur?</translation>
 <translation id="8987641763863173640">Menaxho cilësimet e pamjes paraprake të videos</translation>
+<translation id="8987736167266086032">Vazhdo ku e ke lënë</translation>
 <translation id="8989968390305463310">Historiku yt i shfletimit ndikon te reklamat që shikon dhe tek interesat sipas përllogaritjes më poshtë. Për të mbrojtur privatësinë tënde, Chrome fshin automatikisht interesat e tua në vazhdimësi çdo muaj. Interesat mund të rifreskohen, përveçse nëse ti i heq ato.</translation>
 <translation id="8993760627012879038">Hap një skedë të re në "Modalitetin e fshehtë"</translation>
 <translation id="8996847606757455498">Zgjidh një ofrues tjetër</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 e40896e..1f5f40b 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Lozinke se šifruju na uređaju pre nego što se sačuvaju u Google menadžeru lozinki</translation>
 <translation id="2249635629516220541">Prilagodite informacije koje sajtovi koriste da bi vam prikazivali oglase</translation>
 <translation id="2259659629660284697">Izvezi lozinke…</translation>
+<translation id="2276231040576210443">Uvek možete da odaberete šta ćete sinhronizovati u <ph name="BEGIN_LINK1" />podešavanjima<ph name="END_LINK1" />. Google može da personalizuje Pretragu i druge usluge na osnovu istorije.</translation>
 <translation id="2276696007612801991">Prijavite se na Google nalog da biste proverili lozinke</translation>
 <translation id="2278052315791335171">Brisanjem ove lozinke nećete izbrisati nalog na <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Adresa za naplatu</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Operativni sistem</translation>
 <translation id="7605594153474022051">Sinhronizacija ne funkcioniše</translation>
 <translation id="7612619742409846846">Prijavljeni ste u Google kao</translation>
+<translation id="7612989789287281429">Prijavljujete se…</translation>
 <translation id="7616551326690708776">Izaberite šablon za istaknutu stavku.</translation>
 <translation id="7619072057915878432">Preuzimanje datoteke <ph name="FILE_NAME" /> nije uspelo zbog problema sa mrežom.</translation>
 <translation id="7626032353295482388">Dobro došli u Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Došlo je do greške.</translation>
 <translation id="8972098258593396643">Preuzimate u podrazumevani folder?</translation>
 <translation id="8987641763863173640">Upravljajte podešavanjima pregleda videa</translation>
+<translation id="8987736167266086032">Nastavite tamo gde ste stali</translation>
 <translation id="8989968390305463310">Istorija pregledanja utiče na oglase koji vam se prikazuju i interesovanja procenjena u nastavku. Radi zaštite privatnosti Chrome automatski briše interesovanja svakog meseca čim postanu dostupna. Interesovanja mogu da se osvežavaju ako ih ne uklonite.</translation>
 <translation id="8993760627012879038">Otvaranje nove kartice u režimu bez arhiviranja</translation>
 <translation id="8996847606757455498">Odaberite drugog dobavljača</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 eb8a7f4..8e52a29 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Лозинке се шифрују на уређају пре него што се сачувају у Google менаџеру лозинки</translation>
 <translation id="2249635629516220541">Прилагодите информације које сајтови користе да би вам приказивали огласе</translation>
 <translation id="2259659629660284697">Извези лозинке…</translation>
+<translation id="2276231040576210443">Увек можете да одаберете шта ћете синхронизовати у <ph name="BEGIN_LINK1" />подешавањима<ph name="END_LINK1" />. Google може да персонализује Претрагу и друге услуге на основу историје.</translation>
 <translation id="2276696007612801991">Пријавите се на Google налог да бисте проверили лозинке</translation>
 <translation id="2278052315791335171">Брисањем ове лозинке нећете избрисати налог на <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Адреса за наплату</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Оперативни систем</translation>
 <translation id="7605594153474022051">Синхронизација не функционише</translation>
 <translation id="7612619742409846846">Пријављени сте у Google као</translation>
+<translation id="7612989789287281429">Пријављујете се…</translation>
 <translation id="7616551326690708776">Изаберите шаблон за истакнуту ставку.</translation>
 <translation id="7619072057915878432">Преузимање датотеке <ph name="FILE_NAME" /> није успело због проблема са мрежом.</translation>
 <translation id="7626032353295482388">Добро дошли у Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Дошло је до грешке.</translation>
 <translation id="8972098258593396643">Преузимате у подразумевани фолдер?</translation>
 <translation id="8987641763863173640">Управљајте подешавањима прегледа видеа</translation>
+<translation id="8987736167266086032">Наставите тамо где сте стали</translation>
 <translation id="8989968390305463310">Историја прегледања утиче на огласе који вам се приказују и интересовања процењена у наставку. Ради заштите приватности Chrome аутоматски брише интересовања сваког месеца чим постану доступна. Интересовања могу да се освежавају ако их не уклоните.</translation>
 <translation id="8993760627012879038">Отварање нове картице у режиму без архивирања</translation>
 <translation id="8996847606757455498">Одаберите другог добављача</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 45c08e13..8297d6f 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Dina lösenord krypteras på enheten innan de sparas i Google Lösenordshantering</translation>
 <translation id="2249635629516220541">Anpassa informationen som används av webbplatser för att visa annonser</translation>
 <translation id="2259659629660284697">Exportera lösenord …</translation>
+<translation id="2276231040576210443">Du kan alltid välja vad som ska synkroniseras i <ph name="BEGIN_LINK1" />inställningarna<ph name="END_LINK1" />. Google kan anpassa Sök och andra tjänster utifrån din historik.</translation>
 <translation id="2276696007612801991">Logga in på ditt Google-konto om du vill kontrollera lösenorden</translation>
 <translation id="2278052315791335171">Att ta bort det här lösenordet innebär inte att ditt konto på <ph name="SITE" /> raderas</translation>
 <translation id="2286841657746966508">Faktureringsadress</translation>
@@ -1243,6 +1244,7 @@
 <translation id="7682724950699840886">Testa följande: kontrollera att det finns tillräckligt mycket utrymme på enheten, gör om exporten.</translation>
 <translation id="7686086654630106285">Mer om föreslagna annonser på webbplatser</translation>
 <translation id="768618399695552958">Vissa av sidorna du besöker läser in i förväg. Sidor kan läsas in i förväg via Googles servrar när de länkas från en Google-webbplats.</translation>
+<translation id="7691043218961417207">Utforska innehåll att följa</translation>
 <translation id="7698359219371678927">Skapa ett e-postmeddelande i <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Mobildata används</translation>
 <translation id="7709094866268987903">Intressen du har tagit bort visas här</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Något gick fel.</translation>
 <translation id="8972098258593396643">Vill du ladda ned till standardmappen?</translation>
 <translation id="8987641763863173640">Hantera inställningar för förhandsgranskning av video</translation>
+<translation id="8987736167266086032">Fortsätt där du slutade</translation>
 <translation id="8989968390305463310">Webbhistoriken påverkar vilka annonser som visas och vilka intressen som du uppskattas ha. Av integritetsskäl raderas dina intressen automatiskt och löpande varje månad. Intressen kan förnyas om du inte tar bort dem.</translation>
 <translation id="8993760627012879038">Öppna en ny flik i inkognitoläge</translation>
 <translation id="8996847606757455498">Välj en annan leverantör</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 dbb55ac..24da250e 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Manenosiri yako husimbwa kwa njia fiche kwenye kifaa chako kabla hayajahifadhiwa kwenye Kidhibiti cha Manenosiri cha Google</translation>
 <translation id="2249635629516220541">Badilisha upendavyo maelezo yanayotumiwa na tovuti kukuonyesha matangazo</translation>
 <translation id="2259659629660284697">Hamisha manenosiri…</translation>
+<translation id="2276231040576210443">Unaweza kuchagua unachotaka kusawazisha wakati wowote kwenye <ph name="BEGIN_LINK1" />mipangilio<ph name="END_LINK1" />. Google inaweza kuweka mapendeleo kwenye huduma ya Tafuta na huduma nyinginezo kulingana na historia yako.</translation>
 <translation id="2276696007612801991">Ingia katika akaunti yako ya Google ili uangalie manenosiri yako</translation>
 <translation id="2278052315791335171">Hatua ya kufuta nenosiri hili haitafuta akaunti yako kwenye <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Anwani ya kutoza</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Jaribu vidokezo vifuatavyo: Hakikisha kuwa una nafasi ya kutosha kwenye kifaa chako kisha ujaribu kuihamisha tena.</translation>
 <translation id="7686086654630106285">Maelezo zaidi kuhusu matangazo yanayopendekezwa na tovuti</translation>
 <translation id="768618399695552958">Baadhi ya kurasa unazotembelea huwa zimepakiwa mapema. Huenda kurasa zikapakiwa mapema kupitia seva za Google wakati viungo vya kurasa hizo vipo kwenye tovuti ya Google.</translation>
+<translation id="7691043218961417207">Gundua maudhui ya kufuatilia</translation>
 <translation id="7698359219371678927">Tunga barua pepe katika <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Tumia data ya mtandao wa simu</translation>
 <translation id="7709094866268987903">Mambo yanayokuvutia uliyoyaondoa yataonekana hapa</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Hitilafu imetokea.</translation>
 <translation id="8972098258593396643">Ungependa kupakua kwenye folda chaguomsingi?</translation>
 <translation id="8987641763863173640">Dhibiti Mipangilio ya Kukagua Video</translation>
+<translation id="8987736167266086032">Endelea kutoka ulipoachia</translation>
 <translation id="8989968390305463310">Historia yako ya kuvinjari huathiri matangazo unayoyaona na mambo yanayokuvutia kama inavyokadiriwa hapa chini. Ili kulinda faragha yako, Chrome hufuta kiotomatiki mambo yanayokuvutia kadiri unavyoendelea kutumia kila mwezi. Mambo yanayokuvutia yanaweza kuonyeshwa upya isipokuwa ukiyaondoa.</translation>
 <translation id="8993760627012879038">Fungua kichupo kipya katika Hali fiche</translation>
 <translation id="8996847606757455498">Chagua mtoa huduma mwingine</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 6abf229..ea16408 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Google கடவுச்சொல் நிர்வாகியில் சேமிக்கப்படுவதற்கு முன்பு உங்கள் சாதனத்தில் கடவுச்சொற்கள் என்க்ரிப்ஷன் செய்யப்படுகின்றன</translation>
 <translation id="2249635629516220541">உங்களுக்கு விளம்பரங்களைக் காட்ட தளங்கள் பயன்படுத்தும் தகவலைப் பிரத்தியேகப்படுத்தும்</translation>
 <translation id="2259659629660284697">கடவுச்சொற்களை ஏற்று…</translation>
+<translation id="2276231040576210443">எதையெல்லாம் ஒத்திசைக்க வேண்டும் என்பதை <ph name="BEGIN_LINK1" />அமைப்புகளுக்குச்<ph name="END_LINK1" /> சென்று எப்போது வேண்டுமானாலும் தேர்வுசெய்யலாம். உங்கள் பதிவுகளின் அடிப்படையில் Search மற்றும் பிற சேவைகளை Google பிரத்தியேகமாக்கலாம்.</translation>
 <translation id="2276696007612801991">கடவுச்சொற்களைச் சரிபார்க்க, உங்கள் Google கணக்கில் உள்நுழையவும்</translation>
 <translation id="2278052315791335171">இந்தக் கடவுச்சொல்லை நீக்கினால் <ph name="SITE" /> இணையதளத்தில் உள்ள உங்கள் கணக்கு நீக்கப்படாது</translation>
 <translation id="2286841657746966508">பில்லிங் முகவரி</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">பின்வரும் உதவிக்குறிப்புகளை முயன்று பார்க்கவும்: சாதனத்தில் போதுமான சேமிப்பிடம் இருப்பதை உறுதிப்படுத்தி, மீண்டும் ஏற்ற முயலவும்.</translation>
 <translation id="7686086654630106285">'தளம் பரிந்துரைக்கும் விளம்பரங்கள்' குறித்த கூடுதல் தகவல்</translation>
 <translation id="768618399695552958">நீங்கள் பார்வையிடும் சில பக்கங்கள் முன்கூட்டியே ஏற்றப்பட்டிருக்கும். Google தளத்தில் இருந்து இணைக்கப்படும்போது Google சேவையகங்கள் மூலம் பக்கங்கள் முன்கூட்டியே ஏற்றப்படக்கூடும்.</translation>
+<translation id="7691043218961417207">பின்தொடர வேண்டிய உள்ளடக்கத்தைக் கண்டறியுங்கள்</translation>
 <translation id="7698359219371678927"><ph name="APP_NAME" /> இல் மின்னஞ்சலை உருவாக்கவும்</translation>
 <translation id="7707922173985738739">மொபைல் டேட்டாவைப் பயன்படுத்து</translation>
 <translation id="7709094866268987903">நீங்கள் அகற்றிய ஆர்வங்கள் இங்கே காட்டப்படும்</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">ஏதோ தவறாகிவிட்டது.</translation>
 <translation id="8972098258593396643">இயல்புக் ஃபோல்டருக்குப் பதிவிறக்கவா?</translation>
 <translation id="8987641763863173640">வீடியோ மாதிரிக்காட்சிக்கான அமைப்புகளை நிர்வகிக்கலாம்</translation>
+<translation id="8987736167266086032">விட்ட இடத்திலிருந்து தொடங்கலாம்</translation>
 <translation id="8989968390305463310">நீங்கள் பார்க்கும் விளம்பரங்களும் கீழே குறிப்பிடப்பட்டுள்ள உத்தேசமான ஆர்வங்களும் நீங்கள் இதுவரை இணையத்தில் பார்த்தவற்றைப் பொறுத்து அமையும். உங்கள் தனியுரிமையைப் பாதுகாக்க, ஒவ்வொரு மாதமும் படிப்படியாக உங்கள் ஆர்வங்களை Chrome தானாக நீக்கும். ஆர்வங்களை நீங்கள் அகற்றாவிட்டால் அவை மீண்டும் காட்டப்படும்.</translation>
 <translation id="8993760627012879038">புதிய தாவலை மறைநிலையில் திறக்கும்</translation>
 <translation id="8996847606757455498">மற்றொரு வழங்குநரைத் தேர்வுசெய்க</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 6b6814b..452b223d 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">మీ పాస్‌వర్డ్‌లు Google Password Managerలో సేవ్ కావడానికి ముందు, మీ పరికరంలో ఎన్‌క్రిప్ట్ చేయబడ్డాయి</translation>
 <translation id="2249635629516220541">మీకు యాడ్‌లను చూపడం కోసం సైట్‌లు ఉపయోగించిన సమాచారాన్ని అనుకూలంగా మార్చవచ్చు</translation>
 <translation id="2259659629660284697">పాస్‌వర్డ్‌లను ఎగుమతి చేయండి…</translation>
+<translation id="2276231040576210443">ఏది సింక్ చేయాలనే దాన్ని, మీరు ఎప్పుడైనా <ph name="BEGIN_LINK1" />సెట్టింగ్‌లలో<ph name="END_LINK1" /> ఎంచుకోవచ్చు. Google మీ హిస్టరీ ఆధారంగా Search, ఇతర సర్వీస్‌లను వ్యక్తిగతీకరించవచ్చు.</translation>
 <translation id="2276696007612801991">మీ పాస్‌వర్డ్‌లను చెక్ చేయడానికి Google ఖాతాకు సైన్ ఇన్ చేయండి</translation>
 <translation id="2278052315791335171">ఈ పాస్‌వర్డ్‌ను తొలగించడం వలన <ph name="SITE" />లో మీ ఖాతా తొలగించబడదు</translation>
 <translation id="2286841657746966508">బిల్లింగ్ అడ్రస్‌</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">ఆపరేటింగ్ సిస్టమ్</translation>
 <translation id="7605594153474022051">సింక్‌ పని చేయడం లేదు</translation>
 <translation id="7612619742409846846">Googleకు ఇలా సైన్ ఇన్ చేశారు</translation>
+<translation id="7612989789287281429">మిమ్మల్ని సైన్ ఇన్ చేస్తోంది…</translation>
 <translation id="7616551326690708776">మీ హైలైట్ కోసం ఒక టెంప్లేట్‌ను ఎంచుకోండి.</translation>
 <translation id="7619072057915878432">నెట్‌వర్క్ వైఫల్యాల కారణంగా <ph name="FILE_NAME" /> డౌన్‌లోడ్ విఫలమైంది.</translation>
 <translation id="7626032353295482388">Chromeకు స్వాగతం</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">ఏదో తప్పు జరిగింది.</translation>
 <translation id="8972098258593396643">డిఫాల్ట్ ఫోల్డర్‌కు డౌన్‌లోడ్ చేయాలా?</translation>
 <translation id="8987641763863173640">వీడియో ప్రివ్యూ సెట్టింగ్‌లను మేనేజ్ చేస్తుంది</translation>
+<translation id="8987736167266086032">మీరు ఎక్కడ ఆపుతారో అక్కడి నుండే కొనసాగించవచ్చు</translation>
 <translation id="8989968390305463310">మీ బ్రౌజింగ్ హిస్టరీ మీరు చూసే యాడ్‌లను, దిగువున అంచనా వేసిన ఆసక్తులపై ప్రభావం చూపుతుంది. మీ గోప్యతను రక్షించడానికి, Chrome ప్రతి నెలా దశల వారీగా మీ ఆసక్తులను ఆటోమేటిక్‌గా తొలగిస్తుంది. ఆసక్తులు మీరు తీసివేస్తే మినహా, రిఫ్రెష్ అవుతూనే ఉంటాయి.</translation>
 <translation id="8993760627012879038">కొత్త ట్యాబ్‌ను అజ్ఞాత మోడ్‌లో తెరవండి</translation>
 <translation id="8996847606757455498">మరొక ప్రొవైడర్‌ను ఎంచుకోండి</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 6d2e8f0..ab71085 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">ระบบจะเข้ารหัสให้แก่รหัสผ่านในอุปกรณ์ก่อนบันทึกลงในเครื่องมือจัดการรหัสผ่านบน Google</translation>
 <translation id="2249635629516220541">ปรับแต่งข้อมูลที่เว็บไซต์ใช้เพื่อแสดงโฆษณาแก่คุณ</translation>
 <translation id="2259659629660284697">ส่งออกรหัสผ่าน…</translation>
+<translation id="2276231040576210443">คุณเลือกสิ่งที่ต้องการซิงค์ได้เสมอใน<ph name="BEGIN_LINK1" />การตั้งค่า<ph name="END_LINK1" /> Google อาจปรับเปลี่ยน Search และบริการอื่นๆ ให้เหมาะกับคุณโดยอิงจากประวัติการเข้าชม</translation>
 <translation id="2276696007612801991">ลงชื่อเข้าใช้บัญชี Google เพื่อตรวจสอบรหัสผ่าน</translation>
 <translation id="2278052315791335171">การลบรหัสผ่านนี้จะไม่ลบบัญชีของคุณใน <ph name="SITE" /></translation>
 <translation id="2286841657746966508">ที่อยู่สำหรับเรียกเก็บเงิน</translation>
@@ -1494,6 +1495,7 @@
 <translation id="8970887620466824814">มีบางอย่างผิดพลาด</translation>
 <translation id="8972098258593396643">ดาวน์โหลดลงโฟลเดอร์เริ่มต้นไหม</translation>
 <translation id="8987641763863173640">จัดการการตั้งค่าตัวอย่างวิดีโอ</translation>
+<translation id="8987736167266086032">ทำสิ่งที่ค้างไว้ต่อจากคราวที่แล้ว</translation>
 <translation id="8989968390305463310">ประวัติการท่องเว็บส่งผลต่อโฆษณาที่คุณเห็นและความสนใจที่ระบบคาดคะเนไว้ดังที่แสดงอยู่ด้านล่างนี้ Chrome ลบความสนใจโดยอัตโนมัติเป็นประจำทุกเดือนเพื่อปกป้องความเป็นส่วนตัวของคุณ ระบบจะรีเฟรชความสนใจหากคุณไม่นำออก</translation>
 <translation id="8993760627012879038">เปิดแท็บใหม่ในโหมดไม่ระบุตัวตน</translation>
 <translation id="8996847606757455498">เลือกผู้ให้บริการอื่น</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 de75392..654eba85 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Şifreleriniz Google Şifre Yöneticisi'ne kaydedilmeden önce cihazınızda şifrelenir</translation>
 <translation id="2249635629516220541">Sitelerin size reklam göstermek için kullandığı bilgileri özelleştirin</translation>
 <translation id="2259659629660284697">Şifreleri dışa aktar…</translation>
+<translation id="2276231040576210443">Neyin senkronize edileceğini istediğiniz zaman <ph name="BEGIN_LINK1" />ayarlardan<ph name="END_LINK1" /> seçebilirsiniz. Google, geçmişinize dayalı olarak Arama'yı ve diğer hizmetleri kişiselleştirebilir.</translation>
 <translation id="2276696007612801991">Şifrelerinizi kontrol etmek için Google hesabınızda oturum açın</translation>
 <translation id="2278052315791335171">Bu şifre silindiğinde <ph name="SITE" /> üzerindeki hesabınız silinmez</translation>
 <translation id="2286841657746966508">Fatura adresi</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Bir hata oluştu.</translation>
 <translation id="8972098258593396643">Varsayılan klasöre indirilsin mi?</translation>
 <translation id="8987641763863173640">Video Önizleme Ayarlarını Yönetin</translation>
+<translation id="8987736167266086032">Kaldığınız yerden devam edin</translation>
 <translation id="8989968390305463310">Tarama geçmişiniz gördüğünüz reklamları ve aşağıdaki şekilde tahmin edilen ilgi alanlarınızı etkiler. Chrome, gizliliğinizi korumak için ilgi alanlarınızı her ay sürekli olarak siler. Silme işlemi otomatik olarak gerçekleştirilir. Kaldırmadığınız sürece ilgi alanlarınız yenilenmeye devam edebilir.</translation>
 <translation id="8993760627012879038">Gizli modda yeni bir sekme açar</translation>
 <translation id="8996847606757455498">Başka bir sağlayıcı seçin:</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 5b68de2..86debcfa 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Ваші паролі шифруються на пристрої, а потім зберігаються в Менеджері паролів Google</translation>
 <translation id="2249635629516220541">Керуйте інформацією, яку сайти використовують для показу реклами</translation>
 <translation id="2259659629660284697">Експортувати паролі…</translation>
+<translation id="2276231040576210443">Ви можете будь-коли вибрати дані для синхронізації в <ph name="BEGIN_LINK1" />налаштуваннях<ph name="END_LINK1" />. Google може персоналізувати Пошук та інші сервіси на основі вашої історії.</translation>
 <translation id="2276696007612801991">Щоб перевірити паролі, увійдіть в обліковий запис Google</translation>
 <translation id="2278052315791335171">Якщо видалити цей пароль, ваш обліковий запис на сайті <ph name="SITE" /> залишиться</translation>
 <translation id="2286841657746966508">Розрахункова адреса</translation>
@@ -1242,6 +1243,7 @@
 <translation id="7682724950699840886">Порада. Переконайтеся, що на пристрої достатньо вільного місця та спробуйте експортувати дані знову.</translation>
 <translation id="7686086654630106285">Докладніше про рекламу, пропоновану сайтами</translation>
 <translation id="768618399695552958">Деякі сторінки, які ви відвідуєте, попередньо завантажені. Сторінки можуть попередньо завантажуватися через сервери Google, коли вони зв’язані через сайт Google.</translation>
+<translation id="7691043218961417207">Ознайомтеся з контентом, на який можна підписатися</translation>
 <translation id="7698359219371678927">Створити електронну адресу в додатку <ph name="APP_NAME" /></translation>
 <translation id="7707922173985738739">Використовувати мобільне передавання даних</translation>
 <translation id="7709094866268987903">Тут з’являтимуться вилучені вами інтереси</translation>
@@ -1492,6 +1494,7 @@
 <translation id="8970887620466824814">Сталася помилка.</translation>
 <translation id="8972098258593396643">Завантажити в папку за умовчанням?</translation>
 <translation id="8987641763863173640">Керуйте налаштуваннями попереднього перегляду відео</translation>
+<translation id="8987736167266086032">Повертайтеся на останні відкриті сторінки</translation>
 <translation id="8989968390305463310">Ваша історія веб-перегляду впливає на оголошення, що вам показуються, а також на наведений нижче список інтересів. З міркувань конфіденційності Chrome щомісяця автоматично видаляє ваші інтереси. Інтереси можуть оновлюватись, якщо ви не вилучите їх.</translation>
 <translation id="8993760627012879038">Відкрити нове вікно в режимі анонімного перегляду</translation>
 <translation id="8996847606757455498">Вибрати іншого постачальника</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 da896927..dff6618 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">‏آپ کے پاس ورڈز Google پاس ورڈ مینیجر میں محفوظ ہونے سے پہلے آپ کے آلے پر مرموز ہو جاتے ہیں</translation>
 <translation id="2249635629516220541">سائٹس کے ذریعے استعمال کردہ معلومات کو حسب ضرورت بنائیں تاکہ آپ کو اشتہارات دکھایا جا سکے</translation>
 <translation id="2259659629660284697">پاسورڈز برآمد کریں…</translation>
+<translation id="2276231040576210443">‏آپ کسی بھی وقت اس بات کا انتخاب کر سکتے ہیں کہ <ph name="BEGIN_LINK1" />ترتیبات<ph name="END_LINK1" /> میں کس چیز کی مطابقت پذیری کرنی ہے۔ Google آپ کی سرگزشت کی بنیاد پر تلاش اور دیگر سروسز کو ذاتی نوعیت کا بنا سکتا ہے۔</translation>
 <translation id="2276696007612801991">‏اپنے پاس ورڈز چیک کرنے کے لئے اپنے Google اکاؤنٹ میں سائن ان کریں</translation>
 <translation id="2278052315791335171">اس پاس ورڈ کو حذف کرنے سے آپ کا اکاؤنٹ <ph name="SITE" /> سے حذف نہیں ہوگا</translation>
 <translation id="2286841657746966508">بلنگ پتہ</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">کچھ غلط ہو گیا۔</translation>
 <translation id="8972098258593396643">ڈیفالٹ فولڈر میں ڈاؤن لوڈ کریں؟</translation>
 <translation id="8987641763863173640">ویڈیو کے پیش منظر کی ترتیبات کا نظم کریں</translation>
+<translation id="8987736167266086032">جہاں آپ نے چھوڑا وہیں سے شروع کریں</translation>
 <translation id="8989968390305463310">‏آپ کی براؤزنگ کی سرگزشت آپ کے دیکھے جانے والے اشتہارات اور ذیل میں لگائے گئے اندازے کے مطابق دلچسپیوں کو متاثر کرتی ہے۔ آپ کی رازداری کے تحفظ کے لیے، Chrome آپ کی دلچسپیوں کو ہر ماہ رولنگ کے تحت خودکار طور پر حذف کرتا ہے۔ دلچسپیاں آپ کے ہٹانے تک ریفریش ہو سکتی ہیں۔</translation>
 <translation id="8993760627012879038">پوشیدگی وضع میں ایک نیا ٹیب کھولیں</translation>
 <translation id="8996847606757455498">کسی دوسرے فراہم کنندہ کا انتخاب کریں</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 282a552c..1ccf21d 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Parollaringiz Google Parollar menejeriga saqlanishidan oldin qurilmangizda shifrlangan</translation>
 <translation id="2249635629516220541">Saytlar reklamalarni koʻrsatish uchun foydalanadigan maʼlumotlarni boshqaring</translation>
 <translation id="2259659629660284697">Parollarni eksport qilish…</translation>
+<translation id="2276231040576210443">Nimani sinxronlashni istalgan vaqtda <ph name="BEGIN_LINK1" />sozlamalar<ph name="END_LINK1" /> orqali tanlash mumkin. Brauzer tarixi asosida Google Qidiruv va boshqa xizmatlarni moslashtirishi mumkin.</translation>
 <translation id="2276696007612801991">Parollaringizni tekshirish uchun Google hisobingizga kiring</translation>
 <translation id="2278052315791335171">Bu parol olib tashlangani bilan <ph name="SITE" /> hisobingiz oʻchib ketmaydi</translation>
 <translation id="2286841657746966508">To‘lov manzili</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Operatsion tizim</translation>
 <translation id="7605594153474022051">Sinxronizatsiya ishlamayapti</translation>
 <translation id="7612619742409846846">Siz bu hisobdan kirgansiz</translation>
+<translation id="7612989789287281429">Hisobingizga kirmoqdasiz…</translation>
 <translation id="7616551326690708776">Belgilsh uchun andoza tanlang.</translation>
 <translation id="7619072057915878432">Tarmoqdagi nosozliklar tufayli “<ph name="FILE_NAME" />” fayli yuklab olinmadi.</translation>
 <translation id="7626032353295482388">Chrome brauzeriga xush kelibsiz!</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Xatolik yuz berdi.</translation>
 <translation id="8972098258593396643">Yuklanma standart jildga saqlansinmi?</translation>
 <translation id="8987641763863173640">Video bilan tanishish sozlamalarini boshqarish</translation>
+<translation id="8987736167266086032">Ishni kelgan joyidan davom ettiring</translation>
 <translation id="8989968390305463310">Ochgan saytlaringiz tarixi chiqadigan reklama va quyidagi qiziqishlaringizga taʼsir qiladi. Maxfiylikni himoya qilish maqsadida Chrome har oyda qiziqishlaringizni avtomatik oʻchiradi. Qiziqishlar ularni olib tashlamaguningizga qadar yangilanishi mumkin.</translation>
 <translation id="8993760627012879038">Yangi varaqni inkognito rejimida ochish</translation>
 <translation id="8996847606757455498">Boshqa provayderni tanlang</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 fcdfc88..12f7ddbe 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Mật khẩu của bạn được mã hoá trên thiết bị trước khi lưu vào Trình quản lý mật khẩu của Google.</translation>
 <translation id="2249635629516220541">Tuỳ chỉnh thông tin mà các trang web sử dụng để hiện quảng cáo cho bạn</translation>
 <translation id="2259659629660284697">Xuất mật khẩu...</translation>
+<translation id="2276231040576210443">Bạn luôn có thể chọn nội dung cần đồng bộ hoá trong phần <ph name="BEGIN_LINK1" />cài đặt<ph name="END_LINK1" />. Google có thể cá nhân hoá dịch vụ Tìm kiếm và các dịch vụ khác dựa trên nhật ký của bạn.</translation>
 <translation id="2276696007612801991">Đăng nhập vào Tài khoản Google của bạn để kiểm tra mật khẩu</translation>
 <translation id="2278052315791335171">Thao tác xóa mật khẩu này sẽ không xóa tài khoản của bạn trên <ph name="SITE" /></translation>
 <translation id="2286841657746966508">Địa chỉ thanh toán</translation>
@@ -1224,6 +1225,7 @@
 <translation id="7596558890252710462">Hệ điều hành</translation>
 <translation id="7605594153474022051">Đồng bộ hóa không hoạt động</translation>
 <translation id="7612619742409846846">Đã đăng nhập vào Google bằng</translation>
+<translation id="7612989789287281429">Đang đăng nhập…</translation>
 <translation id="7616551326690708776">Hãy chọn một mẫu cho nội dung nổi bật của bạn.</translation>
 <translation id="7619072057915878432">Tải xuống không thành công <ph name="FILE_NAME" /> do lỗi mạng.</translation>
 <translation id="7626032353295482388">Chào mừng bạn đến với Chrome</translation>
@@ -1493,6 +1495,7 @@
 <translation id="8970887620466824814">Đã xảy ra lỗi.</translation>
 <translation id="8972098258593396643">Tải xuống thư mục mặc định?</translation>
 <translation id="8987641763863173640">Quản lý chế độ cài đặt Xem trước video</translation>
+<translation id="8987736167266086032">Bắt đầu từ nơi bạn đã dừng lại</translation>
 <translation id="8989968390305463310">Nhật ký duyệt web của bạn ảnh hưởng tới quảng cáo mà bạn thấy cũng như mối quan tâm được ước đoán như dưới đây. Để bảo vệ quyền riêng tư của bạn, Chrome tự động xoá thông tin về các mối quan tâm của bạn theo chu kỳ luân phiên mỗi tháng. Các mối quan tâm sẽ được làm mới trừ phi bạn xoá chúng.</translation>
 <translation id="8993760627012879038">Mở thẻ mới trong chế độ Ẩn danh</translation>
 <translation id="8996847606757455498">Chọn nhà cung cấp khác</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 253164b..578395d 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">系统会先在设备上对您的密码进行加密,然后再将其保存到 Google 密码管理器中</translation>
 <translation id="2249635629516220541">自定义要让网站使用什么信息向您展示广告</translation>
 <translation id="2259659629660284697">导出密码…</translation>
+<translation id="2276231040576210443">您随时可在<ph name="BEGIN_LINK1" />设置<ph name="END_LINK1" />中选择要同步的内容。Google 可能会根据您的历史记录为您提供个性化的 Google 搜索和其他服务。</translation>
 <translation id="2276696007612801991">您需要先登录 Google 帐号才能检查您的密码</translation>
 <translation id="2278052315791335171">删除此密码不会删除您在 <ph name="SITE" /> 上的帐号</translation>
 <translation id="2286841657746966508">帐单邮寄地址</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">出了点问题。</translation>
 <translation id="8972098258593396643">是否下载到默认文件夹?</translation>
 <translation id="8987641763863173640">管理视频预览设置</translation>
+<translation id="8987736167266086032">从上次停下的地方继续</translation>
 <translation id="8989968390305463310">您的浏览记录会影响您看到的广告以及系统推测出的兴趣(如下所示)。为了保护您的隐私,Chrome 每个月都会按保留时间先后顺序自动删除您的部分兴趣。兴趣能够刷新,除非您将其移除。</translation>
 <translation id="8993760627012879038">在无痕模式下打开新标签页</translation>
 <translation id="8996847606757455498">另选一个提供商</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 884b045..ebb5a484 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">您的密碼會先在裝置上加密,然後才儲存至 Google 密碼管理工具</translation>
 <translation id="2249635629516220541">自訂網站可用來顯示廣告的資料</translation>
 <translation id="2259659629660284697">匯出密碼…</translation>
+<translation id="2276231040576210443">您隨時可在<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />中選擇要同步的資料。Google 可能會根據您的記錄,提供個人化「搜尋」和其他服務。</translation>
 <translation id="2276696007612801991">登入 Google 帳戶以檢查密碼</translation>
 <translation id="2278052315791335171">刪除此密碼不會刪除您在 <ph name="SITE" /> 的帳戶</translation>
 <translation id="2286841657746966508">帳單地址</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">發生錯誤。</translation>
 <translation id="8972098258593396643">要下載至預設資料夾嗎?</translation>
 <translation id="8987641763863173640">管理影片預覽設定</translation>
+<translation id="8987736167266086032">從上次離開的地方繼續瀏覽</translation>
 <translation id="8989968390305463310">您的瀏覽記錄會影響系統顯示的廣告,以及下列由系統推測的興趣。為保障您的私隱,Chrome 每個月都會自動刪除您的興趣。除非您移除興趣,否則系統會重新整理興趣。</translation>
 <translation id="8993760627012879038">在無痕模式中開啟新分頁</translation>
 <translation id="8996847606757455498">選擇其他供應商</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 4fda875..4b28701 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
@@ -227,6 +227,7 @@
 <translation id="2248941474044011069">系統會先在裝置上將密碼加密,再儲存至 Google 密碼管理員</translation>
 <translation id="2249635629516220541">自訂網站可用來顯示廣告的資訊</translation>
 <translation id="2259659629660284697">匯出密碼…</translation>
+<translation id="2276231040576210443">你隨時可以前往<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />選擇要同步處理的資料。Google 可能會根據你的歷史記錄在 Google 搜尋等其他服務中提供個人化體驗。</translation>
 <translation id="2276696007612801991">登入 Google 帳戶以檢查你的密碼</translation>
 <translation id="2278052315791335171">刪除這組密碼並不會刪除你的 <ph name="SITE" /> 帳戶</translation>
 <translation id="2286841657746966508">帳單地址</translation>
@@ -1492,6 +1493,7 @@
 <translation id="8970887620466824814">發生錯誤。</translation>
 <translation id="8972098258593396643">要下載至預設資料夾嗎?</translation>
 <translation id="8987641763863173640">管理影片預覽設定</translation>
+<translation id="8987736167266086032">接續上次進度</translation>
 <translation id="8989968390305463310">你的瀏覽記錄會影響你所看到的廣告,以及系統推測的下列興趣喜好。為保護個人隱私,Chrome 每個月都會自動刪除你的興趣喜好。系統會重新整理這項資訊,除非你自行予以移除。</translation>
 <translation id="8993760627012879038">在無痕模式下開啟新分頁</translation>
 <translation id="8996847606757455498">選擇其他供應商</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 4d82cdf..329732d6 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
@@ -226,6 +226,7 @@
 <translation id="2248941474044011069">Amaphasiwedi akho abethelwa kudivayisi yakho ngaphambi kokuba alondolozwe ku-Google Password Manager</translation>
 <translation id="2249635629516220541">Enza ngokwezifiso ulwazi olusetshenziswa amasayithi ukukubonisa izikhangiso</translation>
 <translation id="2259659629660284697">Thumela amaphasiwedi...</translation>
+<translation id="2276231040576210443">Ungahlala ukhetha ukuthi yini ezovunyelaniswa <ph name="BEGIN_LINK1" />kumasethingi<ph name="END_LINK1" />. I-Google ingase yenze Usesho namanye amasevisi kube ngokwakho ngokususelwe emlandweni wakho.</translation>
 <translation id="2276696007612801991">Ngena ngemvume ku-akhawunti yakho ye-Google uhlole amaphasiwedi akho</translation>
 <translation id="2278052315791335171">Ukususa le phasiwedi ngeke kususe i-akhawunti yakho ku-<ph name="SITE" /></translation>
 <translation id="2286841657746966508">Ikheli lokukhokha</translation>
@@ -1493,6 +1494,7 @@
 <translation id="8970887620466824814">Okuthile akuhambanga kahle.</translation>
 <translation id="8972098258593396643">Landela kufonda yokuzenzakalelayo?</translation>
 <translation id="8987641763863173640">Phatha Amasethingi Wokuhlola Kuqala Ividiyo</translation>
+<translation id="8987736167266086032">Qalisa lapho ushiye khona</translation>
 <translation id="8989968390305463310">Umlando wakho wokubhrawuza uthinta izikhangiso ozibonayo kanye nezinto ozishisakalelayo njengoba kulinganiselwa ngezansi. Ukuze ivikele ubumfihlo bakho, i-Chrome isula ngokuzenzakalelayo izintshisekelo zakho njalo ngenyanga. Izintshisekelo zingavuseleleka ngaphandle kwalapho uma uzisusa.</translation>
 <translation id="8993760627012879038">Vula kuthebhu entsha kumodi ye-Incognito</translation>
 <translation id="8996847606757455498">Khetha omunye umhlinzeki</translation>
diff --git a/chrome/browser/ui/ash/clipboard_history_browsertest.cc b/chrome/browser/ui/ash/clipboard_history_browsertest.cc
index 6c5b609..a1f4e6b 100644
--- a/chrome/browser/ui/ash/clipboard_history_browsertest.cc
+++ b/chrome/browser/ui/ash/clipboard_history_browsertest.cc
@@ -595,6 +595,8 @@
 // Verifies item deletion through the mouse click at the delete button.
 IN_PROC_BROWSER_TEST_F(ClipboardHistoryBrowserTest,
                        DeleteItemByClickAtDeleteButton) {
+  base::HistogramTester histogram_tester;
+
   // Write some things to the clipboard.
   SetClipboardText("A");
   SetClipboardText("B");
@@ -612,6 +614,9 @@
   EXPECT_TRUE(VerifyClipboardTextData({"B"}));
   EXPECT_TRUE(VerifyClipboardBufferAndHistoryInSync());
 
+  histogram_tester.ExpectTotalCount(
+      "Ash.ClipboardHistory.ContextMenu.DisplayFormatDeleted", 1);
+
   // Delete the last menu item. Verify that the menu is closed.
   {
     ScopedClipboardHistoryListUpdateWaiter scoped_waiter;
@@ -620,6 +625,9 @@
   EXPECT_FALSE(GetClipboardHistoryController()->IsMenuShowing());
   EXPECT_TRUE(VerifyClipboardBufferAndHistoryInSync());
 
+  histogram_tester.ExpectTotalCount(
+      "Ash.ClipboardHistory.ContextMenu.DisplayFormatDeleted", 2);
+
   // No menu shows because of the empty clipboard history.
   ShowContextMenuViaAccelerator(/*wait_for_selection=*/false);
   EXPECT_FALSE(GetClipboardHistoryController()->IsMenuShowing());
@@ -1393,6 +1401,8 @@
   EXPECT_FALSE(GetClipboardHistoryController()->IsMenuShowing());
   WaitForOperationConfirmed(/*success_expected=*/true);
   EXPECT_EQ("C", base::UTF16ToUTF8(textfield_->GetText()));
+  histogram_tester.ExpectTotalCount(
+      "Ash.ClipboardHistory.ContextMenu.DisplayFormatPasted", 2);
 
   textfield_->SetText(std::u16string());
   EXPECT_TRUE(textfield_->GetText().empty());
@@ -1407,6 +1417,8 @@
   EXPECT_FALSE(GetClipboardHistoryController()->IsMenuShowing());
   WaitForOperationConfirmed(/*success_expected=*/true);
   EXPECT_EQ("A", base::UTF16ToUTF8(textfield_->GetText()));
+  histogram_tester.ExpectTotalCount(
+      "Ash.ClipboardHistory.ContextMenu.DisplayFormatPasted", 3);
 
   textfield_->SetText(std::u16string());
 
@@ -1422,6 +1434,8 @@
   EXPECT_FALSE(GetClipboardHistoryController()->IsMenuShowing());
   WaitForOperationConfirmed(/*success_expected=*/true);
   EXPECT_EQ("A", base::UTF16ToUTF8(textfield_->GetText()));
+  histogram_tester.ExpectTotalCount(
+      "Ash.ClipboardHistory.ContextMenu.DisplayFormatPasted", 4);
 }
 
 IN_PROC_BROWSER_TEST_F(ClipboardHistoryTextfieldBrowserTest,
diff --git a/chrome/browser/ui/extensions/extension_enable_flow.cc b/chrome/browser/ui/extensions/extension_enable_flow.cc
index e6c1b3e..63acded 100644
--- a/chrome/browser/ui/extensions/extension_enable_flow.cc
+++ b/chrome/browser/ui/extensions/extension_enable_flow.cc
@@ -107,15 +107,12 @@
           *extension, profile_)) {
     // Either ask for parent permission or notify the child that their parent
     // has disabled this action.
-    auto parent_permission_callback =
-        base::BindOnce(&ExtensionEnableFlow::OnParentPermissionDialogDone,
-                       weak_ptr_factory_.GetWeakPtr());
-    auto error_callback =
-        base::BindOnce(&ExtensionEnableFlow::OnBlockedByParentDialogDone,
+    auto extension_approval_callback =
+        base::BindOnce(&ExtensionEnableFlow::OnExtensionApprovalDone,
                        weak_ptr_factory_.GetWeakPtr());
     supervised_user_extensions_delegate->PromptForParentPermissionOrShowError(
         *extension, profile_, parent_contents_,
-        std::move(parent_permission_callback), std::move(error_callback));
+        std::move(extension_approval_callback));
     return;
   }
 #endif  // BUILDFLAG(ENABLE_SUPERVISED_USERS)
@@ -168,31 +165,28 @@
 }
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
-void ExtensionEnableFlow::OnParentPermissionDialogDone(
-    extensions::SupervisedUserExtensionsDelegate::ParentPermissionDialogResult
+void ExtensionEnableFlow::OnExtensionApprovalDone(
+    extensions::SupervisedUserExtensionsDelegate::ExtensionApprovalResult
         result) {
   switch (result) {
-    case extensions::SupervisedUserExtensionsDelegate::
-        ParentPermissionDialogResult::kParentPermissionReceived:
+    case extensions::SupervisedUserExtensionsDelegate::ExtensionApprovalResult::
+        kApproved:
       EnableExtension();
       break;
-    case extensions::SupervisedUserExtensionsDelegate::
-        ParentPermissionDialogResult::kParentPermissionCanceled:
+    case extensions::SupervisedUserExtensionsDelegate::ExtensionApprovalResult::
+        kCanceled:
       delegate_->ExtensionEnableFlowAborted(
           /*user_initiated=*/true);  // |delegate_| may delete us.
       break;
-    case extensions::SupervisedUserExtensionsDelegate::
-        ParentPermissionDialogResult::kParentPermissionFailed:
+    case extensions::SupervisedUserExtensionsDelegate::ExtensionApprovalResult::
+        kFailed:
+    case extensions::SupervisedUserExtensionsDelegate::ExtensionApprovalResult::
+        kBlocked:
       delegate_->ExtensionEnableFlowAborted(
           /*user_initiated=*/false);  // |delegate_| may delete us.
       break;
   }
 }
-
-void ExtensionEnableFlow::OnBlockedByParentDialogDone() {
-  delegate_->ExtensionEnableFlowAborted(
-      /*user_initiated=*/false);  // |delegate_| may delete us.
-}
 #endif  // BUILDFLAG(ENABLE_SUPERVISED_USERS)
 
 void ExtensionEnableFlow::StartObserving() {
diff --git a/chrome/browser/ui/extensions/extension_enable_flow.h b/chrome/browser/ui/extensions/extension_enable_flow.h
index 5ee75ae..d1bd1873 100644
--- a/chrome/browser/ui/extensions/extension_enable_flow.h
+++ b/chrome/browser/ui/extensions/extension_enable_flow.h
@@ -82,14 +82,10 @@
   void CreatePrompt();
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
-  // Called when the user dismisses the Parent Permission Dialog.
-  void OnParentPermissionDialogDone(
-      extensions::SupervisedUserExtensionsDelegate::ParentPermissionDialogResult
+  // Called when the extension approval flow is complete.
+  void OnExtensionApprovalDone(
+      extensions::SupervisedUserExtensionsDelegate::ExtensionApprovalResult
           result);
-
-  // Called when the user dismisses the Extension Install Blocked By Parent
-  // Dialog.
-  void OnBlockedByParentDialogDone();
 #endif  // BUILDFLAG(ENABLE_SUPERVISED_USERS)
 
   // Starts/stops observing extension load notifications.
diff --git a/chrome/browser/ui/login/login_handler_browsertest.cc b/chrome/browser/ui/login/login_handler_browsertest.cc
index 39f35dc4..1f0d31c 100644
--- a/chrome/browser/ui/login/login_handler_browsertest.cc
+++ b/chrome/browser/ui/login/login_handler_browsertest.cc
@@ -53,6 +53,7 @@
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/embedded_test_server/http_response.h"
 #include "services/network/public/cpp/features.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/ui/profile_picker.h b/chrome/browser/ui/profile_picker.h
index 50a8c7f..fde29a7 100644
--- a/chrome/browser/ui/profile_picker.h
+++ b/chrome/browser/ui/profile_picker.h
@@ -27,18 +27,23 @@
 
 class ProfilePicker {
  public:
+  // This is used for logging, so do not remove or reorder existing entries.
   enum class FirstRunExitStatus {
     // The user completed the FRE and is continuing to launch the browser.
     kCompleted = 0,
 
-    // The user finished the mandatory FRE steps but abandoned their task
-    // (closed the browser app).
-    kQuitAtEnd = 1,
-
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
     // The user exited the FRE before going through the mandatory steps.
-    kQuitEarly = 2,
+    kQuitEarly = 1,
 #endif
+
+    // The user finished the mandatory FRE steps but abandoned their task
+    // (closed the browser app).
+    kQuitAtEnd = 2,
+
+    // Add any new values above this one, and update kMaxValue to the highest
+    // enumerator value.
+    kMaxValue = kQuitAtEnd
   };
   using FirstRunExitedCallback =
       base::OnceCallback<void(FirstRunExitStatus status)>;
diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/startup/first_run_service.cc
index f143801..50c3a43b 100644
--- a/chrome/browser/ui/startup/first_run_service.cc
+++ b/chrome/browser/ui/startup/first_run_service.cc
@@ -187,6 +187,8 @@
     SetFirstRunFinished(FinishedReason::kFinishedFlow);
   }
 
+  base::UmaHistogramEnumeration("ProfilePicker.FirstRun.ExitStatus", status);
+
   bool proceed = status == ProfilePicker::FirstRunExitStatus::kCompleted;
 #if BUILDFLAG(ENABLE_DICE_SUPPORT)
   proceed |= kForYouFreCloseShouldProceed.Get();
diff --git a/chrome/browser/ui/startup/first_run_service_browsertest.cc b/chrome/browser/ui/startup/first_run_service_browsertest.cc
index 535b520..f102e787 100644
--- a/chrome/browser/ui/startup/first_run_service_browsertest.cc
+++ b/chrome/browser/ui/startup/first_run_service_browsertest.cc
@@ -30,18 +30,22 @@
 #include "chrome/browser/ui/profile_ui_test_utils.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
+#include "chrome/common/webui_url_constants.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "components/policy/core/common/mock_configuration_policy_provider.h"
 #include "components/policy/core/common/policy_namespace.h"
 #include "components/policy/core/common/policy_service.h"
 #include "components/policy/policy_constants.h"
 #include "components/prefs/pref_service.h"
+#include "components/signin/public/base/signin_metrics.h"
 #include "components/signin/public/identity_manager/identity_manager.h"
 #include "components/signin/public/identity_manager/identity_test_environment.h"
 #include "components/signin/public/identity_manager/primary_account_mutator.h"
+#include "content/public/browser/web_contents.h"
 #include "content/public/test/browser_test.h"
 #include "google_apis/gaia/core_account_id.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "ui/views/controls/webview/webview.h"
 
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
 #include "chrome/browser/lacros/device_settings_lacros.h"
@@ -213,6 +217,17 @@
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
   histogram_tester.ExpectTotalCount(
       "Profile.LacrosPrimaryProfileFirstRunOutcome", 0);
+  histogram_tester.ExpectUniqueSample(
+      "ProfilePicker.FirstRun.ExitStatus",
+      ProfilePicker::FirstRunExitStatus::kQuitEarly, 1);
+#elif BUILDFLAG(ENABLE_DICE_SUPPORT)
+  histogram_tester.ExpectUniqueSample(
+      "Signin.SignIn.Offered",
+      signin_metrics::AccessPoint::ACCESS_POINT_FOR_YOU_FRE, 1);
+  histogram_tester.ExpectTotalCount("Signin.SignIn.Started", 0);
+  histogram_tester.ExpectUniqueSample(
+      "ProfilePicker.FirstRun.ExitStatus",
+      ProfilePicker::FirstRunExitStatus::kQuitAtEnd, 1);
 #endif
 }
 
@@ -325,6 +340,30 @@
 }
 
 #if BUILDFLAG(ENABLE_DICE_SUPPORT)
+
+IN_PROC_BROWSER_TEST_F(FirstRunServiceBrowserTest, CompletedOnIntro) {
+  base::HistogramTester histogram_tester;
+  base::RunLoop run_loop;
+
+  fre_service()->OpenFirstRunIfNeeded(
+      FirstRunService::EntryPoint::kOther,
+      ExpectProceed(true).Then(run_loop.QuitClosure()));
+
+  profiles::testing::WaitForPickerWidgetCreated();
+  profiles::testing::WaitForPickerLoadStop(GURL(chrome::kChromeUIIntroURL));
+
+  content::WebContents* web_contents =
+      ProfilePicker::GetWebViewForTesting()->GetWebContents();
+  web_contents->GetWebUI()->ProcessWebUIMessage(
+      web_contents->GetURL(), "continueWithoutAccount", base::Value::List());
+  profiles::testing::WaitForPickerClosed();
+  run_loop.Run();
+
+  histogram_tester.ExpectUniqueSample(
+      "ProfilePicker.FirstRun.ExitStatus",
+      ProfilePicker::FirstRunExitStatus::kCompleted, 1);
+}
+
 class FirstRunServiceNotForYouBrowserTest : public FirstRunServiceBrowserTest {
  public:
   FirstRunServiceNotForYouBrowserTest() {
@@ -482,6 +521,7 @@
 };
 
 IN_PROC_BROWSER_TEST_P(FirstRunServiceFeatureParamsBrowserTest, CloseProceeds) {
+  base::HistogramTester histogram_tester;
   base::RunLoop run_loop;
 
   EXPECT_TRUE(fre_service()->ShouldOpenFirstRun());
@@ -497,6 +537,11 @@
 
   EXPECT_TRUE(GetFirstRunFinishedPrefValue());
   EXPECT_FALSE(fre_service()->ShouldOpenFirstRun());
+
+  // We log `QuitAtEnd`, whether proceed is overridden or not.
+  histogram_tester.ExpectUniqueSample(
+      "ProfilePicker.FirstRun.ExitStatus",
+      ProfilePicker::FirstRunExitStatus::kQuitAtEnd, 1);
 }
 
 INSTANTIATE_TEST_SUITE_P(,
diff --git a/chrome/browser/ui/views/autofill/payments/local_card_migration_dialog_view.h b/chrome/browser/ui/views/autofill/payments/local_card_migration_dialog_view.h
index 37ca5b52..f89047a 100644
--- a/chrome/browser/ui/views/autofill/payments/local_card_migration_dialog_view.h
+++ b/chrome/browser/ui/views/autofill/payments/local_card_migration_dialog_view.h
@@ -63,8 +63,7 @@
 
   // The view containing a list of cards. It is the content of the scroll bar.
   // Owned by the LocalCardMigrationOfferView.
-  // DanglingUntriaged because it is assigned a DanglingUntriaged pointer.
-  raw_ptr<views::View, DanglingUntriaged> card_list_view_;
+  raw_ptr<views::View> card_list_view_;
 };
 
 }  // namespace autofill
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_main_page_view.h b/chrome/browser/ui/views/extensions/extensions_menu_main_page_view.h
index 3e8e900..9b1b6d8 100644
--- a/chrome/browser/ui/views/extensions/extensions_menu_main_page_view.h
+++ b/chrome/browser/ui/views/extensions/extensions_menu_main_page_view.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/raw_ptr_exclusion.h"
 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
-#include "chrome/browser/ui/views/extensions/extensions_menu_page_view.h"
+#include "ui/views/view.h"
 
 namespace content {
 class WebContents;
@@ -25,7 +25,7 @@
 class ExtensionActionViewController;
 
 // The main view of the extensions menu.
-class ExtensionsMenuMainPageView : public ExtensionsMenuPageView {
+class ExtensionsMenuMainPageView : public views::View {
  public:
   explicit ExtensionsMenuMainPageView(
       Browser* browser,
@@ -43,10 +43,10 @@
       bool allow_pinning,
       int index);
 
-  void OnToggleButtonPressed();
+  // Updates the view based on `web_contents`.
+  void Update(content::WebContents* web_contents);
 
-  // ExtensionsMenuPageView:
-  void Update(content::WebContents* web_contents) override;
+  void OnToggleButtonPressed();
 
   // Accessors used by tests:
   // Returns the currently-showing menu items.
@@ -72,9 +72,7 @@
   RAW_PTR_EXCLUSION views::View* menu_items_ = nullptr;
 };
 
-BEGIN_VIEW_BUILDER(/* no export */,
-                   ExtensionsMenuMainPageView,
-                   ExtensionsMenuPageView)
+BEGIN_VIEW_BUILDER(/* no export */, ExtensionsMenuMainPageView, views::View)
 END_VIEW_BUILDER
 
 DEFINE_VIEW_BUILDER(/* no export */, ExtensionsMenuMainPageView)
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_page_view.h b/chrome/browser/ui/views/extensions/extensions_menu_page_view.h
deleted file mode 100644
index c0f6432..0000000
--- a/chrome/browser/ui/views/extensions/extensions_menu_page_view.h
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSIONS_MENU_PAGE_VIEW_H_
-#define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSIONS_MENU_PAGE_VIEW_H_
-
-#include "ui/views/view.h"
-
-namespace content {
-class WebContents;
-}  // namespace content
-
-// An interface for pages in the extensions menu.
-class ExtensionsMenuPageView : public views::View {
- public:
-  // TODO(crbug.com/1390952): Move shared page view construction from "main
-  // page" and "site permissions page".
-
-  // Updates the menu page for `web_contents`.
-  virtual void Update(content::WebContents* web_contents) = 0;
-};
-
-BEGIN_VIEW_BUILDER(/* no export */, ExtensionsMenuPageView, views::View)
-END_VIEW_BUILDER
-
-DEFINE_VIEW_BUILDER(/* no export */, ExtensionsMenuPageView)
-
-#endif  // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSIONS_MENU_PAGE_VIEW_H_
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_site_permissions_page_view.cc b/chrome/browser/ui/views/extensions/extensions_menu_site_permissions_page_view.cc
index 79137a3..c065fa5 100644
--- a/chrome/browser/ui/views/extensions/extensions_menu_site_permissions_page_view.cc
+++ b/chrome/browser/ui/views/extensions/extensions_menu_site_permissions_page_view.cc
@@ -111,5 +111,3 @@
 }
 
 // TODO(crbug.com/1390952): Update content once content is added to this page.
-void ExtensionsMenuSitePermissionsPageView::Update(
-    content::WebContents* web_contents) {}
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_site_permissions_page_view.h b/chrome/browser/ui/views/extensions/extensions_menu_site_permissions_page_view.h
index c249c22b..2c51b2e 100644
--- a/chrome/browser/ui/views/extensions/extensions_menu_site_permissions_page_view.h
+++ b/chrome/browser/ui/views/extensions/extensions_menu_site_permissions_page_view.h
@@ -5,8 +5,8 @@
 #ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSIONS_MENU_SITE_PERMISSIONS_PAGE_VIEW_H_
 #define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSIONS_MENU_SITE_PERMISSIONS_PAGE_VIEW_H_
 
-#include "chrome/browser/ui/views/extensions/extensions_menu_page_view.h"
 #include "extensions/common/extension_id.h"
+#include "ui/views/view.h"
 
 namespace ui {
 class ImageModel;
@@ -15,7 +15,7 @@
 class Browser;
 class ExtensionsMenuNavigationHandler;
 
-class ExtensionsMenuSitePermissionsPageView : public ExtensionsMenuPageView {
+class ExtensionsMenuSitePermissionsPageView : public views::View {
  public:
   explicit ExtensionsMenuSitePermissionsPageView(
       Browser* browser,
@@ -29,9 +29,6 @@
       const ExtensionsMenuSitePermissionsPageView&) = delete;
   ~ExtensionsMenuSitePermissionsPageView() override = default;
 
-  // ExtensionsMenuPageView:
-  void Update(content::WebContents* web_contents) override;
-
   // Accessors used by tests:
   extensions::ExtensionId GetExtensionIdForTesting() { return extension_id_; }
 
@@ -41,7 +38,7 @@
 
 BEGIN_VIEW_BUILDER(/* no export */,
                    ExtensionsMenuSitePermissionsPageView,
-                   ExtensionsMenuPageView)
+                   views::View)
 END_VIEW_BUILDER
 
 DEFINE_VIEW_BUILDER(/* no export */, ExtensionsMenuSitePermissionsPageView)
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_test_util.cc b/chrome/browser/ui/views/extensions/extensions_menu_test_util.cc
index c49ffd78..04207caa 100644
--- a/chrome/browser/ui/views/extensions/extensions_menu_test_util.cc
+++ b/chrome/browser/ui/views/extensions/extensions_menu_test_util.cc
@@ -17,7 +17,6 @@
 #include "chrome/browser/ui/views/extensions/extensions_menu_coordinator.h"
 #include "chrome/browser/ui/views/extensions/extensions_menu_item_view.h"
 #include "chrome/browser/ui/views/extensions/extensions_menu_main_page_view.h"
-#include "chrome/browser/ui/views/extensions/extensions_menu_page_view.h"
 #include "chrome/browser/ui/views/extensions/extensions_menu_view.h"
 #include "chrome/browser/ui/views/extensions/extensions_menu_view_controller.h"
 #include "chrome/browser/ui/views/extensions/extensions_toolbar_button.h"
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_view_controller.cc b/chrome/browser/ui/views/extensions/extensions_menu_view_controller.cc
index 9622f1b3..428be5ee 100644
--- a/chrome/browser/ui/views/extensions/extensions_menu_view_controller.cc
+++ b/chrome/browser/ui/views/extensions/extensions_menu_view_controller.cc
@@ -11,7 +11,6 @@
 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
 #include "chrome/browser/ui/views/chrome_layout_provider.h"
 #include "chrome/browser/ui/views/extensions/extensions_menu_main_page_view.h"
-#include "chrome/browser/ui/views/extensions/extensions_menu_page_view.h"
 #include "chrome/browser/ui/views/extensions/extensions_menu_site_permissions_page_view.h"
 #include "content/public/browser/web_contents.h"
 #include "ui/views/bubble/bubble_dialog_delegate_view.h"
@@ -34,6 +33,17 @@
   return sorted_ids;
 }
 
+// Returns the main page, if it is the correct type.
+ExtensionsMenuMainPageView* GetMainPage(views::View* page) {
+  return views::AsViewClass<ExtensionsMenuMainPageView>(page);
+}
+
+// Returns the site permissions page, if it is the correct type.
+ExtensionsMenuSitePermissionsPageView* GetSitePermissionsPage(
+    views::View* page) {
+  return views::AsViewClass<ExtensionsMenuSitePermissionsPageView>(page);
+}
+
 }  // namespace
 
 ExtensionsMenuViewController::ExtensionsMenuViewController(
@@ -96,8 +106,7 @@
 void ExtensionsMenuViewController::TabChangedAt(content::WebContents* contents,
                                                 int index,
                                                 TabChangeType change_type) {
-  DCHECK(current_page_);
-  current_page_->Update(contents);
+  UpdatePage(contents);
 }
 
 void ExtensionsMenuViewController::OnTabStripModelChanged(
@@ -109,7 +118,17 @@
     return;
   }
 
-  current_page_->Update(GetActiveWebContents());
+  UpdatePage(GetActiveWebContents());
+}
+
+void ExtensionsMenuViewController::UpdatePage(
+    content::WebContents* web_contents) {
+  DCHECK(current_page_);
+
+  ExtensionsMenuMainPageView* main_page = GetMainPage(current_page_);
+  if (main_page) {
+    main_page->Update(web_contents);
+  }
 }
 
 // TODO(crbug.com/1390952): Listen for "toolbar pinned actions changed" to
@@ -119,18 +138,17 @@
 ExtensionsMenuMainPageView*
 ExtensionsMenuViewController::GetMainPageViewForTesting() {
   DCHECK(current_page_);
-  return views::AsViewClass<ExtensionsMenuMainPageView>(current_page_);
+  return GetMainPage(current_page_);
 }
 
 ExtensionsMenuSitePermissionsPageView*
 ExtensionsMenuViewController::GetSitePermissionsPageForTesting() {
   DCHECK(current_page_);
-  return views::AsViewClass<ExtensionsMenuSitePermissionsPageView>(
-      current_page_);
+  return GetSitePermissionsPage(current_page_);
 }
 
 void ExtensionsMenuViewController::SwitchToPage(
-    std::unique_ptr<ExtensionsMenuPageView> page) {
+    std::unique_ptr<views::View> page) {
   if (current_page_) {
     bubble_contents_->RemoveChildViewT(current_page_.get());
   }
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_view_controller.h b/chrome/browser/ui/views/extensions/extensions_menu_view_controller.h
index 7c86eaf..8fb1d594 100644
--- a/chrome/browser/ui/views/extensions/extensions_menu_view_controller.h
+++ b/chrome/browser/ui/views/extensions/extensions_menu_view_controller.h
@@ -17,7 +17,6 @@
 
 class Browser;
 class ExtensionsContainer;
-class ExtensionsMenuPageView;
 class ExtensionsMenuMainPageView;
 class ExtensionsMenuSitePermissionsPageView;
 class ToolbarActionsModel;
@@ -59,7 +58,10 @@
 
  private:
   // Switches the current page to `page`.
-  void SwitchToPage(std::unique_ptr<ExtensionsMenuPageView> page);
+  void SwitchToPage(std::unique_ptr<views::View> page);
+
+  // Updates current_page for the given `web_contents`.
+  void UpdatePage(content::WebContents* web_contents);
 
   // Returns the currently active web contents.
   content::WebContents* GetActiveWebContents() const;
@@ -72,7 +74,7 @@
   const raw_ptr<ToolbarActionsModel> toolbar_model_;
 
   // The current page visible in `bubble_contents_`.
-  raw_ptr<ExtensionsMenuPageView> current_page_ = nullptr;
+  raw_ptr<views::View> current_page_ = nullptr;
 };
 
 #endif  // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSIONS_MENU_VIEW_CONTROLLER_H_
diff --git a/chrome/browser/ui/views/page_info/about_this_site_side_panel_coordinator.cc b/chrome/browser/ui/views/page_info/about_this_site_side_panel_coordinator.cc
index 518e1db..a7c39b2 100644
--- a/chrome/browser/ui/views/page_info/about_this_site_side_panel_coordinator.cc
+++ b/chrome/browser/ui/views/page_info/about_this_site_side_panel_coordinator.cc
@@ -5,11 +5,13 @@
 #include "chrome/browser/ui/views/page_info/about_this_site_side_panel_coordinator.h"
 
 #include "base/functional/bind.h"
+#include "chrome/browser/page_info/page_info_features.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/page_info/about_this_site_side_panel.h"
 #include "chrome/browser/ui/views/chrome_layout_provider.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/page_info/about_this_site_side_panel_view.h"
+#include "chrome/browser/ui/views/page_info/page_info_view_factory.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_coordinator.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_entry.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_registry.h"
@@ -78,8 +80,9 @@
     auto entry = std::make_unique<SidePanelEntry>(
         SidePanelEntry::Id::kAboutThisSite,
         l10n_util::GetStringUTF16(IDS_PAGE_INFO_ABOUT_THIS_PAGE_TITLE),
-        ui::ImageModel::FromVectorIcon(views::kInfoIcon, ui::kColorIcon,
-                                       icon_size),
+        ui::ImageModel::FromVectorIcon(
+            PageInfoViewFactory::GetAboutThisSiteVectorIcon(), ui::kColorIcon,
+            icon_size),
         base::BindRepeating(
             &AboutThisSideSidePanelCoordinator::CreateAboutThisSiteWebView,
             base::Unretained(this)),
diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/browser/ui/views/page_info/page_info_main_view.cc
index b2940cf..b833d28b 100644
--- a/chrome/browser/ui/views/page_info/page_info_main_view.cc
+++ b/chrome/browser/ui/views/page_info/page_info_main_view.cc
@@ -608,7 +608,7 @@
                   view->GetWidget()->Close();
                 },
                 this, GURL(info.more_about().url()), info.has_description()),
-            PageInfoViewFactory::GetAboutThisPageIcon(),
+            PageInfoViewFactory::GetAboutThisSiteIcon(),
             l10n_util::GetStringUTF16(IDS_PAGE_INFO_ABOUT_THIS_PAGE_TITLE),
             std::u16string(),
             l10n_util::GetStringUTF16(IDS_PAGE_INFO_ABOUT_THIS_PAGE_TOOLTIP),
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
index 7a24024..eed0d6fc 100644
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
@@ -10,9 +10,11 @@
 #include "base/feature_list.h"
 #include "base/memory/raw_ptr.h"
 #include "base/strings/utf_string_conversions.h"
+#include "build/branding_buildflags.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/app/vector_icons/vector_icons.h"
+#include "chrome/browser/page_info/page_info_features.h"
 #include "chrome/browser/ui/layout_constants.h"
 #include "chrome/browser/ui/page_info/chrome_page_info_ui_delegate.h"
 #include "chrome/browser/ui/view_ids.h"
@@ -440,16 +442,20 @@
 
 // static
 const ui::ImageModel PageInfoViewFactory::GetAboutThisSiteIcon() {
-  return ui::ImageModel::FromVectorIcon(views::kInfoIcon, ui::kColorIcon,
-                                        GetIconSize());
+  return ui::ImageModel::FromVectorIcon(GetAboutThisSiteVectorIcon(),
+                                        ui::kColorIcon, GetIconSize());
 }
 
 // static
-const ui::ImageModel PageInfoViewFactory::GetAboutThisPageIcon() {
-  return ui::ImageModel::FromVectorIcon(views::kInfoIcon, ui::kColorIcon,
-                                        GetIconSize());
-}
+const gfx::VectorIcon& PageInfoViewFactory::GetAboutThisSiteVectorIcon() {
+#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+  if (page_info::IsAboutThisSiteNewIconFeatureEnabled()) {
+    return vector_icons::kPageInsightsIcon;
+  }
+#endif  // !BUILDFLAG(GOOGLE_CHROME_BRANDING)
 
+  return views::kInfoIcon;
+}
 // static
 const ui::ImageModel PageInfoViewFactory::GetHistoryIcon() {
   return ui::ImageModel::FromVectorIcon(vector_icons::kHistoryIcon,
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome/browser/ui/views/page_info/page_info_view_factory.h
index 374dbff..841551a 100644
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.h
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.h
@@ -125,8 +125,8 @@
   // Returns the icon for 'About this site' button.
   static const ui::ImageModel GetAboutThisSiteIcon();
 
-  // Returns the icon for 'About this page' button.
-  static const ui::ImageModel GetAboutThisPageIcon();
+  // Returns a reference to the vector icon for 'About this site' button.
+  static const gfx::VectorIcon& GetAboutThisSiteVectorIcon();
 
   // Returns the icon for the history button.
   static const ui::ImageModel GetHistoryIcon();
diff --git a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
index 8866526..c44660d 100644
--- a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
+++ b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
@@ -79,6 +79,20 @@
              : title;
 }
 
+// Returns a Google color closest to light_mode_color or dark_mode_color based
+// on whether background_color is considered dark mode, with a minimum
+// contrast_ratio between the returned color and the background_color.
+SkColor GetContrastingGoogleColor(SkColor light_mode_color,
+                                  SkColor dark_mode_color,
+                                  SkColor background_color,
+                                  float contrast_ratio) {
+  const SkColor preferred_color = color_utils::IsDark(background_color)
+                                      ? dark_mode_color
+                                      : light_mode_color;
+  return color_utils::PickGoogleColor(preferred_color, background_color,
+                                      contrast_ratio);
+}
+
 }  // namespace
 
 // The header view for the current PaymentHandler UX (see also
@@ -183,7 +197,9 @@
 class PaymentHandlerCloseButton : public views::ImageButton {
  public:
   explicit PaymentHandlerCloseButton(
-      views::Button::PressedCallback pressed_callback)
+      views::Button::PressedCallback pressed_callback,
+      const SkColor enabled_color,
+      const SkColor disabled_color)
       : views::ImageButton(pressed_callback) {
     ConfigureVectorImageButton(this);
     views::InstallCircleHighlightPathGenerator(this);
@@ -192,15 +208,11 @@
     SetFocusBehavior(views::View::FocusBehavior::ALWAYS);
     SetID(static_cast<int>(DialogViewID::CANCEL_BUTTON));
     SetAccessibleName(l10n_util::GetStringUTF16(IDS_PAYMENTS_CLOSE));
-  }
 
-  void OnThemeChanged() override {
-    views::View::OnThemeChanged();
-    const auto* const cp = GetColorProvider();
-    views::SetImageFromVectorIconWithColor(
-        this, vector_icons::kCloseIcon,
-        cp->GetColor(kColorPaymentsRequestBackArrowButtonIcon),
-        cp->GetColor(kColorPaymentsRequestBackArrowButtonIconDisabled));
+    // This view does not set its color using the browser theme color, as this
+    // may differ from the header color, which is based on the web view theme.
+    views::SetImageFromVectorIconWithColor(this, vector_icons::kCloseIcon,
+                                           enabled_color, disabled_color);
   }
 };
 
@@ -242,14 +254,19 @@
   // LoadProgressChanged(), and it can't be done in the constructor since the
   // container doesn't exist yet.
   if (!progress_bar_) {
-    // Add both progress bar and separator to the container, and set the
-    // separator as the initially-visible one.
+    // Add the progress bar to the separator container. The progress bar
+    // colors will be set in PopulateSheetHeaderView.
     progress_bar_ = header_content_separator_container()->AddChildView(
         std::make_unique<views::ProgressBar>(/*preferred_height=*/2));
-    progress_bar_->SetBackgroundColor(SK_ColorTRANSPARENT);
-    progress_bar_->SetVisible(false);
-    separator_ = header_content_separator_container()->AddChildView(
-        std::make_unique<views::Separator>());
+    if (!base::FeatureList::IsEnabled(
+            features::kPaymentHandlerMinimalHeaderUX)) {
+      // Prior to minimal UX, the separator container used a Separator view,
+      // which uses the Chrome theme color which may not match the header color.
+      progress_bar_->SetBackgroundColor(SK_ColorTRANSPARENT);
+      progress_bar_->SetVisible(false);
+      separator_ = header_content_separator_container()->AddChildView(
+          std::make_unique<views::Separator>());
+    }
   }
 
   content_view->SetLayoutManager(std::make_unique<views::FillLayout>());
@@ -380,15 +397,49 @@
   // Turn off autoreadability because the computed foreground color takes
   // contrast into account.
   SkColor background_color = container->background()->get_color();
-  SkColor foreground = color_utils::GetColorWithMaxContrast(background_color);
+  // Get the closest label color to kColorPrimaryForeground, with a minimum
+  // readable contrast ratio.
+  SkColor foreground = GetContrastingGoogleColor(
+      gfx::kGoogleGrey900, gfx::kGoogleGrey200, background_color,
+      color_utils::kMinimumReadableContrastRatio);
   origin_label->SetAutoColorReadabilityEnabled(false);
   origin_label->SetEnabledColor(foreground);
   origin_label->SetBackgroundColor(background_color);
 
+  if (progress_bar_) {
+    // Set the progress bar colors based on the header background color. The
+    // progress bar's background color serves as a separator between the header
+    // and content.
+
+    // Get the closest progress bar color to kColorProgressBar, with a minimum
+    // contrast ratio used for glyphs.
+    const SkColor progress_bar_color = GetContrastingGoogleColor(
+        gfx::kGoogleBlue600, gfx::kGoogleBlue300, background_color,
+        color_utils::kMinimumVisibleContrastRatio);
+
+    // Get the closest separator color to kColorSeparator, with a minimum
+    // contrast ratio of the default light separator contrast on white, which is
+    // less than color_utils::kMinimumVisibleContrastRatio.
+    const SkColor separator_color = GetContrastingGoogleColor(
+        gfx::kGoogleGrey300, gfx::kGoogleGrey800, background_color,
+        color_utils::GetContrastRatio(gfx::kGoogleGrey300, SK_ColorWHITE));
+
+    progress_bar_->SetForegroundColor(progress_bar_color);
+    progress_bar_->SetBackgroundColor(separator_color);
+  }
+
   // Finally, add the close button.
-  container->AddChildView(
-      std::make_unique<PaymentHandlerCloseButton>(base::BindRepeating(
-          &PaymentRequestSheetController::CloseButtonPressed, GetWeakPtr())));
+  // Get the closest icon color to kColorIcon, with a minimum contrast ratio
+  // used for glyphs.
+  const SkColor close_icon_color = GetContrastingGoogleColor(
+      gfx::kGoogleGrey500, gfx::kGoogleGrey700, background_color,
+      color_utils::kMinimumVisibleContrastRatio);
+  const SkColor close_icon_disabled_color = color_utils::AlphaBlend(
+      close_icon_color, background_color, gfx::kDisabledControlAlpha);
+  container->AddChildView(std::make_unique<PaymentHandlerCloseButton>(
+      base::BindRepeating(&PaymentRequestSheetController::CloseButtonPressed,
+                          GetWeakPtr()),
+      close_icon_color, close_icon_disabled_color));
 }
 
 std::unique_ptr<views::View>
@@ -513,10 +564,16 @@
 }
 
 void PaymentHandlerWebFlowViewController::LoadProgressChanged(double progress) {
-  progress_bar_->SetValue(progress);
-  const bool show_progress = progress < 1.0;
-  progress_bar_->SetVisible(show_progress);
-  separator_->SetVisible(!show_progress);
+  if (base::FeatureList::IsEnabled(features::kPaymentHandlerMinimalHeaderUX)) {
+    // The progress bar reflects the load progress until it reaches 1.0, at
+    // which point it's reset to 0 to just show the separator color.
+    progress_bar_->SetValue(progress < 1.0 ? progress : 0);
+  } else {
+    progress_bar_->SetValue(progress);
+    const bool show_progress = progress < 1.0;
+    progress_bar_->SetVisible(show_progress);
+    separator_->SetVisible(!show_progress);
+  }
 }
 
 void PaymentHandlerWebFlowViewController::TitleWasSet(
diff --git a/chrome/browser/ui/views/performance_controls/high_efficiency_chip_view_unittest.cc b/chrome/browser/ui/views/performance_controls/high_efficiency_chip_view_unittest.cc
index ef9187c..e04d02f 100644
--- a/chrome/browser/ui/views/performance_controls/high_efficiency_chip_view_unittest.cc
+++ b/chrome/browser/ui/views/performance_controls/high_efficiency_chip_view_unittest.cc
@@ -8,6 +8,7 @@
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/performance_manager/test_support/test_user_performance_tuning_manager_environment.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom-shared.h"
 #include "chrome/browser/ui/browser_element_identifiers.h"
 #include "chrome/browser/ui/performance_controls/performance_controls_metrics.h"
 #include "chrome/browser/ui/performance_controls/tab_discard_tab_helper.h"
@@ -65,8 +66,9 @@
         browser()->tab_strip_model()->GetWebContentsAt(0);
     TabDiscardTabHelper::CreateForWebContents(contents);
     performance_manager::user_tuning::UserPerformanceTuningManager::
-        PreDiscardResourceUsage::CreateForWebContents(contents,
-                                                      kMemorySavingsKilobytes);
+        PreDiscardResourceUsage::CreateForWebContents(
+            contents, kMemorySavingsKilobytes,
+            ::mojom::LifecycleUnitDiscardReason::PROACTIVE);
   }
 
   void TearDown() override {
@@ -250,7 +252,8 @@
   TabDiscardTabHelper::CreateForWebContents(contents);
   performance_manager::user_tuning::UserPerformanceTuningManager::
       PreDiscardResourceUsage::CreateForWebContents(
-          contents, kSmallMemorySavingsKilobytes);
+          contents, kSmallMemorySavingsKilobytes,
+          ::mojom::LifecycleUnitDiscardReason::PROACTIVE);
 
   // Mark the new tab as discarded.
   SetTabDiscardState(1, true);
@@ -333,7 +336,8 @@
   TabDiscardTabHelper::CreateForWebContents(contents);
   performance_manager::user_tuning::UserPerformanceTuningManager::
       PreDiscardResourceUsage::CreateForWebContents(
-          contents, kSmallMemorySavingsKilobytes);
+          contents, kSmallMemorySavingsKilobytes,
+          ::mojom::LifecycleUnitDiscardReason::PROACTIVE);
 
   TestingProfile* testprofile = browser()->profile()->AsTestingProfile();
   EXPECT_TRUE(testprofile);
diff --git a/chrome/browser/ui/views/profiles/first_run_flow_controller_dice.cc b/chrome/browser/ui/views/profiles/first_run_flow_controller_dice.cc
index 13a9cb2..dc7cae38 100644
--- a/chrome/browser/ui/views/profiles/first_run_flow_controller_dice.cc
+++ b/chrome/browser/ui/views/profiles/first_run_flow_controller_dice.cc
@@ -181,6 +181,8 @@
                       /*enable_animations=*/true));
   SwitchToStep(Step::kIntro, /*reset_state=*/true,
                std::move(step_switch_finished_callback));
+
+  signin_metrics::LogSignInOffered(kAccessPoint);
 }
 
 void FirstRunFlowControllerDice::CancelPostSignInFlow() {
diff --git a/chrome/browser/ui/views/profiles/first_run_flow_controller_dice_browsertest.cc b/chrome/browser/ui/views/profiles/first_run_flow_controller_dice_browsertest.cc
index 09f046f..40db590 100644
--- a/chrome/browser/ui/views/profiles/first_run_flow_controller_dice_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/first_run_flow_controller_dice_browsertest.cc
@@ -66,6 +66,7 @@
 };
 
 IN_PROC_BROWSER_TEST_F(FirstRunFlowControllerDiceBrowserTest, CloseView) {
+  base::HistogramTester histogram_tester;
   base::MockCallback<ProfilePicker::FirstRunExitedCallback>
       first_run_exited_callback;
   ProfilePicker::Show(ProfilePicker::Params::ForFirstRun(
@@ -78,9 +79,15 @@
               Run(ProfilePicker::FirstRunExitStatus::kQuitAtEnd));
   ProfilePicker::Hide();
   WaitForPickerClosed();
+
+  histogram_tester.ExpectUniqueSample(
+      "Signin.SignIn.Offered",
+      signin_metrics::AccessPoint::ACCESS_POINT_FOR_YOU_FRE, 1);
+  histogram_tester.ExpectTotalCount("Signin.SignIn.Started", 0);
 }
 
 IN_PROC_BROWSER_TEST_F(FirstRunFlowControllerDiceBrowserTest, SignInAndSync) {
+  base::HistogramTester histogram_tester;
   base::MockCallback<ProfilePicker::FirstRunExitedCallback>
       first_run_exited_callback;
   Profile* profile = browser()->profile();
@@ -90,11 +97,17 @@
 
   WaitForPickerWidgetCreated();
   WaitForLoadStop(GURL(chrome::kChromeUIIntroURL));
+  histogram_tester.ExpectUniqueSample(
+      "Signin.SignIn.Offered",
+      signin_metrics::AccessPoint::ACCESS_POINT_FOR_YOU_FRE, 1);
 
   web_contents()->GetWebUI()->ProcessWebUIMessage(
       web_contents()->GetURL(), "continueWithAccount", base::Value::List());
 
   WaitForLoadStop(GaiaUrls::GetInstance()->signin_chrome_sync_dice());
+  histogram_tester.ExpectUniqueSample(
+      "Signin.SignIn.Started",
+      signin_metrics::AccessPoint::ACCESS_POINT_FOR_YOU_FRE, 1);
 
   auto* identity_manager = IdentityManagerFactory::GetForProfile(profile);
   AccountInfo account_info = signin::MakeAccountAvailableWithCookies(
@@ -103,6 +116,12 @@
   signin::UpdateAccountInfoForAccount(identity_manager, account_info);
   WaitForLoadStop(AppendSyncConfirmationQueryParams(
       GURL("chrome://sync-confirmation/"), SyncConfirmationStyle::kWindow));
+  histogram_tester.ExpectUniqueSample(
+      "Signin.SignIn.Completed",
+      signin_metrics::AccessPoint::ACCESS_POINT_DESKTOP_SIGNIN_MANAGER, 1);
+  histogram_tester.ExpectUniqueSample(
+      "Signin.SyncOptIn.Started",
+      signin_metrics::AccessPoint::ACCESS_POINT_FOR_YOU_FRE, 1);
 
   base::RunLoop run_loop;
   EXPECT_CALL(first_run_exited_callback,
@@ -113,6 +132,10 @@
 
   WaitForPickerClosed();
   run_loop.Run();
+
+  histogram_tester.ExpectUniqueSample(
+      "Signin.SyncOptIn.Completed",
+      signin_metrics::AccessPoint::ACCESS_POINT_FOR_YOU_FRE, 1);
 }
 
 IN_PROC_BROWSER_TEST_F(FirstRunFlowControllerDiceBrowserTest,
diff --git a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc
index 3d771335..ce29261 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc
@@ -257,13 +257,19 @@
   identity_manager_observation_.Observe(
       IdentityManagerFactory::GetForProfile(profile_));
 
-  // Record that the sign in process starts (its end is recorded automatically
-  // by the instance of DiceTurnSyncOnHelper constructed later on in
-  // ProfilePickerSignedInFlowController).
+  // Record that the sign in process starts. Its end is recorded automatically
+  // when the primary account is set.
   signin_metrics::RecordSigninUserActionForAccessPoint(signin_access_point_);
   signin_metrics::LogSigninAccessPointStarted(
       signin_access_point_,
       signin_metrics::PromoAction::PROMO_ACTION_NO_SIGNIN_PROMO);
+  if (signin_access_point_ ==
+      signin_metrics::AccessPoint::ACCESS_POINT_FOR_YOU_FRE) {
+    // This metric is logged for only one access point for now. Others should
+    // audit all their flows to make sure the reflected data is accurate.
+    // `LogSigninAccessPointStarted()` covers them in the meantime.
+    signin_metrics::LogSignInStarted(signin_access_point_);
+  }
 
   // Apply the default theme to get consistent colors for toolbars in newly
   // created profiles (this matters for linux where the 'system' theme is used
diff --git a/chrome/browser/ui/web_applications/web_app_metrics.h b/chrome/browser/ui/web_applications/web_app_metrics.h
index 2a4429a..181d8b71 100644
--- a/chrome/browser/ui/web_applications/web_app_metrics.h
+++ b/chrome/browser/ui/web_applications/web_app_metrics.h
@@ -110,9 +110,7 @@
   int num_user_installed_apps_ = kNumUserInstalledAppsNotCounted;
 
   base::flat_map<web_app::AppId, base::Time> app_last_interacted_time_{};
-  // DanglingUntriaged because it is assigned a DanglingUntriaged pointer.
-  raw_ptr<content::WebContents, DanglingUntriaged> foreground_web_contents_ =
-      nullptr;
+  raw_ptr<content::WebContents> foreground_web_contents_ = nullptr;
   GURL last_recorded_web_app_start_url_;
 
   const raw_ptr<Profile> profile_;
diff --git a/chrome/browser/ui/webui/ash/login/gaia_screen_handler.cc b/chrome/browser/ui/webui/ash/login/gaia_screen_handler.cc
index cac1a31..fccc9a0 100644
--- a/chrome/browser/ui/webui/ash/login/gaia_screen_handler.cc
+++ b/chrome/browser/ui/webui/ash/login/gaia_screen_handler.cc
@@ -115,6 +115,7 @@
 #include "mojo/public/cpp/bindings/callback_helpers.h"
 #include "net/base/net_errors.h"
 #include "net/cert/x509_certificate.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/re2/src/re2/re2.h"
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
index ce51b5d4..64558d0 100644
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
@@ -37,6 +37,7 @@
 #include "net/base/network_isolation_key.h"
 #include "net/dns/public/host_resolver_results.h"
 #include "net/dns/public/resolve_error_info.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/content_security_policy.mojom.h"
 #include "services/network/public/mojom/host_resolver.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browser/ui/webui/policy/policy_ui_handler.cc
index 9f59883c..4c07f602 100644
--- a/chrome/browser/ui/webui/policy/policy_ui_handler.cc
+++ b/chrome/browser/ui/webui/policy/policy_ui_handler.cc
@@ -133,6 +133,7 @@
     {"ok", IDS_POLICY_OK},
     {"scopeDevice", IDS_POLICY_SCOPE_DEVICE},
     {"scopeUser", IDS_POLICY_SCOPE_USER},
+    {"scopeAllUsers", IDS_POLICY_SCOPE_ALL_USERS},
     {"title", IDS_POLICY_TITLE},
     {"unknown", IDS_POLICY_UNKNOWN},
     {"unset", IDS_POLICY_UNSET},
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
index 8b85417..d4fd703 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -3258,6 +3258,19 @@
      IDS_SETTINGS_SITE_SETTINGS_PAGE_SITE_DATA_BLOCKED_SUB_LABEL},
     {"siteSettingsSiteDataClearOnExitSubLabel",
      IDS_SETTINGS_SITE_SETTINGS_PAGE_SITE_DATA_CLEAR_ON_EXIT_SUB_LABEL},
+    {"siteSettingsAntiAbuse", IDS_SITE_SETTINGS_TYPE_ANTI_ABUSE},
+    {"siteSettingsAntiAbuseDescription", IDS_SETTINGS_ANTI_ABUSE_DESCRIPTION},
+    {"siteSettingsAntiAbuseEnabledSubLabel",
+     IDS_SETTINGS_ANTI_ABUSE_ENABLED_SUB_LABEL},
+    {"siteSettingsAntiAbuseDisabledSubLabel",
+     IDS_SETTINGS_ANTI_ABUSE_DISABLED_SUB_LABEL},
+    {"antiAbuseWhenOnHeader", IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_HEADER},
+    {"antiAbuseWhenOnSectionOne", IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_ONE},
+    {"antiAbuseWhenOnSectionTwo", IDS_SETTINGS_ANTI_ABUSE_WHEN_ON_SECTION_TWO},
+    {"antiAbuseThingsToConsiderHeader",
+     IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER},
+    {"antiAbuseThingsToConsiderSectionOne",
+     IDS_SETTINGS_ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE},
   };
   html_source->AddLocalizedStrings(kLocalizedStrings);
 
diff --git a/chrome/browser/ui/webui/settings/settings_secure_dns_handler_browsertest.cc b/chrome/browser/ui/webui/settings/settings_secure_dns_handler_browsertest.cc
index efcf302..494c3fd 100644
--- a/chrome/browser/ui/webui/settings/settings_secure_dns_handler_browsertest.cc
+++ b/chrome/browser/ui/webui/settings/settings_secure_dns_handler_browsertest.cc
@@ -22,6 +22,7 @@
 #include "content/public/test/browser_test.h"
 #include "content/public/test/test_web_ui.h"
 #include "net/dns/public/resolve_error_info.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
index 732a4382a..5778339 100644
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -89,6 +89,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "crypto/crypto_buildflags.h"
 #include "printing/buildflags/buildflags.h"
+#include "services/network/public/cpp/features.h"
 #include "ui/base/interaction/element_identifier.h"
 
 #if BUILDFLAG(IS_WIN)
@@ -456,6 +457,10 @@
         "privacySandbox", IDR_SETTINGS_PRIVACY_SANDBOX_PRIVACY_SANDBOX_HTML);
   }
 
+  html_source->AddBoolean(
+      "privateStateTokensEnabled",
+      base::FeatureList::IsEnabled(network::features::kPrivateStateTokens));
+
   html_source->AddBoolean("safetyCheckNotificationPermissionsEnabled",
                           base::FeatureList::IsEnabled(
                               features::kSafetyCheckNotificationPermissions));
diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc
index dda688f5..a51f51e 100644
--- a/chrome/browser/ui/webui/settings/site_settings_helper.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc
@@ -124,6 +124,7 @@
     {ContentSettingsType::PRIVATE_NETWORK_GUARD, "private-network-devices"},
     {ContentSettingsType::PRIVATE_NETWORK_CHOOSER_DATA,
      "private-network-devices-data"},
+    {ContentSettingsType::ANTI_ABUSE, "anti-abuse"},
 
     // Add new content settings here if a corresponding Javascript string
     // representation for it is not required, for example if the content setting
diff --git a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_prefs.cc b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_prefs.cc
index 3bc6c3b..8d11767f 100644
--- a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_prefs.cc
+++ b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_prefs.cc
@@ -8,9 +8,9 @@
 #include "chrome/common/accessibility/read_anything.mojom.h"
 #include "components/pref_registry/pref_registry_syncable.h"
 
-namespace prefs {
-
 #if !BUILDFLAG(IS_ANDROID)
+
+namespace prefs {
 // String to represent the user's preferred font name for the read anything UI.
 const char kAccessibilityReadAnythingFontName[] =
     "settings.a11y.read_anything.font_name";
diff --git a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_prefs.h b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_prefs.h
index fed2bd40..d7272d12 100644
--- a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_prefs.h
+++ b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_prefs.h
@@ -8,14 +8,14 @@
 #include "build/build_config.h"
 #include "chrome/common/buildflags.h"
 
+#if !BUILDFLAG(IS_ANDROID)
+
 namespace user_prefs {
 class PrefRegistrySyncable;
 }
 
 namespace prefs {
 
-#if !BUILDFLAG(IS_ANDROID)
-
 extern const char kAccessibilityReadAnythingFontName[];
 extern const char kAccessibilityReadAnythingFontScale[];
 extern const char kAccessibilityReadAnythingColorInfo[];
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index 422b6536..8d4d383c 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1676958321-0f38d607074192aa865070e29812cd508dab5fc7.profdata
+chrome-linux-main-1676980367-ad7da12a7ad797e7820024f7fb3ecaafe86744f1.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 8fc819b..83334bd0b 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1676958321-a7506818683d28d5f314e7a732589f57cbc893e9.profdata
+chrome-mac-arm-main-1676980367-21616960f10b88358395bf2911e6f3a88c674438.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index 72e2be5..2ae7799 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1676958321-76f98ca1981bc471ce6d14755fe86a2564f8b6e3.profdata
+chrome-win32-main-1676980367-5eeafc6931e2661f9793227292162a6a9894a260.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index d6a3fe1..50103367 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1676958321-32867ed2882fd3d1a2ce92f6a20fa4e4cbeb0610.profdata
+chrome-win64-main-1676980367-f4f6f10748cab154e595d9943c12247067360c1a.profdata
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index e76377ce..4312c0af 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -445,9 +445,6 @@
 const char kEnableTouchpadThreeFingerClick[] =
     "settings.touchpad.enable_three_finger_click";
 
-// A boolean pref set to true if primary mouse button is the left button.
-const char kPrimaryMouseButtonRight[] = "settings.mouse.primary_right";
-
 // A boolean pref set to true if primary pointing stick button is the left
 // button.
 const char kPrimaryPointingStickButtonRight[] =
@@ -457,14 +454,6 @@
 const char kOwnerPrimaryPointingStickButtonRight[] =
     "owner.pointing_stick.primary_right";
 
-// A boolean pref set to true if mouse acceleration is enabled. When disabled
-// only simple linear scaling is applied based on sensitivity.
-const char kMouseAcceleration[] = "settings.mouse.acceleration";
-
-// A boolean pref set to true if mouse scroll acceleration is enabled. When
-// disabled, only simple linear scaling is applied based on sensitivity.
-const char kMouseScrollAcceleration[] = "settings.mouse.scroll_acceleration";
-
 // A boolean pref set to true if pointing stick acceleration is enabled. When
 // disabled only simple linear scaling is applied based on sensitivity.
 const char kPointingStickAcceleration[] =
@@ -488,13 +477,6 @@
     "settings.touchpad.haptic_click_sensitivity";
 
 // A integer pref for the touchpad sensitivity.
-const char kMouseSensitivity[] = "settings.mouse.sensitivity2";
-
-// A integer pref for the touchpad scroll sensitivity, in the range
-// [PointerSensitivity::kLowest, PointerSensitivity::kHighest].
-const char kMouseScrollSensitivity[] = "settings.mouse.scroll_sensitivity";
-
-// A integer pref for the touchpad sensitivity.
 const char kTouchpadSensitivity[] = "settings.touchpad.sensitivity2";
 
 // A integer pref for the touchpad scroll sensitivity, in the range
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 77a3cfb..f4cd59f5 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -210,18 +210,13 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 extern const char kTapToClickEnabled[];
 extern const char kEnableTouchpadThreeFingerClick[];
-extern const char kPrimaryMouseButtonRight[];
 extern const char kPrimaryPointingStickButtonRight[];
 extern const char kOwnerPrimaryPointingStickButtonRight[];
-extern const char kMouseAcceleration[];
-extern const char kMouseScrollAcceleration[];
 extern const char kPointingStickAcceleration[];
 extern const char kTouchpadAcceleration[];
 extern const char kTouchpadScrollAcceleration[];
 extern const char kTouchpadHapticFeedback[];
 extern const char kTouchpadHapticClickSensitivity[];
-extern const char kMouseSensitivity[];
-extern const char kMouseScrollSensitivity[];
 extern const char kTouchpadSensitivity[];
 extern const char kTouchpadScrollSensitivity[];
 extern const char kPointingStickSensitivity[];
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 839e07a..41121f1 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -6296,7 +6296,7 @@
       "//chrome:packed_resources_integrity",
       "//chrome//services/util_win:unit_tests",
       "//chrome/app:chrome_dll_resources",
-      "//chrome/app:crash_reporter_client_win_unit_tests",
+      "//chrome/app:win_unit_tests",
       "//chrome/browser:chrome_process_finder",
       "//chrome/browser/enterprise/platform_auth:test_utils",
       "//chrome/browser/safe_browsing/chrome_cleaner",
diff --git a/chrome/test/base/web_ui_browser_test.h b/chrome/test/base/web_ui_browser_test.h
index 6e7d1296..2bfa8d97 100644
--- a/chrome/test/base/web_ui_browser_test.h
+++ b/chrome/test/base/web_ui_browser_test.h
@@ -17,6 +17,7 @@
 #include "chrome/test/base/devtools_listener.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/javascript_browser_test.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 
 namespace {
 class WebUITestMessageHandler;
diff --git a/chrome/test/data/media/picture-in-picture/document-pip.html b/chrome/test/data/media/picture-in-picture/document-pip.html
index aad2f4310..bc7bf71e 100644
--- a/chrome/test/data/media/picture-in-picture/document-pip.html
+++ b/chrome/test/data/media/picture-in-picture/document-pip.html
@@ -16,4 +16,9 @@
     return pipWindow.document.testvalue == 123;
 }
 
+function refreshInDocumentPipWindow() {
+    pipWindow.location.reload();
+    return true;
+}
+
 </script>
diff --git a/chrome/test/data/webui/settings/site_settings_page_test.ts b/chrome/test/data/webui/settings/site_settings_page_test.ts
index 2fee89b..f538620 100644
--- a/chrome/test/data/webui/settings/site_settings_page_test.ts
+++ b/chrome/test/data/webui/settings/site_settings_page_test.ts
@@ -66,6 +66,15 @@
         defaultSettingLabel(ContentSetting.IMPORTANT_CONTENT, 'a', 'b', 'c'));
   });
 
+  test('AntiAbuseLinkRowHidden', async function() {
+    loadTimeData.overrideValues({
+      privateStateTokensEnabled: false,
+    });
+    setupPage();
+    assertFalse(isChildVisible(
+        page.$.advancedContentList, `#${ContentSettingsTypes.ANTI_ABUSE}`));
+  });
+
   // TODO(crbug.com/1378703): Remove the test once PrivacySandboxSettings4
   // has been rolled out.
   test('CookiesLinkRowLabel', function() {
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb
index 32fa115..b8e74c4 100644
--- a/chromeos/strings/chromeos_strings_am.xtb
+++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">የማሳያ ብሩህነት መጨመሪያ</translation>
 <translation id="57838592816432529">ድምፅ ይዝጉ</translation>
 <translation id="5784136236926853061">ከፍተኛ የኤችቲቲፒ የስርዓተ ምላሽ ጊዜ</translation>
+<translation id="5826644637650799838">ስለሥነ ጥበቡ</translation>
 <translation id="5832805196449965646">ሰው አክል</translation>
 <translation id="583281660410589416">ያልታወቀ </translation>
 <translation id="5843706793424741864">ፋራናይት</translation>
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb
index 0f11b4c..fd04dc0 100644
--- a/chromeos/strings/chromeos_strings_az.xtb
+++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Displey parlaqlığını artırın</translation>
 <translation id="57838592816432529">Səssiz</translation>
 <translation id="5784136236926853061">Yüksək HTTP gecikməsi</translation>
+<translation id="5826644637650799838">Rəsm haqqında</translation>
 <translation id="5832805196449965646">Şəxs əlavə edin</translation>
 <translation id="583281660410589416">Naməlum</translation>
 <translation id="5843706793424741864">Farenheyt</translation>
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb
index 5309bdb2..9a250a6 100644
--- a/chromeos/strings/chromeos_strings_be.xtb
+++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Павялічыць яркасць дысплэя</translation>
 <translation id="57838592816432529">Выключыць</translation>
 <translation id="5784136236926853061">Вялікая затрымка HTTP-запытаў</translation>
+<translation id="5826644637650799838">Інфармацыя аб ілюстрацыі</translation>
 <translation id="5832805196449965646">Дадаць карыстальніка</translation>
 <translation id="583281660410589416">Невядома</translation>
 <translation id="5843706793424741864">Шкала Фарэнгейта</translation>
diff --git a/chromeos/strings/chromeos_strings_bn.xtb b/chromeos/strings/chromeos_strings_bn.xtb
index f528e9b..40c119f 100644
--- a/chromeos/strings/chromeos_strings_bn.xtb
+++ b/chromeos/strings/chromeos_strings_bn.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">ডিসপ্লের উজ্জ্বলতা বাড়ানোর বোতাম</translation>
 <translation id="57838592816432529">মিউট করুন</translation>
 <translation id="5784136236926853061">HTTP লেটেন্সি বেশি</translation>
+<translation id="5826644637650799838">আর্ট সম্পর্কে</translation>
 <translation id="5832805196449965646">একজন ব্যক্তিকে যোগ করুন</translation>
 <translation id="583281660410589416">অজানা</translation>
 <translation id="5843706793424741864">ফারেনহাইট</translation>
diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb
index dd6cf597..f3fc7dc 100644
--- a/chromeos/strings/chromeos_strings_ca.xtb
+++ b/chromeos/strings/chromeos_strings_ca.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Augmenta la brillantor de la pantalla</translation>
 <translation id="57838592816432529">Silencia</translation>
 <translation id="5784136236926853061">La latència d'HTTP és alta</translation>
+<translation id="5826644637650799838">Sobre l'art</translation>
 <translation id="5832805196449965646">Afegeix una persona</translation>
 <translation id="583281660410589416">Desconegut</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_cy.xtb b/chromeos/strings/chromeos_strings_cy.xtb
index afcb45a..9e2113b 100644
--- a/chromeos/strings/chromeos_strings_cy.xtb
+++ b/chromeos/strings/chromeos_strings_cy.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Disgleirdeb y sgrîn i fyny</translation>
 <translation id="57838592816432529">Distewi</translation>
 <translation id="5784136236926853061">Cuddni HTTP uchel</translation>
+<translation id="5826644637650799838">Ynghylch y gelf</translation>
 <translation id="5832805196449965646">Ychwanegu Person</translation>
 <translation id="583281660410589416">Anhysbys</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb
index 710ca96..4fec9c22 100644
--- a/chromeos/strings/chromeos_strings_da.xtb
+++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Øg skærmens lysstyrke</translation>
 <translation id="57838592816432529">Slå lyden fra</translation>
 <translation id="5784136236926853061">Stor HTTP-forsinkelse</translation>
+<translation id="5826644637650799838">Om baggrunden</translation>
 <translation id="5832805196449965646">Tilføj person</translation>
 <translation id="583281660410589416">Ukendt</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb
index 5e0658f8..269a6ff 100644
--- a/chromeos/strings/chromeos_strings_de.xtb
+++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Displayhelligkeit erhöhen</translation>
 <translation id="57838592816432529">Stummschalten</translation>
 <translation id="5784136236926853061">Hohe HTTP-Latenz</translation>
+<translation id="5826644637650799838">Informationen zum Bild</translation>
 <translation id="5832805196449965646">Person hinzufügen</translation>
 <translation id="583281660410589416">Unbekannt</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb
index ab87fc4..7920434 100644
--- a/chromeos/strings/chromeos_strings_et.xtb
+++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Ekraanikuva ereduse suurendamine</translation>
 <translation id="57838592816432529">Vaigista</translation>
 <translation id="5784136236926853061">Pikk HTTP latentsusaeg</translation>
+<translation id="5826644637650799838">Kunsti teave</translation>
 <translation id="5832805196449965646">Lisa inimene</translation>
 <translation id="583281660410589416">Tundmatu</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb
index 93e83c08..c38d534 100644
--- a/chromeos/strings/chromeos_strings_fa.xtb
+++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">افزایش روشنایی نمایشگر</translation>
 <translation id="57838592816432529">بی‌صدا کردن</translation>
 <translation id="5784136236926853061">‏تأخیر زیاد HTTP</translation>
+<translation id="5826644637650799838">درباره اثر هنری</translation>
 <translation id="5832805196449965646">افزودن شخص</translation>
 <translation id="583281660410589416">ناشناس</translation>
 <translation id="5843706793424741864">فارنهایت</translation>
diff --git a/chromeos/strings/chromeos_strings_fil.xtb b/chromeos/strings/chromeos_strings_fil.xtb
index 7981ca8ef..fbdaa051 100644
--- a/chromeos/strings/chromeos_strings_fil.xtb
+++ b/chromeos/strings/chromeos_strings_fil.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Taasan ang liwanag ng display</translation>
 <translation id="57838592816432529">I-mute</translation>
 <translation id="5784136236926853061">Mataas na latency ng HTTP</translation>
+<translation id="5826644637650799838">Tungkol sa sining</translation>
 <translation id="5832805196449965646">Magdagdag ng Tao</translation>
 <translation id="583281660410589416">Hindi-alam</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_fr-CA.xtb b/chromeos/strings/chromeos_strings_fr-CA.xtb
index a25fee1..8fb64d0 100644
--- a/chromeos/strings/chromeos_strings_fr-CA.xtb
+++ b/chromeos/strings/chromeos_strings_fr-CA.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Augmenter la luminosité de l'écran</translation>
 <translation id="57838592816432529">Désactiver le son</translation>
 <translation id="5784136236926853061">Latence HTTP élevée</translation>
+<translation id="5826644637650799838">À propos du fond d'écran</translation>
 <translation id="5832805196449965646">Ajouter une personne</translation>
 <translation id="583281660410589416">Inconnu</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb
index 4bfbdb06a..0280608 100644
--- a/chromeos/strings/chromeos_strings_gl.xtb
+++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Aumentar brillo da pantalla</translation>
 <translation id="57838592816432529">Silenciar</translation>
 <translation id="5784136236926853061">Latencia de HTTP alta</translation>
+<translation id="5826644637650799838">Acerca da imaxe</translation>
 <translation id="5832805196449965646">Engadir unha persoa</translation>
 <translation id="583281660410589416">Descoñecido</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb
index 00ffb6a1..cef32c1c 100644
--- a/chromeos/strings/chromeos_strings_hi.xtb
+++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">डिसप्ले की रोशनी बढ़ाने वाला बटन</translation>
 <translation id="57838592816432529">म्यूट करें</translation>
 <translation id="5784136236926853061">एचटीटीपी अनुरोधों में इंतज़ार का समय ज़्यादा है</translation>
+<translation id="5826644637650799838">कला के बारे में</translation>
 <translation id="5832805196449965646">व्‍यक्ति जोड़ें</translation>
 <translation id="583281660410589416">अज्ञात</translation>
 <translation id="5843706793424741864">फ़ैरनहाइट</translation>
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb
index 4d5fb23..bf2df52a 100644
--- a/chromeos/strings/chromeos_strings_hr.xtb
+++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Pojačavanje svjetline zaslona</translation>
 <translation id="57838592816432529">Isključi zvuk</translation>
 <translation id="5784136236926853061">Visoka latencija HTTP-a</translation>
+<translation id="5826644637650799838">O umjetnosti</translation>
 <translation id="5832805196449965646">Dodaj osobu</translation>
 <translation id="583281660410589416">Nepoznato</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb
index d9e7205..7e1cdfe 100644
--- a/chromeos/strings/chromeos_strings_hu.xtb
+++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Kijelző fényerejének növelése</translation>
 <translation id="57838592816432529">Némítás</translation>
 <translation id="5784136236926853061">Hosszú HTTP várakozási idő</translation>
+<translation id="5826644637650799838">A műalkotásról</translation>
 <translation id="5832805196449965646">Személy hozzáadása</translation>
 <translation id="583281660410589416">Ismeretlen</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb
index 94e5319..d6b7146 100644
--- a/chromeos/strings/chromeos_strings_it.xtb
+++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Aumenta la luminosità del display</translation>
 <translation id="57838592816432529">Disattiva audio</translation>
 <translation id="5784136236926853061">Latenza HTTP elevata</translation>
+<translation id="5826644637650799838">Informazioni sullo sfondo</translation>
 <translation id="5832805196449965646">Aggiungi persona</translation>
 <translation id="583281660410589416">Sconosciuto</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index 6a93d85..ea320cd 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">디스플레이 밝기 높이기</translation>
 <translation id="57838592816432529">음소거</translation>
 <translation id="5784136236926853061">HTTP 지연 시간 높음</translation>
+<translation id="5826644637650799838">작품 정보</translation>
 <translation id="5832805196449965646">사용자 추가</translation>
 <translation id="583281660410589416">알 수 없음</translation>
 <translation id="5843706793424741864">화씨</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb
index 964c63f..b694f4f 100644
--- a/chromeos/strings/chromeos_strings_lo.xtb
+++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">ເພີ່ມຄວາມສະຫວ່າງການສະແດງຜົນ</translation>
 <translation id="57838592816432529">ປິດສຽງ</translation>
 <translation id="5784136236926853061">ການຕອບສະໜອງ HTTP ສູງ</translation>
+<translation id="5826644637650799838">ກ່ຽວກັບສິນລະປະ</translation>
 <translation id="5832805196449965646">ເພີ່ມບຸກຄົນ</translation>
 <translation id="583281660410589416">ບໍ່​ຮູ້ຈັກ</translation>
 <translation id="5843706793424741864">ຟາເຣນຮາຍ</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb
index 86d04c9..1649030 100644
--- a/chromeos/strings/chromeos_strings_ms.xtb
+++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Tingkatkan kecerahan paparan</translation>
 <translation id="57838592816432529">Redam</translation>
 <translation id="5784136236926853061">Kependaman HTTP tinggi</translation>
+<translation id="5826644637650799838">Perihal seni</translation>
 <translation id="5832805196449965646">Tambah Orang</translation>
 <translation id="583281660410589416">Tidak diketahui</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb
index 7dafc41..020cf972 100644
--- a/chromeos/strings/chromeos_strings_my.xtb
+++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">ဖန်သားပြင်တောက်ပမှု တိုးရန်</translation>
 <translation id="57838592816432529">တိတ်ရန်</translation>
 <translation id="5784136236926853061">HTTP တုံ့ပြန်ချိန် ကြာနေသည်</translation>
+<translation id="5826644637650799838">နောက်ခံပုံ အကြောင်း</translation>
 <translation id="5832805196449965646">လူကို ထည့်ပေးရန်</translation>
 <translation id="583281660410589416">မသိရ</translation>
 <translation id="5843706793424741864">ဖာရင်ဟိုက်</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb
index d8bc43c..a6cf9c97 100644
--- a/chromeos/strings/chromeos_strings_ne.xtb
+++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">डिस्प्लेको चमक बढाउने की</translation>
 <translation id="57838592816432529">म्यूट गर्नुहोस्</translation>
 <translation id="5784136236926853061">HTTP को विलम्बता धेरै छ</translation>
+<translation id="5826644637650799838">यस कलाकृतिसम्बन्धी जानकारी</translation>
 <translation id="5832805196449965646">व्यक्ति थप्नुहोस्</translation>
 <translation id="583281660410589416">अज्ञात</translation>
 <translation id="5843706793424741864">फरेनहाइट</translation>
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb
index 4000fae5..b927fe21 100644
--- a/chromeos/strings/chromeos_strings_nl.xtb
+++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Helderheid van scherm verhogen</translation>
 <translation id="57838592816432529">Geluid uitzetten</translation>
 <translation id="5784136236926853061">Hoge HTTP-vertraging</translation>
+<translation id="5826644637650799838">Over de achtergrond</translation>
 <translation id="5832805196449965646">Persoon toevoegen</translation>
 <translation id="583281660410589416">Onbekend</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_no.xtb b/chromeos/strings/chromeos_strings_no.xtb
index 8ec545a..10c5d11 100644
--- a/chromeos/strings/chromeos_strings_no.xtb
+++ b/chromeos/strings/chromeos_strings_no.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Skjermlysstyrke opp</translation>
 <translation id="57838592816432529">Kutt lyden</translation>
 <translation id="5784136236926853061">Høy HTTP-tidsforsinkelse</translation>
+<translation id="5826644637650799838">Om kunsten</translation>
 <translation id="5832805196449965646">Legg til person</translation>
 <translation id="583281660410589416">Ukjent</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb
index 0c452c7..0049ff66 100644
--- a/chromeos/strings/chromeos_strings_pt-BR.xtb
+++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Aumentar o brilho da tela</translation>
 <translation id="57838592816432529">Desativar som</translation>
 <translation id="5784136236926853061">A latência do HTTP está alta</translation>
+<translation id="5826644637650799838">Sobre a arte</translation>
 <translation id="5832805196449965646">Adicionar pessoa</translation>
 <translation id="583281660410589416">Desconhecido</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb
index 6906215..909212f 100644
--- a/chromeos/strings/chromeos_strings_ru.xtb
+++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Увеличение яркости экрана</translation>
 <translation id="57838592816432529">Отключить звук</translation>
 <translation id="5784136236926853061">большое время ожидания HTTP</translation>
+<translation id="5826644637650799838">Подробнее</translation>
 <translation id="5832805196449965646">Добавить пользователя</translation>
 <translation id="583281660410589416">Неизвестно</translation>
 <translation id="5843706793424741864">По шкале Фаренгейта</translation>
diff --git a/chromeos/strings/chromeos_strings_sk.xtb b/chromeos/strings/chromeos_strings_sk.xtb
index 39807e86..b703e90b0 100644
--- a/chromeos/strings/chromeos_strings_sk.xtb
+++ b/chromeos/strings/chromeos_strings_sk.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Zvýšenie jasu obrazovky</translation>
 <translation id="57838592816432529">Vypnúť zvuk</translation>
 <translation id="5784136236926853061">Vysoká latencia protokolu HTTPS</translation>
+<translation id="5826644637650799838">O umení</translation>
 <translation id="5832805196449965646">Pridať osobu</translation>
 <translation id="583281660410589416">Neznáme</translation>
 <translation id="5843706793424741864">Fahrenheit</translation>
diff --git a/chromeos/strings/chromeos_strings_sr-Latn.xtb b/chromeos/strings/chromeos_strings_sr-Latn.xtb
index cfee4743..c4239fd 100644
--- a/chromeos/strings/chromeos_strings_sr-Latn.xtb
+++ b/chromeos/strings/chromeos_strings_sr-Latn.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Povećajte osvetljenost ekrana</translation>
 <translation id="57838592816432529">Isključi zvuk</translation>
 <translation id="5784136236926853061">Veliko HTTP kašnjenje</translation>
+<translation id="5826644637650799838">O pozadini</translation>
 <translation id="5832805196449965646">Dodaj osobu</translation>
 <translation id="583281660410589416">Nepoznato</translation>
 <translation id="5843706793424741864">Farenhajt</translation>
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb
index 47056ed..f7050e92 100644
--- a/chromeos/strings/chromeos_strings_sr.xtb
+++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Повећајте осветљеност екрана</translation>
 <translation id="57838592816432529">Искључи звук</translation>
 <translation id="5784136236926853061">Велико HTTP кашњење</translation>
+<translation id="5826644637650799838">О позадини</translation>
 <translation id="5832805196449965646">Додај особу</translation>
 <translation id="583281660410589416">Непознато</translation>
 <translation id="5843706793424741864">Фаренхајт</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb
index c8d0e5a..38a7cd8 100644
--- a/chromeos/strings/chromeos_strings_uk.xtb
+++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">Збільшити яскравість екрана</translation>
 <translation id="57838592816432529">Вимкнути звук</translation>
 <translation id="5784136236926853061">Велика затримка HTTP</translation>
+<translation id="5826644637650799838">Опис зображення</translation>
 <translation id="5832805196449965646">Додати користувача</translation>
 <translation id="583281660410589416">Невідомий</translation>
 <translation id="5843706793424741864">Градуси Фаренгейта</translation>
diff --git a/chromeos/strings/chromeos_strings_ur.xtb b/chromeos/strings/chromeos_strings_ur.xtb
index 42ef52a..836db90 100644
--- a/chromeos/strings/chromeos_strings_ur.xtb
+++ b/chromeos/strings/chromeos_strings_ur.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">ڈسپلے کی چمک بڑھانے کی کلید</translation>
 <translation id="57838592816432529">آواز بند کریں</translation>
 <translation id="5784136236926853061">‏زیادہ HTTPS تاخیر</translation>
+<translation id="5826644637650799838">آرٹ کے بارے میں</translation>
 <translation id="5832805196449965646">شخص کو شامل کریں</translation>
 <translation id="583281660410589416">نامعلوم</translation>
 <translation id="5843706793424741864">فارن ہائیٹ</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb
index fe6d782..9712437 100644
--- a/chromeos/strings/chromeos_strings_zh-HK.xtb
+++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">顯示屏校光亮度</translation>
 <translation id="57838592816432529">静音</translation>
 <translation id="5784136236926853061">HTTP 延遲時間過長</translation>
+<translation id="5826644637650799838">關於此桌布</translation>
 <translation id="5832805196449965646">新增使用者</translation>
 <translation id="583281660410589416">不明</translation>
 <translation id="5843706793424741864">華氏</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb
index 03b52a623..2a12703d 100644
--- a/chromeos/strings/chromeos_strings_zh-TW.xtb
+++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -520,6 +520,7 @@
 <translation id="576835345334454681">顯示亮度調高</translation>
 <translation id="57838592816432529">靜音</translation>
 <translation id="5784136236926853061">HTTP 延遲時間過長</translation>
+<translation id="5826644637650799838">關於這張桌布</translation>
 <translation id="5832805196449965646">新增使用者</translation>
 <translation id="583281660410589416">未知</translation>
 <translation id="5843706793424741864">華氏</translation>
diff --git a/components/BUILD.gn b/components/BUILD.gn
index e88cbb4..f4f66009 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -600,10 +600,7 @@
   }
 
   if (is_win) {
-    deps += [
-      "//components/browser_watcher:unit_tests",
-      "//components/winhttp:unit_tests",
-    ]
+    deps += [ "//components/winhttp:unit_tests" ]
   }
 
   if (enable_printing) {
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc
index e23b96b..ae75a8c2 100644
--- a/components/autofill/content/renderer/autofill_agent.cc
+++ b/components/autofill/content/renderer/autofill_agent.cc
@@ -584,8 +584,8 @@
 
 void AutofillAgent::FieldTypePredictionsAvailable(
     const std::vector<FormDataPredictions>& forms) {
-  bool attach_predictions_to_dom =
-      base::FeatureList::IsEnabled(features::kAutofillShowTypePredictions);
+  bool attach_predictions_to_dom = base::FeatureList::IsEnabled(
+      features::test::kAutofillShowTypePredictions);
   for (const auto& form : forms) {
     form_cache_.ShowPredictions(form, attach_predictions_to_dom);
   }
diff --git a/components/autofill/core/browser/address_profile_save_manager_unittest.cc b/components/autofill/core/browser/address_profile_save_manager_unittest.cc
index dc0e014..5074b49d 100644
--- a/components/autofill/core/browser/address_profile_save_manager_unittest.cc
+++ b/components/autofill/core/browser/address_profile_save_manager_unittest.cc
@@ -686,7 +686,7 @@
        SilentlyUpdateProfile_DisabledByFeatureFlag) {
   base::test::ScopedFeatureList disabled_update_feature;
   disabled_update_feature.InitAndEnableFeature(
-      features::kAutofillDisableSilentProfileUpdates);
+      features::test::kAutofillDisableSilentProfileUpdates);
 
   AutofillProfile observed_profile = test::StandardProfile();
   AutofillProfile updateable_profile = test::UpdateableStandardProfile();
@@ -805,7 +805,7 @@
        UserConfirmableMerge_DisabledByFeatureFlag) {
   base::test::ScopedFeatureList disabled_update_feature;
   disabled_update_feature.InitAndEnableFeature(
-      features::kAutofillDisableProfileUpdates);
+      features::test::kAutofillDisableProfileUpdates);
 
   AutofillProfile observed_profile = test::StandardProfile();
   AutofillProfile mergeable_profile = test::SubsetOfStandardProfile();
diff --git a/components/autofill/core/browser/autofill_ablation_study.cc b/components/autofill/core/browser/autofill_ablation_study.cc
index f3727eb..67d5612 100644
--- a/components/autofill/core/browser/autofill_ablation_study.cc
+++ b/components/autofill/core/browser/autofill_ablation_study.cc
@@ -25,7 +25,7 @@
 using ::autofill::features::kAutofillAblationStudyEnabledForAddressesParam;
 using ::autofill::features::kAutofillAblationStudyEnabledForPaymentsParam;
 using ::autofill::features::kAutofillEnableAblationStudy;
-using ::autofill::features::kAutofillShowTypePredictions;
+using ::autofill::features::test::kAutofillShowTypePredictions;
 
 namespace {
 
diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/components/autofill/core/browser/autofill_download_manager.cc
index a98e198..bf31a4e 100644
--- a/components/autofill/core/browser/autofill_download_manager.cc
+++ b/components/autofill/core/browser/autofill_download_manager.cc
@@ -102,7 +102,7 @@
 // The default number of days after which to reset the registry of autofill
 // events for which an upload has been sent.
 const base::FeatureParam<int> kAutofillUploadThrottlingPeriodInDays(
-    &features::kAutofillUploadThrottling,
+    &features::test::kAutofillUploadThrottling,
     switches::kAutofillUploadThrottlingPeriodInDays,
     28);
 
@@ -114,7 +114,7 @@
 
 // The maximum number of attempts for a given autofill request.
 const base::FeatureParam<int> kAutofillMaxServerAttempts(
-    &features::kAutofillServerCommunication,
+    &features::test::kAutofillServerCommunication,
     "max-attempts",
     5);
 
@@ -139,16 +139,16 @@
   // Server communication is enabled. If there's an autofill server url param
   // use it, otherwise use the default.
   const std::string autofill_server_url_str =
-      base::FeatureParam<std::string>(&features::kAutofillServerCommunication,
-                                      switches::kAutofillServerURL,
-                                      kDefaultAutofillServerURL)
+      base::FeatureParam<std::string>(
+          &features::test::kAutofillServerCommunication,
+          switches::kAutofillServerURL, kDefaultAutofillServerURL)
           .Get();
 
   GURL autofill_server_url(autofill_server_url_str);
 
   if (!autofill_server_url.is_valid()) {
     LOG(ERROR) << "Invalid URL param for "
-               << features::kAutofillServerCommunication.name << "/"
+               << features::test::kAutofillServerCommunication.name << "/"
                << switches::kAutofillServerURL << ": "
                << autofill_server_url_str;
     return GURL();
@@ -602,7 +602,8 @@
 
 bool AutofillDownloadManager::IsEnabled() const {
   return autofill_server_url_.is_valid() &&
-         base::FeatureList::IsEnabled(features::kAutofillServerCommunication);
+         base::FeatureList::IsEnabled(
+             features::test::kAutofillServerCommunication);
 }
 
 bool AutofillDownloadManager::StartQueryRequest(
@@ -683,7 +684,7 @@
   bool can_throttle_upload =
       CanThrottleUpload(form, throttle_reset_period_, prefs);
   bool throttling_is_enabled =
-      base::FeatureList::IsEnabled(features::kAutofillUploadThrottling);
+      base::FeatureList::IsEnabled(features::test::kAutofillUploadThrottling);
   bool is_small_form = form.active_field_count() < 3;
   bool allow_upload =
       !(can_throttle_upload && (throttling_is_enabled || is_small_form));
diff --git a/components/autofill/core/browser/autofill_download_manager_unittest.cc b/components/autofill/core/browser/autofill_download_manager_unittest.cc
index 7b86341e..4d9acde2 100644
--- a/components/autofill/core/browser/autofill_download_manager_unittest.cc
+++ b/components/autofill/core/browser/autofill_download_manager_unittest.cc
@@ -737,7 +737,7 @@
       {},
       // Disabled
       // We don't want upload throttling for testing purpose.
-      {features::kAutofillUploadThrottling});
+      {features::test::kAutofillUploadThrottling});
 
   // Build the form structures that we want to upload.
   FormData form;
@@ -812,7 +812,7 @@
       {},
       // Disabled
       // We don't want upload throttling for testing purpose.
-      {features::kAutofillUploadThrottling});
+      {features::test::kAutofillUploadThrottling});
 
   for (bool is_raw_metadata_uploading_enabled : {false, true}) {
     SCOPED_TRACE(testing::Message() << "is_raw_metadata_uploading_enabled = "
@@ -1402,7 +1402,7 @@
 
     scoped_feature_list_1_.InitWithFeatures(
         // Enabled
-        {features::kAutofillUploadThrottling},
+        {features::test::kAutofillUploadThrottling},
         // Disabled
         {});
 
@@ -1430,11 +1430,11 @@
     switch (GetParam()) {
       case DISABLED:
         scoped_feature_list_2_.InitAndDisableFeature(
-            features::kAutofillServerCommunication);
+            features::test::kAutofillServerCommunication);
         break;
       case FINCHED_URL:
         scoped_feature_list_2_.InitAndEnableFeatureWithParameters(
-            features::kAutofillServerCommunication,
+            features::test::kAutofillServerCommunication,
             {{switches::kAutofillServerURL, autofill_server_url.spec()}});
         break;
       case COMMAND_LINE_URL:
@@ -1443,7 +1443,7 @@
         [[fallthrough]];
       case DEFAULT_URL:
         scoped_feature_list_2_.InitAndEnableFeature(
-            features::kAutofillServerCommunication);
+            features::test::kAutofillServerCommunication);
         break;
       default:
         ASSERT_TRUE(false);
@@ -2095,7 +2095,7 @@
       // Enabled.
       {},
       // Disabled
-      {features::kAutofillUploadThrottling});
+      {features::test::kAutofillUploadThrottling});
 
   FormData form;
   FormData small_form;
@@ -2184,7 +2184,7 @@
 
   base::test::ScopedFeatureList local_feature;
   local_feature.InitAndEnableFeatureWithParameters(
-      features::kAutofillUploadThrottling,
+      features::test::kAutofillUploadThrottling,
       {{switches::kAutofillUploadThrottlingPeriodInDays, "16"}});
 
   FormData form;
diff --git a/components/autofill/core/browser/autofill_profile_import_process.cc b/components/autofill/core/browser/autofill_profile_import_process.cc
index fe3513b..0ed9b8b 100644
--- a/components/autofill/core/browser/autofill_profile_import_process.cc
+++ b/components/autofill/core/browser/autofill_profile_import_process.cc
@@ -158,7 +158,7 @@
           personal_data_manager_->IsProfileUpdateBlocked(
               existing_profile->guid()) ||
           base::FeatureList::IsEnabled(
-              features::kAutofillDisableProfileUpdates);
+              features::test::kAutofillDisableProfileUpdates);
 
       if (is_blocked_for_update) {
         ++number_of_blocked_profile_updates_;
@@ -184,7 +184,7 @@
              AutofillProfile::Source::kLocalOrSyncable ||
          features::kAutofillEnableSilentUpdatesForAccountProfiles.Get()) &&
         !base::FeatureList::IsEnabled(
-            features::kAutofillDisableSilentProfileUpdates)) {
+            features::test::kAutofillDisableSilentProfileUpdates)) {
       merged_profile.set_modification_date(AutofillClock::Now());
       updated_profiles_.emplace_back(merged_profile);
     } else {
diff --git a/components/autofill/core/browser/data_model/test_data_creator.cc b/components/autofill/core/browser/data_model/test_data_creator.cc
index 2148929..8ec9a462 100644
--- a/components/autofill/core/browser/data_model/test_data_creator.cc
+++ b/components/autofill/core/browser/data_model/test_data_creator.cc
@@ -38,8 +38,10 @@
     const base::RepeatingCallback<void(const AutofillProfile&)>&
         add_profile_callback) {
   if (has_created_test_addresses_ ||
-      !base::FeatureList::IsEnabled(features::kAutofillCreateDataForTest))
+      !base::FeatureList::IsEnabled(
+          features::test::kAutofillCreateDataForTest)) {
     return;
+  }
 
   has_created_test_addresses_ = true;
 
@@ -53,8 +55,10 @@
 void TestDataCreator::MaybeAddTestCreditCards(
     const base::RepeatingCallback<void(const CreditCard&)>& add_cc_callback) {
   if (has_created_test_credit_cards_ ||
-      !base::FeatureList::IsEnabled(features::kAutofillCreateDataForTest))
+      !base::FeatureList::IsEnabled(
+          features::test::kAutofillCreateDataForTest)) {
     return;
+  }
 
   has_created_test_credit_cards_ = true;
 
diff --git a/components/autofill/core/browser/field_types.cc b/components/autofill/core/browser/field_types.cc
index a3b1ba8..550b16d6 100644
--- a/components/autofill/core/browser/field_types.cc
+++ b/components/autofill/core/browser/field_types.cc
@@ -33,7 +33,7 @@
            // Fax numbers (values [20,24]) are deprecated.
            !(20 <= t && t <= 24) &&
            // Reserved for server-side only use.
-           t != 127 && !(130 <= t && t <= 132);
+           t != 127 && !(130 <= t && t <= 133);
   };
   return IsValid(raw_value) ? static_cast<ServerFieldType>(raw_value)
                             : fallback_value;
diff --git a/components/autofill/core/browser/field_types.h b/components/autofill/core/browser/field_types.h
index 5591def..46499f6 100644
--- a/components/autofill/core/browser/field_types.h
+++ b/components/autofill/core/browser/field_types.h
@@ -356,7 +356,7 @@
   // One-time code used for verifying user identity.
   ONE_TIME_CODE = 129,
 
-  // Reserved for a server-side-only use: 130-132
+  // Reserved for a server-side-only use: 130-133
 
   // No new types can be added without a corresponding change to the Autofill
   // server.
@@ -365,7 +365,7 @@
   // - `AutofillServerFieldType`
   // - `AutofilledFieldUserEditingStatusByFieldType` (16 * type + x)
   // - `AutofillPredictionsComparisonResult` (6 * type + x)
-  MAX_VALID_FIELD_TYPE = 133,
+  MAX_VALID_FIELD_TYPE = 134,
 };
 
 enum class FieldTypeGroup {
diff --git a/components/autofill/core/browser/form_structure.cc b/components/autofill/core/browser/form_structure.cc
index c0e95771..b658d23c 100644
--- a/components/autofill/core/browser/form_structure.cc
+++ b/components/autofill/core/browser/form_structure.cc
@@ -83,7 +83,7 @@
 bool HasAllowedScheme(const GURL& url) {
   return url.SchemeIsHTTPOrHTTPS() ||
          base::FeatureList::IsEnabled(
-             features::kAutofillAllowNonHttpActivation);
+             features::test::kAutofillAllowNonHttpActivation);
 }
 
 // Helper for |EncodeUploadRequest()| that creates a bit field corresponding to
diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc
index 9da37a2..af14c327f 100644
--- a/components/autofill/core/browser/personal_data_manager_unittest.cc
+++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
@@ -4820,7 +4820,7 @@
 
   // Turn on test data creation for the rest of this scope.
   base::test::ScopedFeatureList enabled;
-  enabled.InitAndEnableFeature(features::kAutofillCreateDataForTest);
+  enabled.InitAndEnableFeature(features::test::kAutofillCreateDataForTest);
 
   // Reloading the test profile should result in test data being created.
   ResetPersonalDataManager(USER_MODE_NORMAL);
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
index 3647fddf..a039cca 100644
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
@@ -57,13 +57,6 @@
              "AutofillAllowDuplicateFormSubmissions",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
-// Controls whether autofill activates on non-HTTP(S) pages. Useful for
-// automated with data URLS in cases where it's too difficult to use the
-// embedded test server. Generally avoid using.
-BASE_FEATURE(kAutofillAllowNonHttpActivation,
-             "AutofillAllowNonHttpActivation",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
 // If enabled, the two most recent address forms and the most recent credit card
 // forms, which were submitted on the same origin, are associated with each
 // other. The association only happens if at most `kAutofillAssociateFormsTTL`
@@ -74,45 +67,6 @@
 const base::FeatureParam<base::TimeDelta> kAutofillAssociateFormsTTL{
     &kAutofillAssociateForms, "associate_forms_ttl", base::Minutes(5)};
 
-// Testing tool that collects metrics during a run of the captured site tests
-// and dumps the collected metrics into a specified output directory.
-// For each test, a file named {test-name}.txt is created. It contains all the
-// collected metrics in the following format.
-// histogram-name-1
-// bucket value
-// ...
-// histogram-name-2
-// ...
-// The set of metrics can be restricted using
-// `kAutofillCapturedSiteTestsMetricsScraperMetricNames`.
-// It is helpful in conjunction with `tools/captured_sites/metrics-scraper.py`.
-BASE_FEATURE(kAutofillCapturedSiteTestsMetricsScraper,
-             "AutofillCapturedSiteTestsMetricsScraper",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-// Name of the directory to write the results into.
-const base::FeatureParam<std::string>
-    kAutofillCapturedSiteTestsMetricsScraperOutputDir{
-        &kAutofillCapturedSiteTestsMetricsScraper, "output_dir", "/tmp/"};
-// A regex matching the histogram names that should be dumped. If not specified,
-// the metrics of all histograms dumped.
-const base::FeatureParam<std::string>
-    kAutofillCapturedSiteTestsMetricsScraperHistogramRegex{
-        &kAutofillCapturedSiteTestsMetricsScraper, "histogram_regex", ""};
-
-// If enabled, Autofill will not apply updates to address profiles based on data
-// extracted from submitted forms. This feature is mostly for debugging and
-// testing purposes and is not supposed to be launched.
-BASE_FEATURE(kAutofillDisableProfileUpdates,
-             "AutofillDisableProfileUpdates",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
-// If enabled, Autofill will not apply silent updates to the structure of
-// addresses and names. This feature is mostly for debugging and testing
-// purposes and is not supposed to be launched.
-BASE_FEATURE(kAutofillDisableSilentProfileUpdates,
-             "AutofillDisableSilentProfileUpdates",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
 // When enabled, Autofill ignores invalid country information on import, which
 // would otherwise prevent an import. Instead, ignoring it will trigger the
 // country complemention logic.
@@ -143,11 +97,6 @@
              "AutofillConsiderPhoneNumberSeparatorsValidLabels",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
-// If enabled, three address profiles are created for testing.
-BASE_FEATURE(kAutofillCreateDataForTest,
-             "AutofillCreateDataForTest",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
 // If enabled, the last blur votes per form signature are sent not the first
 // ones.
 // TODO(crbug.com/1383502): Cleanup when this has proven on stable.
@@ -506,16 +455,6 @@
 const base::FeatureParam<int> kAutofillServerBehaviorsParam{
     &kAutofillServerBehaviors, "server_prediction_source", 0};
 
-// Enables or Disables (mostly for hermetic testing) autofill server
-// communication. The URL of the autofill server can further be controlled via
-// the autofill-server-url param. The given URL should specify the complete
-// autofill server API url up to the parent "directory" of the "query" and
-// "upload" resources.
-// i.e., https://other.autofill.server:port/tbproxy/af/
-BASE_FEATURE(kAutofillServerCommunication,
-             "AutofillServerCommunication",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 // Controls whether Autofill may fill across origins as part of the
 // AutofillAcrossIframes experiment.
 // TODO(crbug.com/1304721): Clean up when launched.
@@ -540,12 +479,6 @@
              "AutofillShowManualFallbackInContextMenu",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
-// Controls attaching the autofill type predictions to their respective
-// element in the DOM.
-BASE_FEATURE(kAutofillShowTypePredictions,
-             "AutofillShowTypePredictions",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
 // Allows silent profile updates even when the profile import requirements are
 // not met.
 BASE_FEATURE(kAutofillSilentProfileUpdateForInsufficientImport,
@@ -572,11 +505,6 @@
              "AutofillTokenPrefixMatching",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
-// Autofill upload throttling is used for testing.
-BASE_FEATURE(kAutofillUploadThrottling,
-             "AutofillUploadThrottling",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 // Controls whether to use the AutofillUseAlternativeStateNameMap for filling
 // of state selection fields, comparison of profiles and sending state votes to
 // the server.
@@ -701,4 +629,80 @@
 }
 #endif  // BUILDFLAG(IS_ANDROID)
 
+namespace test {
+
+// Controls whether autofill activates on non-HTTP(S) pages. Useful for
+// automated tests with data URLS in cases where it's too difficult to use the
+// embedded test server. Generally avoid using.
+BASE_FEATURE(kAutofillAllowNonHttpActivation,
+             "AutofillAllowNonHttpActivation",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
+// Testing tool that collects metrics during a run of the captured site tests
+// and dumps the collected metrics into a specified output directory.
+// For each test, a file named {test-name}.txt is created. It contains all the
+// collected metrics in the following format.
+// histogram-name-1
+// bucket value
+// ...
+// histogram-name-2
+// ...
+// The set of metrics can be restricted using
+// `kAutofillCapturedSiteTestsMetricsScraperMetricNames`.
+// It is helpful in conjunction with `tools/captured_sites/metrics-scraper.py`.
+BASE_FEATURE(kAutofillCapturedSiteTestsMetricsScraper,
+             "AutofillCapturedSiteTestsMetricsScraper",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+// Name of the directory to write the results into.
+const base::FeatureParam<std::string>
+    kAutofillCapturedSiteTestsMetricsScraperOutputDir{
+        &kAutofillCapturedSiteTestsMetricsScraper, "output_dir", "/tmp/"};
+// A regex matching the histogram names that should be dumped. If not specified,
+// the metrics of all histograms dumped.
+const base::FeatureParam<std::string>
+    kAutofillCapturedSiteTestsMetricsScraperHistogramRegex{
+        &kAutofillCapturedSiteTestsMetricsScraper, "histogram_regex", ""};
+
+// If enabled, Autofill will not apply updates to address profiles based on data
+// extracted from submitted forms. This feature is mostly for debugging and
+// testing purposes and is not supposed to be launched.
+BASE_FEATURE(kAutofillDisableProfileUpdates,
+             "AutofillDisableProfileUpdates",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
+// If enabled, Autofill will not apply silent updates to the structure of
+// addresses and names. This feature is mostly for debugging and testing
+// purposes and is not supposed to be launched.
+BASE_FEATURE(kAutofillDisableSilentProfileUpdates,
+             "AutofillDisableSilentProfileUpdates",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
+// If enabled, three address profiles are created for testing.
+BASE_FEATURE(kAutofillCreateDataForTest,
+             "AutofillCreateDataForTest",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
+// Enables or Disables (mostly for hermetic testing) autofill server
+// communication. The URL of the autofill server can further be controlled via
+// the autofill-server-url param. The given URL should specify the complete
+// autofill server API url up to the parent "directory" of the "query" and
+// "upload" resources.
+// i.e., https://other.autofill.server:port/tbproxy/af/
+BASE_FEATURE(kAutofillServerCommunication,
+             "AutofillServerCommunication",
+             base::FEATURE_ENABLED_BY_DEFAULT);
+
+// Controls attaching the autofill type predictions to their respective
+// element in the DOM.
+BASE_FEATURE(kAutofillShowTypePredictions,
+             "AutofillShowTypePredictions",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
+// Autofill upload throttling is used for testing.
+BASE_FEATURE(kAutofillUploadThrottling,
+             "AutofillUploadThrottling",
+             base::FEATURE_ENABLED_BY_DEFAULT);
+
+}  // namespace test
+
 }  // namespace autofill::features
diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h
index 2c619b7..7a1e4bd 100644
--- a/components/autofill/core/common/autofill_features.h
+++ b/components/autofill/core/common/autofill_features.h
@@ -29,21 +29,8 @@
 BASE_DECLARE_FEATURE(kAutofillAddressProfileSavePromptNicknameSupport);
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillAllowDuplicateFormSubmissions);
-COMPONENT_EXPORT(AUTOFILL)
-BASE_DECLARE_FEATURE(kAutofillAllowNonHttpActivation);
 COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillAssociateForms);
 COMPONENT_EXPORT(AUTOFILL)
-BASE_DECLARE_FEATURE(kAutofillCapturedSiteTestsMetricsScraper);
-COMPONENT_EXPORT(AUTOFILL)
-extern const base::FeatureParam<std::string>
-    kAutofillCapturedSiteTestsMetricsScraperOutputDir;
-COMPONENT_EXPORT(AUTOFILL)
-extern const base::FeatureParam<std::string>
-    kAutofillCapturedSiteTestsMetricsScraperHistogramRegex;
-COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillDisableProfileUpdates);
-COMPONENT_EXPORT(AUTOFILL)
-BASE_DECLARE_FEATURE(kAutofillDisableSilentProfileUpdates);
-COMPONENT_EXPORT(AUTOFILL)
 extern const base::FeatureParam<base::TimeDelta> kAutofillAssociateFormsTTL;
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillIgnoreInvalidCountryOnImport);
@@ -61,7 +48,6 @@
 BASE_DECLARE_FEATURE(kAutofillDelayBlurVotes);
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillEnableWithinFencedFrame);
-COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillCreateDataForTest);
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillFillAndImportFromMoreFields);
 COMPONENT_EXPORT(AUTOFILL)
@@ -161,7 +147,6 @@
 COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillServerBehaviors);
 COMPONENT_EXPORT(AUTOFILL)
 extern const base::FeatureParam<int> kAutofillServerBehaviorsParam;
-COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillServerCommunication);
 COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillSharedAutofill);
 COMPONENT_EXPORT(AUTOFILL)
 extern const base::FeatureParam<bool> kAutofillSharedAutofillRelaxedParam;
@@ -169,13 +154,11 @@
 BASE_DECLARE_FEATURE(kAutofillShowAutocompleteDeleteButton);
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillShowManualFallbackInContextMenu);
-COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillShowTypePredictions);
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillSilentProfileUpdateForInsufficientImport);
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillSkipComparingInferredLabels);
 COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillTokenPrefixMatching);
-COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillUploadThrottling);
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillSupportPoorMansPlaceholder);
 COMPONENT_EXPORT(AUTOFILL)
@@ -244,6 +227,30 @@
 bool IsAutofillManualFallbackEnabled();
 #endif  // BUILDFLAG(IS_ANDROID)
 
+// The features in this namespace contains are not meant to be rolled out. They
+// are are only intended for manual testing purposes.
+namespace test {
+
+COMPONENT_EXPORT(AUTOFILL)
+BASE_DECLARE_FEATURE(kAutofillAllowNonHttpActivation);
+COMPONENT_EXPORT(AUTOFILL)
+BASE_DECLARE_FEATURE(kAutofillCapturedSiteTestsMetricsScraper);
+COMPONENT_EXPORT(AUTOFILL)
+extern const base::FeatureParam<std::string>
+    kAutofillCapturedSiteTestsMetricsScraperOutputDir;
+COMPONENT_EXPORT(AUTOFILL)
+extern const base::FeatureParam<std::string>
+    kAutofillCapturedSiteTestsMetricsScraperHistogramRegex;
+COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillDisableProfileUpdates);
+COMPONENT_EXPORT(AUTOFILL)
+BASE_DECLARE_FEATURE(kAutofillDisableSilentProfileUpdates);
+COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillCreateDataForTest);
+COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillServerCommunication);
+COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillShowTypePredictions);
+COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillUploadThrottling);
+
+}  // namespace test
+
 }  // namespace autofill::features
 
 #endif  // COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_FEATURES_H_
diff --git a/components/autofill/ios/browser/autofill_agent.mm b/components/autofill/ios/browser/autofill_agent.mm
index 40b9534e..c318cfd8 100644
--- a/components/autofill/ios/browser/autofill_agent.mm
+++ b/components/autofill/ios/browser/autofill_agent.mm
@@ -560,7 +560,7 @@
             (const std::vector<autofill::FormDataPredictions>&)forms
                         inFrame:(web::WebFrame*)frame {
   if (!base::FeatureList::IsEnabled(
-          autofill::features::kAutofillShowTypePredictions)) {
+          autofill::features::test::kAutofillShowTypePredictions)) {
     return;
   }
 
diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
index deb06a3..b4f1ae4d 100644
--- a/components/browser_ui/site_settings/android/BUILD.gn
+++ b/components/browser_ui/site_settings/android/BUILD.gn
@@ -217,7 +217,10 @@
     "java/res/drawable-xxxhdpi/settings_sensors.png",
     "java/res/drawable-xxxhdpi/web_asset.png",
     "java/res/drawable/gm_database_24.xml",
+    "java/res/drawable/ic_account_attention.xml",
+    "java/res/drawable/ic_background_replace.xml",
     "java/res/drawable/ic_block.xml",
+    "java/res/drawable/ic_dashboard.xml",
     "java/res/drawable/ic_person_24dp.xml",
     "java/res/drawable/settings_bluetooth.xml",
     "java/res/layout/add_site_dialog.xml",
diff --git a/components/browser_ui/site_settings/android/java/res/drawable/ic_account_attention.xml b/components/browser_ui/site_settings/android/java/res/drawable/ic_account_attention.xml
new file mode 100644
index 0000000..8983acb
--- /dev/null
+++ b/components/browser_ui/site_settings/android/java/res/drawable/ic_account_attention.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2023 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:fillColor="@macro/default_icon_color"
+      android:pathData="M 18.085938 8 L 18.085938 4.199219 L 19.800781 4.199219 L 19.800781 8.867188 L 18.085938 8.867188 Z M 18.085938 11.800781 L 19.800781 11.800781 L 19.800781 10.066406 L 18.085938 10.066406 Z M 11.65625 13.132812 C 13.945312 13.132812 18.515625 14.292969 18.515625 16.601562 L 18.515625 19.199219 L 4.800781 19.199219 L 4.800781 16.601562 C 4.800781 14.292969 9.367188 13.132812 11.65625 13.132812 Z M 11.65625 5.332031 C 12.566406 5.332031 13.4375 5.699219 14.082031 6.347656 C 14.722656 7 15.085938 7.878906 15.085938 8.800781 C 15.085938 9.71875 14.722656 10.601562 14.082031 11.25 C 13.4375 11.902344 12.566406 12.265625 11.65625 12.265625 C 10.746094 12.265625 9.875 11.902344 9.234375 11.25 C 8.589844 10.601562 8.230469 9.71875 8.230469 8.800781 C 8.230469 7.878906 8.589844 7 9.234375 6.347656 C 9.875 5.699219 10.746094 5.332031 11.65625 5.332031 Z M 11.65625 14.78125 C 9.113281 14.78125 6.429688 16.046875 6.429688 16.601562 L 6.429688 17.554688 L 16.886719 17.554688 L 16.886719 16.601562 C 16.886719 16.046875 14.203125 14.78125 11.65625 14.78125 Z M 11.65625 6.980469 C 11.179688 6.980469 10.722656 7.171875 10.382812 7.511719 C 10.046875 7.855469 9.855469 8.316406 9.855469 8.800781 C 9.855469 9.28125 10.046875 9.746094 10.382812 10.085938 C 10.722656 10.429688 11.179688 10.621094 11.65625 10.621094 C 12.132812 10.621094 12.59375 10.429688 12.929688 10.085938 C 13.265625 9.746094 13.457031 9.28125 13.457031 8.800781 C 13.457031 8.316406 13.265625 7.855469 12.929688 7.511719 C 12.59375 7.171875 12.132812 6.980469 11.65625 6.980469 Z M 11.65625 6.980469" />
+</vector>
diff --git a/components/browser_ui/site_settings/android/java/res/drawable/ic_background_replace.xml b/components/browser_ui/site_settings/android/java/res/drawable/ic_background_replace.xml
new file mode 100644
index 0000000..f7fb799
--- /dev/null
+++ b/components/browser_ui/site_settings/android/java/res/drawable/ic_background_replace.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2023 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:fillColor="@macro/default_icon_color"
+      android:pathData="M3,9.65V7.525L7.525,3H9.65ZM3,4.75V3H4.75ZM16.175,6.425Q15.925,6.15 15.638,5.887Q15.35,5.625 15.05,5.425L17.475,3H19.6ZM5.5,14.975 L7.425,13.05Q7.6,13.325 7.788,13.55Q7.975,13.775 8.2,13.975Q7.5,14.15 6.787,14.412Q6.075,14.675 5.5,14.975ZM17.5,10.05Q17.5,10.025 17.5,10.025Q17.5,10.025 17.5,10Q17.5,9.525 17.425,9.075Q17.35,8.625 17.2,8.2L21,4.4V6.55ZM10.9,4.6 L12.525,3H14.65L13.05,4.6Q12.775,4.55 12.525,4.525Q12.275,4.5 12,4.5Q11.725,4.5 11.45,4.525Q11.175,4.55 10.9,4.6ZM3,14.625V12.5L6.6,8.9Q6.55,9.175 6.525,9.45Q6.5,9.725 6.5,10Q6.5,10.275 6.525,10.525Q6.55,10.775 6.6,11.025ZM20.725,16.7Q20.525,16.4 20.263,16.125Q20,15.85 19.7,15.625L21,14.325V16.45ZM17.825,14.65Q17.65,14.575 17.475,14.512Q17.3,14.45 17.125,14.4Q16.9,14.325 16.688,14.25Q16.475,14.175 16.25,14.125L21,9.35V11.5ZM12,14Q10.35,14 9.175,12.825Q8,11.65 8,10Q8,8.35 9.175,7.175Q10.35,6 12,6Q13.65,6 14.825,7.175Q16,8.35 16,10Q16,11.65 14.825,12.825Q13.65,14 12,14ZM12,12Q12.825,12 13.413,11.412Q14,10.825 14,10Q14,9.175 13.413,8.587Q12.825,8 12,8Q11.175,8 10.588,8.587Q10,9.175 10,10Q10,10.825 10.588,11.412Q11.175,12 12,12ZM4,21V19.225Q4,18.375 4.425,17.65Q4.85,16.925 5.6,16.55Q6.875,15.9 8.488,15.45Q10.1,15 12,15Q13.9,15 15.512,15.45Q17.125,15.9 18.4,16.55Q19.15,16.925 19.575,17.65Q20,18.375 20,19.225V21ZM6.025,19H17.975Q17.925,18.775 17.8,18.612Q17.675,18.45 17.475,18.35Q16.575,17.9 15.188,17.45Q13.8,17 12,17Q10.2,17 8.812,17.45Q7.425,17.9 6.525,18.35Q6.325,18.45 6.2,18.625Q6.075,18.8 6.025,19Z" />
+</vector>
\ No newline at end of file
diff --git a/components/browser_ui/site_settings/android/java/res/drawable/ic_dashboard.xml b/components/browser_ui/site_settings/android/java/res/drawable/ic_dashboard.xml
new file mode 100644
index 0000000..269f092
--- /dev/null
+++ b/components/browser_ui/site_settings/android/java/res/drawable/ic_dashboard.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2023 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:fillColor="@macro/default_icon_color"
+      android:pathData="M 3.601562 12.601562 L 3.601562 5.398438 C 3.601562 4.898438 3.773438 4.476562 4.125 4.125 C 4.492188 3.773438 4.917969 3.601562 5.398438 3.601562 L 11.101562 3.601562 L 11.101562 12.601562 Z M 12.898438 3.601562 L 18.601562 3.601562 C 19.101562 3.601562 19.523438 3.773438 19.875 4.125 C 20.226562 4.476562 20.398438 4.898438 20.398438 5.398438 L 20.398438 9.601562 L 12.898438 9.601562 Z M 12.898438 20.398438 L 12.898438 11.398438 L 20.398438 11.398438 L 20.398438 18.601562 C 20.398438 19.082031 20.226562 19.507812 19.875 19.875 C 19.523438 20.226562 19.101562 20.398438 18.601562 20.398438 Z M 3.601562 14.398438 L 11.101562 14.398438 L 11.101562 20.398438 L 5.398438 20.398438 C 4.917969 20.398438 4.492188 20.226562 4.125 19.875 C 3.773438 19.507812 3.601562 19.082031 3.601562 18.601562 Z M 5.398438 10.800781 L 9.300781 10.800781 L 9.300781 5.398438 L 5.398438 5.398438 Z M 14.699219 7.800781 L 18.601562 7.800781 L 18.601562 5.398438 L 14.699219 5.398438 Z M 14.699219 13.199219 L 14.699219 18.601562 L 18.601562 18.601562 L 18.601562 13.199219 Z M 5.398438 16.199219 L 5.398438 18.601562 L 9.300781 18.601562 L 9.300781 16.199219 Z M 5.398438 16.199219" />
+</vector>
diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
index b2a404b..43b94bc 100644
--- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
+++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
@@ -51,6 +51,10 @@
     <org.chromium.components.browser_ui.settings.ChromeBasePreference
         android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
         android:key="popups" />
+    <!-- Anti-abuse -->
+    <org.chromium.components.browser_ui.settings.ChromeBasePreference
+        android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
+        android:key="anti_abuse"/>
     <!-- Ads -->
     <org.chromium.components.browser_ui.settings.ChromeBasePreference
         android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences_with_categories.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences_with_categories.xml
index 94891c6a..309f69c 100644
--- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences_with_categories.xml
+++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences_with_categories.xml
@@ -95,6 +95,10 @@
     <org.chromium.components.browser_ui.settings.ChromeBasePreference
         android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
         android:key="sound" />
+    <!-- Anti-abuse -->
+    <org.chromium.components.browser_ui.settings.ChromeBasePreference
+        android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
+        android:key="anti_abuse"/>
     <!-- Ads -->
     <org.chromium.components.browser_ui.settings.ChromeBasePreference
         android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
diff --git a/components/browser_ui/site_settings/android/java/res/xml/website_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/website_preferences.xml
index 7ba3a59c..3210896 100644
--- a/components/browser_ui/site_settings/android/java/res/xml/website_preferences.xml
+++ b/components/browser_ui/site_settings/android/java/res/xml/website_preferences.xml
@@ -70,4 +70,28 @@
         android:key="blocked_group" />
     <org.chromium.components.browser_ui.settings.ExpandablePreferenceGroup
         android:key="allowed_group" />
+
+    <!-- Text messages describing the anti abuse features.
+         Only shown for the AntiAbuse category. -->
+    <PreferenceCategory
+        android:key="anti_abuse_when_on_header"
+        android:title="@string/anti_abuse_when_on_header"/>
+    <org.chromium.components.browser_ui.settings.TextMessagePreference
+        android:key="anti_abuse_when_on_section_one"
+        android:summary="@string/anti_abuse_when_on_section_one"
+        android:icon="@drawable/ic_dashboard"
+        app:allowDividerBelow="false" />
+    <org.chromium.components.browser_ui.settings.TextMessagePreference
+        android:key="anti_abuse_when_on_section_two"
+        android:summary="@string/anti_abuse_when_on_section_two"
+        android:icon="@drawable/ic_background_replace"
+        app:allowDividerBelow="false" />
+    <PreferenceCategory
+        android:key="anti_abuse_things_to_consider_header"
+        android:title="@string/anti_abuse_things_to_consider_header"/>
+    <org.chromium.components.browser_ui.settings.TextMessagePreference
+        android:key="anti_abuse_things_to_consider_section_one"
+        android:summary="@string/anti_abuse_things_to_consider_section_one"
+        android:icon="@drawable/ic_account_attention"
+        app:allowDividerBelow="false" />
 </PreferenceScreen>
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
index c03b6ea..c7c0f241 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
@@ -109,6 +109,12 @@
                                 ? R.string.site_settings_page_intrusive_blocked_sub_label
                                 : R.string.website_settings_category_ads_blocked);
 
+            case ContentSettingsType.ANTI_ABUSE:
+                return new ResourceItem(R.drawable.ic_account_attention,
+                        R.string.anti_abuse_permission_title, ContentSettingValues.ALLOW,
+                        ContentSettingValues.BLOCK, R.string.anti_abuse_description,
+                        R.string.anti_abuse_description);
+
             case ContentSettingsType.AR:
                 return new ResourceItem(R.drawable.gm_filled_cardboard_24,
                         R.string.ar_permission_title, ContentSettingValues.ASK,
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/GroupedWebsitesSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/GroupedWebsitesSettings.java
index 45dc941..e7348c6 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/GroupedWebsitesSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/GroupedWebsitesSettings.java
@@ -34,8 +34,6 @@
     public static final String PREF_SITES_IN_GROUP = "sites_in_group";
     public static final String PREF_RESET_GROUP = "reset_group_button";
 
-    private final SiteDataCleaner mSiteDataCleaner = new SiteDataCleaner();
-
     private WebsiteGroup mSiteGroup;
 
     private Dialog mConfirmationDialog;
@@ -138,9 +136,9 @@
     @VisibleForTesting
     public void resetGroup() {
         if (getActivity() == null) return;
-        mSiteDataCleaner.resetPermissions(
+        SiteDataCleaner.resetPermissions(
                 getSiteSettingsDelegate().getBrowserContextHandle(), mSiteGroup);
-        mSiteDataCleaner.clearData(getSiteSettingsDelegate().getBrowserContextHandle(), mSiteGroup,
+        SiteDataCleaner.clearData(getSiteSettingsDelegate().getBrowserContextHandle(), mSiteGroup,
                 mDataClearedCallback);
     }
 
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
index 61c7a51a..a8c06c4f 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -205,6 +205,13 @@
     public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_learn_more";
     public static final String ADD_EXCEPTION_KEY = "add_exception";
     public static final String INFO_TEXT_KEY = "info_text";
+    public static final String ANTI_ABUSE_WHEN_ON_HEADER = "anti_abuse_when_on_header";
+    public static final String ANTI_ABUSE_WHEN_ON_SECTION_ONE = "anti_abuse_when_on_section_one";
+    public static final String ANTI_ABUSE_WHEN_ON_SECTION_TWO = "anti_abuse_when_on_section_two";
+    public static final String ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER =
+            "anti_abuse_things_to_consider_header";
+    public static final String ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE =
+            "anti_abuse_things_to_consider_section_one";
 
     // Keys for Allowed/Blocked preference groups/headers.
     public static final String ALLOWED_GROUP = "allowed_group";
@@ -1152,6 +1159,25 @@
             screen.removePreference(infoText);
         }
 
+        // Hide the anti-abuse text preferences, as needed.
+        if (mCategory.getType() != SiteSettingsCategory.Type.ANTI_ABUSE) {
+            Preference antiAbuseWhenOnHeader = screen.findPreference(ANTI_ABUSE_WHEN_ON_HEADER);
+            Preference antiAbuseWhenOnSectionOne =
+                    screen.findPreference(ANTI_ABUSE_WHEN_ON_SECTION_ONE);
+            Preference antiAbuseWhenOnSectionTwo =
+                    screen.findPreference(ANTI_ABUSE_WHEN_ON_SECTION_TWO);
+            Preference antiAbuseThingsToConsiderHeader =
+                    screen.findPreference(ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER);
+            Preference antiAbuseThingsToConsiderSectionOne =
+                    screen.findPreference(ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE);
+
+            screen.removePreference(antiAbuseWhenOnHeader);
+            screen.removePreference(antiAbuseWhenOnSectionOne);
+            screen.removePreference(antiAbuseWhenOnSectionTwo);
+            screen.removePreference(antiAbuseThingsToConsiderHeader);
+            screen.removePreference(antiAbuseThingsToConsiderSectionOne);
+        }
+
         if (permissionBlockedByOs) {
             maybeShowOsWarning(screen);
 
@@ -1480,6 +1506,9 @@
      * @return Whether exceptions should be added for the category.
      */
     private boolean shouldAddExceptionsForCategory() {
+        if (mCategory.getType() == SiteSettingsCategory.Type.ANTI_ABUSE) {
+            return false;
+        }
         if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE
                 && !ContentFeatureList.isEnabled(ContentFeatureList.REQUEST_DESKTOP_SITE_EXCEPTIONS)
                 && SiteSettingsFeatureList.isEnabled(
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
index 0b4f8a4..fb060c1 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -191,8 +191,6 @@
     // The callback to be run after this site is reset.
     private Observer mWebsiteSettingsObserver;
 
-    private final SiteDataCleaner mSiteDataCleaner = new SiteDataCleaner();
-
     // The website this page is displaying details about.
     private Website mSite;
 
@@ -346,8 +344,8 @@
             }
             Callback<Boolean> onDialogClosed = (Boolean confirmed) -> {
                 if (confirmed) {
-                    mSite.clearAllStoredData(getSiteSettingsDelegate().getBrowserContextHandle(),
-                            mDataClearedCallback::run);
+                    SiteDataCleaner.clearData(getSiteSettingsDelegate().getBrowserContextHandle(),
+                            mSite, mDataClearedCallback);
                 }
             };
             ClearWebsiteStorageDialog dialogFragment =
@@ -1176,7 +1174,7 @@
                         .setPositiveButton(buttonResId,
                                 (dialog, which) -> {
                                     if (mHideNonPermissionPreferences) {
-                                        mSiteDataCleaner.resetPermissions(
+                                        SiteDataCleaner.resetPermissions(
                                                 getSiteSettingsDelegate().getBrowserContextHandle(),
                                                 mSite);
                                     } else {
@@ -1216,9 +1214,9 @@
         boolean finishActivityImmediately =
                 mSite.getTotalUsage() == 0 && mObjectPolicyPermissionCount == 0;
 
-        mSiteDataCleaner.resetPermissions(
+        SiteDataCleaner.resetPermissions(
                 getSiteSettingsDelegate().getBrowserContextHandle(), mSite);
-        mSiteDataCleaner.clearData(
+        SiteDataCleaner.clearData(
                 getSiteSettingsDelegate().getBrowserContextHandle(), mSite, mDataClearedCallback);
 
         int navigationSource = getArguments().getInt(
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteDataCleaner.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteDataCleaner.java
index 8802314..4725b62 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteDataCleaner.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteDataCleaner.java
@@ -19,7 +19,7 @@
      * Clears the data of the specified site.
      * @param finishCallback is called when finished.
      */
-    public void clearData(
+    public static void clearData(
             BrowserContextHandle browserContextHandle, Website site, Runnable finishCallback) {
         String origin = site.getAddress().getOrigin();
         WebsitePreferenceBridgeJni.get().clearCookieData(browserContextHandle, origin);
@@ -32,7 +32,7 @@
      * Clears the data for each of the sites in a given group.
      * @param finishCallback is called when the entire operation is finished.
      */
-    public void clearData(
+    public static void clearData(
             BrowserContextHandle contextHandle, WebsiteGroup group, Runnable finishCallback) {
         final AtomicInteger callbacksReceived = new AtomicInteger(0);
         List<Website> sites = group.getWebsites();
@@ -50,7 +50,7 @@
     /**
      * Resets the permissions of the specified site.
      */
-    public void resetPermissions(BrowserContextHandle browserContextHandle, Website site) {
+    public static void resetPermissions(BrowserContextHandle browserContextHandle, Website site) {
         // Clear the permissions.
         for (ContentSettingException exception : site.getContentSettingExceptions()) {
             site.setContentSetting(browserContextHandle, exception.getContentSettingType(),
@@ -69,7 +69,8 @@
     /**
      * Resets the permissions for each of the sites in a given group.
      */
-    public void resetPermissions(BrowserContextHandle browserContextHandle, WebsiteGroup group) {
+    public static void resetPermissions(
+            BrowserContextHandle browserContextHandle, WebsiteGroup group) {
         for (Website site : group.getWebsites()) {
             resetPermissions(browserContextHandle, site);
         }
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
index ac5c71ff..b283b86 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
@@ -46,7 +46,7 @@
             Type.JAVASCRIPT, Type.MICROPHONE, Type.NFC, Type.NOTIFICATIONS, Type.POPUPS,
             Type.PROTECTED_MEDIA, Type.SENSORS, Type.SOUND, Type.USB, Type.VIRTUAL_REALITY,
             Type.USE_STORAGE, Type.AUTO_DARK_WEB_CONTENT, Type.REQUEST_DESKTOP_SITE,
-            Type.FEDERATED_IDENTITY_API, Type.THIRD_PARTY_COOKIES, Type.SITE_DATA,
+            Type.FEDERATED_IDENTITY_API, Type.THIRD_PARTY_COOKIES, Type.SITE_DATA, Type.ANTI_ABUSE,
             Type.NUM_ENTRIES})
     @Retention(RetentionPolicy.SOURCE)
     public @interface Type {
@@ -80,10 +80,11 @@
         int FEDERATED_IDENTITY_API = 25;
         int THIRD_PARTY_COOKIES = 26;
         int SITE_DATA = 27;
+        int ANTI_ABUSE = 28;
         /**
          * Number of handled categories used for calculating array sizes.
          */
-        int NUM_ENTRIES = 28;
+        int NUM_ENTRIES = 29;
     }
 
     private final BrowserContextHandle mBrowserContextHandle;
@@ -162,6 +163,8 @@
         switch (type) {
             case Type.ADS:
                 return ContentSettingsType.ADS;
+            case Type.ANTI_ABUSE:
+                return ContentSettingsType.ANTI_ABUSE;
             case Type.AUGMENTED_REALITY:
                 return ContentSettingsType.AR;
             case Type.AUTO_DARK_WEB_CONTENT:
@@ -241,6 +244,8 @@
         switch (type) {
             case Type.ADS:
                 return "ads";
+            case Type.ANTI_ABUSE:
+                return "anti_abuse";
             case Type.AUGMENTED_REALITY:
                 return "augmented_reality";
             case Type.AUTO_DARK_WEB_CONTENT:
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
index a601ca8d..df9c411 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
@@ -63,6 +63,7 @@
             @ContentSettingsType int contentSettingsType) {
         switch (contentSettingsType) {
             case ContentSettingsType.ADS:
+            case ContentSettingsType.ANTI_ABUSE:
             case ContentSettingsType.AUTO_DARK_WEB_CONTENT:
             case ContentSettingsType.AUTOMATIC_DOWNLOADS:
             case ContentSettingsType.BACKGROUND_SYNC:
diff --git a/components/browser_ui/site_settings/android/junit/src/org/chromium/components/browser_ui/site_settings/SiteDataCleanerUnitTest.java b/components/browser_ui/site_settings/android/junit/src/org/chromium/components/browser_ui/site_settings/SiteDataCleanerUnitTest.java
index f19d98f6..3352902d 100644
--- a/components/browser_ui/site_settings/android/junit/src/org/chromium/components/browser_ui/site_settings/SiteDataCleanerUnitTest.java
+++ b/components/browser_ui/site_settings/android/junit/src/org/chromium/components/browser_ui/site_settings/SiteDataCleanerUnitTest.java
@@ -38,13 +38,10 @@
     @Mock
     private BrowserContextHandle mContextHandle;
 
-    private SiteDataCleaner mSiteDataCleaner;
-
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mJniMocker.mock(WebsitePreferenceBridgeJni.TEST_HOOKS, mBridgeMock);
-        mSiteDataCleaner = new SiteDataCleaner();
     }
 
     @Test
@@ -58,7 +55,7 @@
         final Runnable callback = () -> {
             callbacksReceived.incrementAndGet();
         };
-        mSiteDataCleaner.clearData(mContextHandle, group, callback);
+        SiteDataCleaner.clearData(mContextHandle, group, callback);
         // Check that the callback was invoked only once.
         Assert.assertEquals(1, callbacksReceived.get());
         // Verify that the bridge is called for each of the websites.
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
index 402eca6..353b36b 100644
--- a/components/browser_ui/site_settings/android/website_preference_bridge.cc
+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc
@@ -816,6 +816,7 @@
         value = CONTENT_SETTING_ASK;
         break;
       case ContentSettingsType::ADS:
+      case ContentSettingsType::ANTI_ABUSE:
       case ContentSettingsType::AUTO_DARK_WEB_CONTENT:
       case ContentSettingsType::BACKGROUND_SYNC:
       case ContentSettingsType::COOKIES:
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
index 447df7f..89afb5fa 100644
--- a/components/browser_ui/strings/android/site_settings.grdp
+++ b/components/browser_ui/strings/android/site_settings.grdp
@@ -19,6 +19,9 @@
   <message name="IDS_ADS_PERMISSION_TITLE" desc="Title for the ads permission [CHAR_LIMIT=32]">
     Ads
   </message>
+  <message name="IDS_ANTI_ABUSE_PERMISSION_TITLE" desc="Title for the anti-abuse permission [CHAR_LIMIT=32]">
+    Spam &amp; fraud reduction
+  </message>
   <message name="IDS_AR_PERMISSION_TITLE" desc="Title of the permission to use Augmented Reality [CHAR_LIMIT=32]">
     Augmented reality
   </message>
@@ -344,6 +347,32 @@
     Ads are blocked on sites known to show intrusive or misleading ads
   </message>
 
+  <!-- Anti-abuse -->
+
+  <message name="IDS_ANTI_ABUSE_DESCRIPTION" desc="A setting that, if turned on, will enable anti-abuse functionality.">
+    Sites you visit can validate that you're a real user and not a bot
+  </message>
+
+  <message name="IDS_ANTI_ABUSE_WHEN_ON_HEADER" desc="Header text for the section which describes functionality when the 'anti-abuse' setting is enabled.">
+    When on
+  </message>
+
+  <message name="IDS_ANTI_ABUSE_WHEN_ON_SECTION_ONE" desc="Summary text explaining that browsing is smoother when the 'anti-abuse' setting is enabled.">
+    Browsing is smoother, as you're more likely trusted from one site to the next.
+  </message>
+
+  <message name="IDS_ANTI_ABUSE_WHEN_ON_SECTION_TWO" desc="Summary text explaining that the anti-abuse features do not reveal your browsing history.">
+    This setting works without identifying you or allowing sites to see your browsing history.
+  </message>
+
+  <message name="IDS_ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER" desc="Header text for the section explaining additional things to consider when the 'anti-abuse' setting is enabled.">
+    Things to consider
+  </message>
+
+  <message name="IDS_ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE" desc="Summary text explaining that sites can save info with Chrome when the 'anti-abuse' setting is enabled.">
+    A site you visit can save info with Chrome that validates that you're a real user. As you keep browsing, sites can check with Chrome and verify from the first site that you're likely a trusted user.
+  </message>
+
   <!-- Augmented reality -->
 
   <message name="IDS_WEBSITE_SETTINGS_CATEGORY_AR_ASK" desc="Summary text explaining that sites need to ask for permission before using AR and that it is the recommended setting.">
diff --git a/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_DESCRIPTION.png.sha1 b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..83d829c8
--- /dev/null
+++ b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+04cabea0234b679fed20d3529aec4f0bb384c819
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_PERMISSION_TITLE.png.sha1 b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_PERMISSION_TITLE.png.sha1
new file mode 100644
index 0000000..0d47219
--- /dev/null
+++ b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_PERMISSION_TITLE.png.sha1
@@ -0,0 +1 @@
+cc459a974839def03d19f7099149282d1ece6388
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER.png.sha1 b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER.png.sha1
new file mode 100644
index 0000000..83d829c8
--- /dev/null
+++ b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_THINGS_TO_CONSIDER_HEADER.png.sha1
@@ -0,0 +1 @@
+04cabea0234b679fed20d3529aec4f0bb384c819
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE.png.sha1 b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE.png.sha1
new file mode 100644
index 0000000..83d829c8
--- /dev/null
+++ b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_THINGS_TO_CONSIDER_SECTION_ONE.png.sha1
@@ -0,0 +1 @@
+04cabea0234b679fed20d3529aec4f0bb384c819
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_WHEN_ON_HEADER.png.sha1 b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_WHEN_ON_HEADER.png.sha1
new file mode 100644
index 0000000..83d829c8
--- /dev/null
+++ b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_WHEN_ON_HEADER.png.sha1
@@ -0,0 +1 @@
+04cabea0234b679fed20d3529aec4f0bb384c819
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_WHEN_ON_SECTION_ONE.png.sha1 b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_WHEN_ON_SECTION_ONE.png.sha1
new file mode 100644
index 0000000..83d829c8
--- /dev/null
+++ b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_WHEN_ON_SECTION_ONE.png.sha1
@@ -0,0 +1 @@
+04cabea0234b679fed20d3529aec4f0bb384c819
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_WHEN_ON_SECTION_TWO.png.sha1 b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_WHEN_ON_SECTION_TWO.png.sha1
new file mode 100644
index 0000000..83d829c8
--- /dev/null
+++ b/components/browser_ui/strings/android/site_settings_grdp/IDS_ANTI_ABUSE_WHEN_ON_SECTION_TWO.png.sha1
@@ -0,0 +1 @@
+04cabea0234b679fed20d3529aec4f0bb384c819
\ No newline at end of file
diff --git a/components/browser_watcher/BUILD.gn b/components/browser_watcher/BUILD.gn
deleted file mode 100644
index e22b601a..0000000
--- a/components/browser_watcher/BUILD.gn
+++ /dev/null
@@ -1,133 +0,0 @@
-# Copyright 2015 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//third_party/protobuf/proto_library.gni")
-
-if (is_win) {
-  proto_library("activity_report_proto") {
-    sources = [ "activity_report.proto" ]
-  }
-
-  static_library("browser_watcher_client") {
-    sources = [
-      "exit_code_watcher_win.cc",
-      "exit_code_watcher_win.h",
-    ]
-    deps = [
-      ":activity_report_proto",
-      ":stability_client",
-      ":stability_common",
-      "//base",
-      "//components/metrics",
-      "//third_party/crashpad/crashpad/client",
-    ]
-  }
-
-  # This target links into the crashpad handler which lives in chrome_elf.dll
-  # on Windows.
-  static_library("activity_report") {
-    sources = [
-      "activity_report_user_stream_data_source.cc",
-      "activity_report_user_stream_data_source.h",
-    ]
-    deps = [
-      ":activity_report_proto",
-      ":stability_client",
-      ":stability_common",
-      "//base",
-      "//third_party/crashpad/crashpad/client",
-      "//third_party/crashpad/crashpad/compat",
-      "//third_party/crashpad/crashpad/handler",
-      "//third_party/crashpad/crashpad/minidump",
-      "//third_party/crashpad/crashpad/snapshot",
-    ]
-  }
-
-  static_library("stability_common") {
-    sources = [
-      "activity_report_extractor.cc",
-      "activity_report_extractor.h",
-      "minidump_user_streams.h",
-    ]
-    deps = [
-      ":activity_report_proto",
-      ":stability_client",
-      "//base",
-      "//components/variations",
-      "//third_party/crashpad/crashpad/client:client",
-      "//third_party/crashpad/crashpad/util",
-    ]
-  }
-
-  static_library("stability_client") {
-    sources = [
-      "activity_data_names.cc",
-      "activity_data_names.h",
-      "activity_tracker_annotation.cc",
-      "activity_tracker_annotation.h",
-      "extended_crash_reporting.cc",
-      "extended_crash_reporting.h",
-      "extended_crash_reporting_metrics.cc",
-      "extended_crash_reporting_metrics.h",
-      "features.cc",
-      "features.h",
-    ]
-    deps = [
-      ":activity_report_proto",
-      "//base",
-      "//third_party/crashpad/crashpad/client",
-      "//third_party/crashpad/crashpad/util",
-    ]
-
-    # This needs to be a public dep because of base::win::PEImage.
-    public_deps = [ "//base:base_static" ]
-  }
-
-  source_set("unit_tests") {
-    testonly = true
-    sources = [
-      "activity_report_extractor_unittest.cc",
-      "activity_tracker_annotation_unittest.cc",
-      "exit_code_watcher_win_unittest.cc",
-      "extended_crash_reporting_win_unittest.cc",
-    ]
-    deps = [
-      ":activity_report_proto",
-      ":browser_watcher_client",
-      ":stability_client",
-      ":stability_common",
-      "//base",
-      "//base/test:test_support",
-      "//components/crash/core/common:crash_key",
-      "//components/metrics:metrics",
-      "//testing/gmock",
-      "//testing/gtest",
-      "//third_party/crashpad/crashpad/client",
-
-      # TODO(manzagop): remove this lib once Crashpad writes the minidumps.
-      "//third_party/crashpad/crashpad/minidump",
-      "//third_party/crashpad/crashpad/snapshot",
-      "//third_party/crashpad/crashpad/util",
-    ]
-  }
-
-  executable("dump_stability") {
-    sources = [ "dump_stability_report_main_win.cc" ]
-    deps = [
-      ":activity_report_proto",
-      "//base",
-    ]
-  }
-
-  executable("fetch_system_session_events") {
-    sources = [ "fetch_system_session_events_main_win.cc" ]
-    deps = [
-      ":activity_report_proto",
-      ":stability_client",
-      ":stability_common",
-      "//base",
-      "//components/metrics:metrics",
-    ]
-  }
-}
diff --git a/components/browser_watcher/DEPS b/components/browser_watcher/DEPS
deleted file mode 100644
index 84d074f..0000000
--- a/components/browser_watcher/DEPS
+++ /dev/null
@@ -1,6 +0,0 @@
-include_rules = [
-  "+components/metrics",
-  "+components/variations",
-  "+components/crash",
-  "+third_party/crashpad/crashpad",
-]
diff --git a/components/browser_watcher/DIR_METADATA b/components/browser_watcher/DIR_METADATA
deleted file mode 100644
index 440a9c5f..0000000
--- a/components/browser_watcher/DIR_METADATA
+++ /dev/null
@@ -1,3 +0,0 @@
-monorail {
-  component: "Internals>PlatformIntegration"
-}
diff --git a/components/browser_watcher/OWNERS b/components/browser_watcher/OWNERS
deleted file mode 100644
index 233f2b5..0000000
--- a/components/browser_watcher/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-jessemckenna@google.com
-joenotcharles@google.com
-
-chrisha@chromium.org # emeritus
diff --git a/components/browser_watcher/activity_data_names.cc b/components/browser_watcher/activity_data_names.cc
deleted file mode 100644
index e6040c5a..0000000
--- a/components/browser_watcher/activity_data_names.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/activity_data_names.h"
-
-namespace browser_watcher {
-
-const char kActivityChannel[] = "channel";
-const char kActivityExecutionPhase[] = "execution-phase";
-const char kActivityKeepAlive[] = "keep-alive";
-const char kActivityPlatform[] = "platform";
-const char kActivityProcessType[] = "ptype";
-const char kActivityProduct[] = "product";
-const char kActivityReporterChannel[] = "reporter-channel";
-const char kActivityReporterPlatform[] = "reporter-platform";
-const char kActivityReporterProduct[] = "reporter-product";
-const char kActivityReporterVersion[] = "reporter-version";
-const char kActivityRestartAllowed[] = "restart-allowed";
-const char kActivitySpecialBuild[] = "special-build";
-const char kActivityStartTimestamp[] = "start-timestamp";
-const char kActivityVersion[] = "version";
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/activity_data_names.h b/components/browser_watcher/activity_data_names.h
deleted file mode 100644
index 6d35036..0000000
--- a/components/browser_watcher/activity_data_names.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_BROWSER_WATCHER_ACTIVITY_DATA_NAMES_H_
-#define COMPONENTS_BROWSER_WATCHER_ACTIVITY_DATA_NAMES_H_
-
-namespace browser_watcher {
-
-// Alphabetical list of stability data names.
-extern const char kActivityChannel[];
-extern const char kActivityExecutionPhase[];
-extern const char kActivityKeepAlive[];
-extern const char kActivityPlatform[];
-extern const char kActivityProcessType[];
-extern const char kActivityProduct[];
-extern const char kActivityReporterChannel[];
-extern const char kActivityReporterPlatform[];
-extern const char kActivityReporterProduct[];
-extern const char kActivityReporterVersion[];
-extern const char kActivityRestartAllowed[];
-extern const char kActivitySpecialBuild[];
-extern const char kActivityStartTimestamp[];
-extern const char kActivityVersion[];
-
-}  // namespace browser_watcher
-
-#endif  // COMPONENTS_BROWSER_WATCHER_ACTIVITY_DATA_NAMES_H_
diff --git a/components/browser_watcher/activity_report.proto b/components/browser_watcher/activity_report.proto
deleted file mode 100644
index f56fc08..0000000
--- a/components/browser_watcher/activity_report.proto
+++ /dev/null
@@ -1,275 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-syntax = "proto2";
-
-option optimize_for = LITE_RUNTIME;
-
-package browser_watcher;
-
-// The state of the system on which Chrome is running (shutting down, battery
-// level, load, etc.).
-// Next id: 2
-message SystemState {
-  // The state of a system session. A system session begins when the system
-  // starts and ends when it shuts down.
-  enum SessionState {
-    UNKNOWN = 0;
-    CLEAN = 1;    // Normal shutdown.
-    UNCLEAN = 2;  // Abnormal shutdown (system crash, power loss).
-  }
-
-  // The state of the system session that contained Chrome's execution.
-  optional SessionState session_state = 1;
-}
-
-// Next id: 10
-message CodeModule {
-  // The base address of this code module as it was loaded by the process.
-  optional int64 base_address = 1;
-
-  // The size of the code module.
-  optional int64 size = 2;
-
-  // The path or file name that the code module was loaded from.
-  optional string code_file = 3;
-
-  // An identifying string used to discriminate between multiple versions and
-  // builds of the same code module.  This may contain a uuid, timestamp,
-  // version number, or any combination of this or other information, in an
-  // implementation-defined format.
-  optional string code_identifier = 4;
-
-  // The filename containing debugging information associated with the code
-  // module.  If debugging information is stored in a file separate from the
-  // code module itself (as is the case when .pdb or .dSYM files are used),
-  // this will be different from code_file.  If debugging information is
-  // stored in the code module itself (possibly prior to stripping), this
-  // will be the same as code_file.
-  optional string debug_file = 5;
-
-  // An identifying string similar to code_identifier, but identifies a
-  // specific version and build of the associated debug file.  This may be
-  // the same as code_identifier when the debug_file and code_file are
-  // identical or when the same identifier is used to identify distinct
-  // debug and code files.
-  optional string debug_identifier = 6;
-
-  // A human-readable representation of the code module's version.
-  optional string version = 7;
-
-  optional int64 shrink_down_delta = 8;
-
-  // Whether the module was still loaded into memory.
-  optional bool is_unloaded = 9;
-}
-
-// A typed value holds values of interest or references to such values.
-// Next id: 9
-message TypedValue {
-  // A reference to a value of interest.
-  message Reference {
-    optional uint64 address = 1;
-    optional int64 size = 2;
-  }
-
-  oneof value {
-    bytes bytes_value = 1;
-    Reference bytes_reference = 2;
-    string string_value = 3;
-    Reference string_reference = 4;
-    string char_value = 5;
-    bool bool_value = 6;
-    int64 signed_value = 7;
-    uint64 unsigned_value = 8;
-  }
-}
-
-// An activity represents information about something of interest on a thread.
-// Next id: 18
-message Activity {
-  enum Type {
-    UNKNOWN = 0;
-    ACT_TASK_RUN = 1;
-    ACT_LOCK_ACQUIRE = 2;
-    ACT_EVENT_WAIT = 3;
-    ACT_THREAD_JOIN = 4;
-    ACT_PROCESS_WAIT = 5;
-    ACT_GENERIC = 6;
-  }
-
-  // Identifies the type of the activity (and specifies which fields are
-  // relevant).
-  optional Type type = 1;
-
-  // Creation time of the activity.
-  optional int64 time = 2;
-
-  // The address that pushed the activity onto the stack.
-  optional uint64 address = 11;
-
-  // The address that is the origin of the activity. This is useful for things
-  // like tasks that are posted from a completely different thread though most
-  // activities will leave it null.
-  optional uint64 origin_address = 3;
-
-  // The sequence identifier of the posted task.
-  // Expected for ACT_TASK_*
-  optional uint64 task_sequence_id = 4;
-
-  // The memory address of the lock object.
-  optional uint64 lock_address = 5;
-
-  // The memory address of the event object.
-  optional uint64 event_address = 6;
-
-  // A unique identifier for a thread within a process.
-  optional int64 thread_id = 7;
-
-  // A unique identifier for a process.
-  optional int64 process_id = 8;
-
-  // An arbitrary identifier used for association.
-  optional uint32 generic_id = 12;
-
-  // An arbitrary value used for information purposes.
-  optional int32 generic_data = 13;
-
-  // Tag ids 10 and 14-17 are reserved for server side augmentation.
-
-  // A key-value store.
-  map<string, TypedValue> user_data = 9;
-}
-
-// Details about an exception.
-// Next id: 5
-message Exception {
-  optional uint32 code = 1;
-  optional uint64 program_counter = 2;
-  optional uint64 exception_address = 3;
-  optional int64 time = 4;
-}
-
-// The state of a thread.
-// Next id: 6
-message ThreadState {
-  // The name of the thread, up to a maxiumum length.
-  optional string thread_name = 1;
-
-  // The identifier of the thread.
-  optional int64 thread_id = 2;
-
-  // The activity stack. |activity_count| specifies the number of activities on
-  // stack and |activities| holds the base of the stack (up to a maximum size).
-  optional int32 activity_count = 3;
-  repeated Activity activities = 4;
-
-  // The last exception to be successfully captured. Note this exception may
-  // have been recovered from.
-  optional Exception exception = 5;
-}
-
-// The state of a process.
-// Next id: 7
-message ProcessState {
-  enum Type {
-    UNKNOWN_PROCESS = 0;
-    BROWSER_PROCESS = 1;
-    WATCHER_PROCESS = 2;
-  }
-
-  message MemoryState {
-    message WindowsMemory {
-      // The private byte usage of the process. Unit is 4K pages.
-      optional uint32 process_private_usage = 1;
-      // The peak working set usage of the process. Unit is 4K pages.
-      optional uint32 process_peak_workingset_size = 2;
-      // The peak pagefile usage of the process. Unit is 4K pages.
-      optional uint32 process_peak_pagefile_usage = 3;
-      // The allocation request that caused OOM, bytes.
-      optional uint32 process_allocation_attempt = 4;
-      // The number of opened handles in the process.
-      optional uint32 process_handle_count = 5;
-    }
-
-    optional WindowsMemory windows_memory = 1;
-  }
-
-  // The identifier of the process.
-  optional int64 process_id = 3;
-  optional Type process_type = 5;
-
-  // Note: likely only a subset of modules of interest (e.g. Chromium's own
-  // modules).
-  repeated CodeModule modules = 1;
-  repeated ThreadState threads = 2;
-
-  optional MemoryState memory_state = 4;
-
-  // A key-value store global to the process.
-  map<string, TypedValue> data = 6;
-}
-
-// Description of a field trial or experiment that the user is currently
-// enrolled in. This message is an analogue of the UMA proto in
-// third_party/metrics_proto/system_profile.proto. For details about generating
-// the identifiers from the field trial and group names, see
-// variations::MakeActiveGroupId().
-// Next id: 3
-message FieldTrial {
-  // A 32-bit identifier for the name of the field trial.
-  optional fixed32 name_id = 1;
-
-  // A 32-bit identifier for the user's group within the field trial.
-  optional fixed32 group_id = 2;
-}
-
-// Records the state of system memory at the time of crash.
-// Next id: 2
-message SystemMemoryState {
-  message WindowsMemory {
-    // The system commit limit. Unit is number of 4K pages.
-    optional uint32 system_commit_limit = 1;
-    // The amount of system commit remaining. Unit is number of 4K pages.
-    optional uint32 system_commit_remaining = 2;
-    // The current number of open handles.
-    optional uint32 system_handle_count = 3;
-  }
-
-  optional WindowsMemory windows_memory = 1;
-}
-
-// A stability report contains information pertaining to the execution of a
-// single logical instance of a "chrome browser". It is comprised of information
-// about the system state and about the chrome browser's processes.
-// Next id: 9
-// This message would more appropriately be named ActivityReport, but since this
-// proto is used in the crash backend, renaming it will take some dancing
-// around.
-message StabilityReport {
-  // Whether the report is complete. Reports can be incomplete when the
-  // recording size quota is hit.
-  optional bool is_complete = 6;
-
-  // The process identifier of the crashed process.
-  optional int64 crashed_process_id = 8;
-
-  // State pertaining to the system.
-  optional SystemState system_state = 1;
-
-  // State pertaining to Chrome's processes.
-  repeated ProcessState process_states = 2;
-
-  // Log messages. This is empty on official builds.
-  // TODO(manzagop): attribute messages to their process.
-  repeated string log_messages = 3;
-
-  // A global key-value store.
-  map<string, TypedValue> global_data = 4;
-
-  // The field trials the user is currently enrolled in.
-  repeated FieldTrial field_trials = 5;
-
-  optional SystemMemoryState system_memory_state = 7;
-}
diff --git a/components/browser_watcher/activity_report_extractor.cc b/components/browser_watcher/activity_report_extractor.cc
deleted file mode 100644
index bad19826..0000000
--- a/components/browser_watcher/activity_report_extractor.cc
+++ /dev/null
@@ -1,307 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/activity_report_extractor.h"
-
-#include <memory>
-#include <string>
-#include <utility>
-#include <vector>
-
-#include "base/check_op.h"
-#include "base/debug/activity_analyzer.h"
-#include "base/notreached.h"
-#include "base/strings/string_piece.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-#include "base/strings/utf_string_conversions.h"
-#include "components/browser_watcher/activity_data_names.h"
-#include "third_party/crashpad/crashpad/util/misc/uuid.h"
-
-namespace browser_watcher {
-
-using ActivitySnapshot = base::debug::ThreadActivityAnalyzer::Snapshot;
-using base::PersistentMemoryAllocator;
-using base::debug::ActivityUserData;
-using base::debug::GlobalActivityAnalyzer;
-using base::debug::GlobalActivityTracker;
-using base::debug::ThreadActivityAnalyzer;
-
-namespace {
-
-// Collects stability user data from the recorded format to the collected
-// format.
-void CollectUserData(
-    const ActivityUserData::Snapshot& recorded_map,
-    google::protobuf::Map<std::string, TypedValue>* collected_map,
-    StabilityReport* report) {
-  DCHECK(collected_map);
-
-  for (const auto& name_and_value : recorded_map) {
-    const std::string& key = name_and_value.first;
-    const ActivityUserData::TypedValue& recorded_value = name_and_value.second;
-    TypedValue collected_value;
-
-    switch (recorded_value.type()) {
-      case ActivityUserData::END_OF_VALUES:
-        NOTREACHED();
-        break;
-      case ActivityUserData::RAW_VALUE: {
-        base::StringPiece raw = recorded_value.Get();
-        collected_value.set_bytes_value(raw.data(), raw.size());
-        break;
-      }
-      case ActivityUserData::RAW_VALUE_REFERENCE: {
-        base::StringPiece recorded_ref = recorded_value.GetReference();
-        TypedValue::Reference* collected_ref =
-            collected_value.mutable_bytes_reference();
-        collected_ref->set_address(
-            reinterpret_cast<uintptr_t>(recorded_ref.data()));
-        collected_ref->set_size(recorded_ref.size());
-        break;
-      }
-      case ActivityUserData::STRING_VALUE: {
-        base::StringPiece value = recorded_value.GetString();
-        collected_value.set_string_value(value.data(), value.size());
-
-        // Promote version information to the global key value store.
-        if (report) {
-          bool should_promote =
-              key == kActivityProduct || key == kActivityChannel ||
-              key == kActivityPlatform || key == kActivityVersion;
-          if (should_promote) {
-            // TODO(siggi): Copy the promoted data or perhaps remove this
-            //     promotion once the backend is able to display the per-process
-            //     data.
-            (*report->mutable_global_data())[key].Swap(&collected_value);
-            continue;
-          }
-        }
-
-        break;
-      }
-      case ActivityUserData::STRING_VALUE_REFERENCE: {
-        base::StringPiece recorded_ref = recorded_value.GetStringReference();
-        TypedValue::Reference* collected_ref =
-            collected_value.mutable_string_reference();
-        collected_ref->set_address(
-            reinterpret_cast<uintptr_t>(recorded_ref.data()));
-        collected_ref->set_size(recorded_ref.size());
-        break;
-      }
-      case ActivityUserData::CHAR_VALUE: {
-        char char_value = recorded_value.GetChar();
-        collected_value.set_char_value(&char_value, 1);
-        break;
-      }
-      case ActivityUserData::BOOL_VALUE:
-        collected_value.set_bool_value(recorded_value.GetBool());
-        break;
-      case ActivityUserData::SIGNED_VALUE:
-        collected_value.set_signed_value(recorded_value.GetInt());
-
-        // Promote the execution timestamp to the global key value store.
-        if (report && key == kActivityStartTimestamp) {
-          (*report->mutable_global_data())[key].Swap(&collected_value);
-          continue;
-        }
-
-        break;
-      case ActivityUserData::UNSIGNED_VALUE:
-        collected_value.set_unsigned_value(recorded_value.GetUint());
-        break;
-    }
-
-    (*collected_map)[key].Swap(&collected_value);
-  }
-}
-
-void CollectModuleInformation(
-    const std::vector<GlobalActivityTracker::ModuleInfo>& modules,
-    ProcessState* process_state) {
-  DCHECK(process_state);
-
-  for (const GlobalActivityTracker::ModuleInfo& recorded : modules) {
-    CodeModule* collected = process_state->add_modules();
-    collected->set_base_address(recorded.address);
-    collected->set_size(recorded.size);
-    collected->set_code_file(recorded.file);
-
-    // Compute the code identifier using the required format.
-    std::string code_identifier =
-        base::StringPrintf("%08X%zx", recorded.timestamp, recorded.size);
-    collected->set_code_identifier(code_identifier);
-    collected->set_debug_file(recorded.debug_file);
-
-    // Compute the debug identifier using the required format.
-    const crashpad::UUID* uuid =
-        reinterpret_cast<const crashpad::UUID*>(recorded.identifier);
-    std::string debug_identifier = base::StringPrintf(
-        "%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X%x", uuid->data_1,
-        uuid->data_2, uuid->data_3, uuid->data_4[0], uuid->data_4[1],
-        uuid->data_5[0], uuid->data_5[1], uuid->data_5[2], uuid->data_5[3],
-        uuid->data_5[4], uuid->data_5[5], recorded.age);
-    collected->set_debug_identifier(debug_identifier);
-    collected->set_is_unloaded(!recorded.is_loaded);
-  }
-}
-
-void CollectActivity(const base::debug::Activity& recorded,
-                     Activity* collected) {
-  DCHECK(collected);
-
-  collected->set_time(recorded.time_internal);
-  collected->set_address(recorded.calling_address);
-  collected->set_origin_address(recorded.origin_address);
-
-  // TODO(manzagop): the current collection deals with specific activity types;
-  // consider modifying it to handle the notion of activity categories.
-  switch (recorded.activity_type) {
-    case base::debug::Activity::ACT_TASK_RUN:
-      collected->set_type(Activity::ACT_TASK_RUN);
-      collected->set_task_sequence_id(recorded.data.task.sequence_id);
-      break;
-    case base::debug::Activity::ACT_LOCK_ACQUIRE:
-      collected->set_type(Activity::ACT_LOCK_ACQUIRE);
-      collected->set_lock_address(recorded.data.lock.lock_address);
-      break;
-    case base::debug::Activity::ACT_EVENT_WAIT:
-      collected->set_type(Activity::ACT_EVENT_WAIT);
-      collected->set_event_address(recorded.data.event.event_address);
-      break;
-    case base::debug::Activity::ACT_THREAD_JOIN:
-      collected->set_type(Activity::ACT_THREAD_JOIN);
-      collected->set_thread_id(recorded.data.thread.thread_id);
-      break;
-    case base::debug::Activity::ACT_PROCESS_WAIT:
-      collected->set_type(Activity::ACT_PROCESS_WAIT);
-      collected->set_process_id(recorded.data.process.process_id);
-      break;
-    case base::debug::Activity::ACT_GENERIC:
-      collected->set_type(Activity::ACT_GENERIC);
-      collected->set_generic_id(recorded.data.generic.id);
-      collected->set_generic_data(recorded.data.generic.info);
-      break;
-    default:
-      break;
-  }
-}
-
-void CollectException(const base::debug::Activity& recorded,
-                      Exception* collected) {
-  DCHECK(collected);
-  collected->set_code(recorded.data.exception.code);
-  collected->set_program_counter(recorded.calling_address);
-  collected->set_exception_address(recorded.origin_address);
-  collected->set_time(recorded.time_internal);
-}
-
-void CollectThread(
-    const base::debug::ThreadActivityAnalyzer::Snapshot& snapshot,
-    ThreadState* thread_state) {
-  DCHECK(thread_state);
-
-  thread_state->set_thread_name(snapshot.thread_name);
-  thread_state->set_thread_id(snapshot.thread_id);
-  thread_state->set_activity_count(snapshot.activity_stack_depth);
-
-  if (snapshot.last_exception.activity_type ==
-      base::debug::Activity::ACT_EXCEPTION) {
-    CollectException(snapshot.last_exception,
-                     thread_state->mutable_exception());
-  }
-
-  for (size_t i = 0; i < snapshot.activity_stack.size(); ++i) {
-    Activity* collected = thread_state->add_activities();
-
-    CollectActivity(snapshot.activity_stack[i], collected);
-    if (i < snapshot.user_data_stack.size()) {
-      CollectUserData(snapshot.user_data_stack[i],
-                      collected->mutable_user_data(), nullptr);
-    }
-  }
-}
-
-bool SetProcessType(ProcessState* process_state) {
-  DCHECK(process_state);
-  google::protobuf::Map<std::string, TypedValue>* process_data =
-      process_state->mutable_data();
-
-  const auto it = process_data->find(kActivityProcessType);
-  if (it == process_data->end())
-    return false;
-
-  const TypedValue& value = it->second;
-  if (value.value_case() != TypedValue::kSignedValue)
-    return false;
-
-  process_state->set_process_type(
-      static_cast<browser_watcher::ProcessState_Type>(value.signed_value()));
-  process_data->erase(it);
-  return true;
-}
-
-void CollectProcess(int64_t pid,
-                    GlobalActivityAnalyzer* analyzer,
-                    StabilityReport* report) {
-  DCHECK(analyzer);
-  DCHECK(report);
-
-  ProcessState* process_state = report->add_process_states();
-
-  // Collect thread activity data.
-  ThreadActivityAnalyzer* thread_analyzer = analyzer->GetFirstAnalyzer(pid);
-  for (; thread_analyzer != nullptr;
-       thread_analyzer = analyzer->GetNextAnalyzer()) {
-    // Only valid analyzers are expected per contract of GetFirstAnalyzer /
-    // GetNextAnalyzer.
-    DCHECK(thread_analyzer->IsValid());
-
-    if (!process_state->has_process_id()) {
-      process_state->set_process_id(
-          thread_analyzer->activity_snapshot().process_id);
-    }
-    DCHECK_EQ(thread_analyzer->activity_snapshot().process_id,
-              process_state->process_id());
-
-    ThreadState* thread_state = process_state->add_threads();
-    CollectThread(thread_analyzer->activity_snapshot(), thread_state);
-  }
-
-  // Collect global user data.
-  ActivityUserData::Snapshot process_data_snapshot =
-      analyzer->GetProcessDataSnapshot(pid);
-  CollectUserData(process_data_snapshot, process_state->mutable_data(), report);
-  SetProcessType(process_state);
-
-  // Collect module information.
-  CollectModuleInformation(analyzer->GetModules(pid), process_state);
-}
-
-}  // namespace
-
-CollectionStatus Extract(
-    std::unique_ptr<GlobalActivityAnalyzer> global_analyzer,
-    StabilityReport* report) {
-  DCHECK(global_analyzer);
-  DCHECK(report);
-
-  report->set_is_complete(global_analyzer->IsDataComplete());
-
-  // Collect process data.
-  for (int64_t pid = global_analyzer->GetFirstProcess(); pid != 0;
-       pid = global_analyzer->GetNextProcess()) {
-    CollectProcess(pid, global_analyzer.get(), report);
-  }
-
-  // Collect log messages.
-  std::vector<std::string> log_messages = global_analyzer->GetLogMessages();
-  for (const std::string& message : log_messages) {
-    report->add_log_messages(message);
-  }
-
-  return SUCCESS;
-}
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/activity_report_extractor.h b/components/browser_watcher/activity_report_extractor.h
deleted file mode 100644
index 5d46931..0000000
--- a/components/browser_watcher/activity_report_extractor.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Implementation of the collection of a stability file to a protocol buffer.
-
-#ifndef COMPONENTS_BROWSER_WATCHER_ACTIVITY_REPORT_EXTRACTOR_H_
-#define COMPONENTS_BROWSER_WATCHER_ACTIVITY_REPORT_EXTRACTOR_H_
-
-#include "base/debug/activity_analyzer.h"
-#include "components/browser_watcher/activity_report.pb.h"
-
-namespace browser_watcher {
-
-// DO NOT REMOVE OR REORDER VALUES. This is logged persistently in a histogram.
-enum CollectionStatus {
-  NONE = 0,
-  SUCCESS = 1,  // Successfully registered a report with Crashpad.
-  ANALYZER_CREATION_FAILED = 2,
-  DEBUG_FILE_NO_DATA = 3,
-  PREPARE_NEW_CRASH_REPORT_FAILED = 4,
-  WRITE_TO_MINIDUMP_FAILED = 5,
-  DEBUG_FILE_DELETION_FAILED = 6,
-  FINISHED_WRITING_CRASH_REPORT_FAILED = 7,
-  UNCLEAN_SHUTDOWN = 8,
-  UNCLEAN_SESSION = 9,
-  COLLECTION_ATTEMPT = 10,
-  // New values go here.
-  COLLECTION_STATUS_MAX = 11
-};
-
-// Extracts a stability report from an existing GlobalActivityAnalyzer.
-CollectionStatus Extract(
-    std::unique_ptr<base::debug::GlobalActivityAnalyzer> global_analyzer,
-    StabilityReport* report);
-
-}  // namespace browser_watcher
-
-#endif  // COMPONENTS_BROWSER_WATCHER_ACTIVITY_REPORT_EXTRACTOR_H_
diff --git a/components/browser_watcher/activity_report_extractor_unittest.cc b/components/browser_watcher/activity_report_extractor_unittest.cc
deleted file mode 100644
index d3cd2fb..0000000
--- a/components/browser_watcher/activity_report_extractor_unittest.cc
+++ /dev/null
@@ -1,446 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/activity_report_extractor.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/containers/contains.h"
-#include "base/debug/activity_analyzer.h"
-#include "base/debug/activity_tracker.h"
-#include "base/files/file.h"
-#include "base/files/file_path.h"
-#include "base/files/memory_mapped_file.h"
-#include "base/files/scoped_temp_dir.h"
-#include "base/metrics/persistent_memory_allocator.h"
-#include "base/threading/platform_thread.h"
-#include "base/time/time.h"
-#include "build/build_config.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/crashpad/crashpad/client/crash_report_database.h"
-
-namespace browser_watcher {
-
-using base::File;
-using base::FilePath;
-using base::FilePersistentMemoryAllocator;
-using base::MemoryMappedFile;
-using base::PersistentMemoryAllocator;
-using base::debug::ActivityData;
-using base::debug::ActivityTrackerMemoryAllocator;
-using base::debug::ActivityUserData;
-using base::debug::GlobalActivityAnalyzer;
-using base::debug::GlobalActivityTracker;
-using base::debug::ThreadActivityTracker;
-
-namespace {
-
-// The tracker creates some data entries internally.
-const size_t kInternalProcessDatums = 1;
-
-// Parameters for the activity tracking.
-const size_t kFileSize = 64 << 10;  // 64 KiB
-const int kStackDepth = 6;
-const uint64_t kAllocatorId = 0;
-const char kAllocatorName[] = "PostmortemReportCollectorCollectionTest";
-const uint64_t kTaskSequenceNum = 42;
-const uintptr_t kTaskOrigin = 1000U;
-const uintptr_t kLockAddress = 1001U;
-const uintptr_t kEventAddress = 1002U;
-const int kThreadId = 43;
-const int kProcessId = 44;
-const int kAnotherThreadId = 45;
-const uint32_t kGenericId = 46U;
-const int32_t kGenericData = 47;
-
-}  // namespace
-
-// Sets up a file backed thread tracker for direct access. A
-// GlobalActivityTracker is not created, meaning there is no risk of
-// the instrumentation interfering with the file's content.
-class StabilityReportExtractorThreadTrackerTest : public testing::Test {
- public:
-  // Create a proper debug file.
-  void SetUp() override {
-    testing::Test::SetUp();
-
-    // Create a file backed allocator.
-    ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
-    debug_file_path_ = temp_dir_.GetPath().AppendASCII("debug_file.pma");
-    allocator_ = CreateAllocator();
-    ASSERT_NE(nullptr, allocator_);
-
-    size_t tracker_mem_size =
-        ThreadActivityTracker::SizeForStackDepth(kStackDepth);
-    ASSERT_GT(kFileSize, tracker_mem_size);
-
-    // Create a tracker.
-    tracker_ = CreateTracker(allocator_.get(), tracker_mem_size);
-    ASSERT_NE(nullptr, tracker_);
-    ASSERT_TRUE(tracker_->IsValid());
-  }
-
-  std::unique_ptr<PersistentMemoryAllocator> CreateAllocator() {
-    // Create the memory mapped file.
-    std::unique_ptr<MemoryMappedFile> mmfile(new MemoryMappedFile());
-    bool success = mmfile->Initialize(
-        File(debug_file_path_, File::FLAG_CREATE | File::FLAG_READ |
-                                   File::FLAG_WRITE |
-                                   File::FLAG_WIN_SHARE_DELETE),
-        {0, static_cast<int64_t>(kFileSize)},
-        MemoryMappedFile::READ_WRITE_EXTEND);
-    if (!success || !mmfile->IsValid())
-      return nullptr;
-
-    // Create a persistent memory allocator.
-    if (!FilePersistentMemoryAllocator::IsFileAcceptable(*mmfile, true))
-      return nullptr;
-    return std::make_unique<FilePersistentMemoryAllocator>(
-        std::move(mmfile), kFileSize, kAllocatorId, kAllocatorName, false);
-  }
-
-  std::unique_ptr<ThreadActivityTracker> CreateTracker(
-      PersistentMemoryAllocator* allocator,
-      size_t tracker_mem_size) {
-    // Allocate a block of memory for the tracker to use.
-    PersistentMemoryAllocator::Reference mem_reference = allocator->Allocate(
-        tracker_mem_size, GlobalActivityTracker::kTypeIdActivityTracker);
-    if (mem_reference == 0U)
-      return nullptr;
-
-    // Get the memory's base address.
-    void* mem_base = allocator->GetAsArray<char>(
-        mem_reference, GlobalActivityTracker::kTypeIdActivityTracker,
-        PersistentMemoryAllocator::kSizeAny);
-    if (mem_base == nullptr)
-      return nullptr;
-
-    // Make the allocation iterable so it can be found by other processes.
-    allocator->MakeIterable(mem_reference);
-
-    return std::make_unique<ThreadActivityTracker>(mem_base, tracker_mem_size);
-  }
-
-  void PerformBasicReportValidation(const StabilityReport& report) {
-    // One report with one thread that has the expected name and id.
-    ASSERT_EQ(1, report.process_states_size());
-    const ProcessState& process_state = report.process_states(0);
-    EXPECT_EQ(base::GetCurrentProcId(), process_state.process_id());
-    ASSERT_EQ(1, process_state.threads_size());
-    const ThreadState& thread_state = process_state.threads(0);
-    EXPECT_EQ(base::PlatformThread::GetName(), thread_state.thread_name());
-#if BUILDFLAG(IS_WIN)
-    EXPECT_EQ(base::PlatformThread::CurrentId(), thread_state.thread_id());
-#elif BUILDFLAG(IS_POSIX)
-    EXPECT_EQ(base::PlatformThread::CurrentHandle().platform_handle(),
-              thread_state.thread_id());
-#endif
-  }
-
-  std::unique_ptr<GlobalActivityAnalyzer> CreateAnalyzer() {
-    return GlobalActivityAnalyzer::CreateWithFile(debug_file_path());
-  }
-
- private:
-  const FilePath& debug_file_path() const { return debug_file_path_; }
-
- protected:
-  base::ScopedTempDir temp_dir_;
-  FilePath debug_file_path_;
-
-  std::unique_ptr<PersistentMemoryAllocator> allocator_;
-  std::unique_ptr<ThreadActivityTracker> tracker_;
-};
-
-TEST_F(StabilityReportExtractorThreadTrackerTest, CollectSuccess) {
-  // Create some activity data.
-  tracker_->PushActivity(reinterpret_cast<void*>(kTaskOrigin),
-                         base::debug::Activity::ACT_TASK_RUN,
-                         ActivityData::ForTask(kTaskSequenceNum));
-  tracker_->PushActivity(
-      nullptr, base::debug::Activity::ACT_LOCK_ACQUIRE,
-      ActivityData::ForLock(reinterpret_cast<void*>(kLockAddress)));
-  ThreadActivityTracker::ActivityId activity_id = tracker_->PushActivity(
-      nullptr, base::debug::Activity::ACT_EVENT_WAIT,
-      ActivityData::ForEvent(reinterpret_cast<void*>(kEventAddress)));
-  tracker_->PushActivity(nullptr, base::debug::Activity::ACT_THREAD_JOIN,
-                         ActivityData::ForThread(kThreadId));
-  tracker_->PushActivity(nullptr, base::debug::Activity::ACT_PROCESS_WAIT,
-                         ActivityData::ForProcess(kProcessId));
-  tracker_->PushActivity(nullptr, base::debug::Activity::ACT_GENERIC,
-                         ActivityData::ForGeneric(kGenericId, kGenericData));
-  // Note: this exceeds the activity stack's capacity.
-  tracker_->PushActivity(nullptr, base::debug::Activity::ACT_THREAD_JOIN,
-                         ActivityData::ForThread(kAnotherThreadId));
-
-  // Add some user data.
-  ActivityTrackerMemoryAllocator user_data_allocator(
-      allocator_.get(), GlobalActivityTracker::kTypeIdUserDataRecord,
-      GlobalActivityTracker::kTypeIdUserDataRecordFree, 1024U, 10U, false);
-  std::unique_ptr<ActivityUserData> user_data =
-      tracker_->GetUserData(activity_id, &user_data_allocator);
-  user_data->SetInt("some_int", 42);
-
-  // Validate collection returns the expected report.
-  StabilityReport report;
-  ASSERT_EQ(SUCCESS, Extract(CreateAnalyzer(), &report));
-
-  // Validate the report.
-  ASSERT_NO_FATAL_FAILURE(PerformBasicReportValidation(report));
-  const ThreadState& thread_state = report.process_states(0).threads(0);
-
-  EXPECT_EQ(7, thread_state.activity_count());
-  ASSERT_EQ(6, thread_state.activities_size());
-  {
-    const Activity& activity = thread_state.activities(0);
-    EXPECT_EQ(Activity::ACT_TASK_RUN, activity.type());
-    EXPECT_EQ(kTaskOrigin, activity.origin_address());
-    EXPECT_EQ(kTaskSequenceNum, activity.task_sequence_id());
-    EXPECT_EQ(0U, activity.user_data().size());
-  }
-  {
-    const Activity& activity = thread_state.activities(1);
-    EXPECT_EQ(Activity::ACT_LOCK_ACQUIRE, activity.type());
-    EXPECT_EQ(kLockAddress, activity.lock_address());
-    EXPECT_EQ(0U, activity.user_data().size());
-  }
-  {
-    const Activity& activity = thread_state.activities(2);
-    EXPECT_EQ(Activity::ACT_EVENT_WAIT, activity.type());
-    EXPECT_EQ(kEventAddress, activity.event_address());
-    ASSERT_EQ(1U, activity.user_data().size());
-    ASSERT_TRUE(base::Contains(activity.user_data(), "some_int"));
-    EXPECT_EQ(TypedValue::kSignedValue,
-              activity.user_data().at("some_int").value_case());
-    EXPECT_EQ(42, activity.user_data().at("some_int").signed_value());
-  }
-  {
-    const Activity& activity = thread_state.activities(3);
-    EXPECT_EQ(Activity::ACT_THREAD_JOIN, activity.type());
-    EXPECT_EQ(kThreadId, activity.thread_id());
-    EXPECT_EQ(0U, activity.user_data().size());
-  }
-  {
-    const Activity& activity = thread_state.activities(4);
-    EXPECT_EQ(Activity::ACT_PROCESS_WAIT, activity.type());
-    EXPECT_EQ(kProcessId, activity.process_id());
-    EXPECT_EQ(0U, activity.user_data().size());
-  }
-  {
-    const Activity& activity = thread_state.activities(5);
-    EXPECT_EQ(Activity::ACT_GENERIC, activity.type());
-    EXPECT_EQ(kGenericId, activity.generic_id());
-    EXPECT_EQ(kGenericData, activity.generic_data());
-    EXPECT_EQ(0U, activity.user_data().size());
-  }
-}
-
-TEST_F(StabilityReportExtractorThreadTrackerTest, CollectException) {
-  const void* expected_pc = reinterpret_cast<void*>(0xCAFE);
-  const void* expected_address = nullptr;
-  const uint32_t expected_code = 42U;
-
-  // Record an exception.
-  const int64_t timestamp =
-      base::Time::Now().ToDeltaSinceWindowsEpoch().InMicroseconds();
-  tracker_->RecordExceptionActivity(expected_pc, expected_address,
-                                    base::debug::Activity::ACT_EXCEPTION,
-                                    ActivityData::ForException(expected_code));
-
-  // Collect report and validate.
-  StabilityReport report;
-  ASSERT_EQ(SUCCESS, Extract(CreateAnalyzer(), &report));
-
-  // Validate the presence of the exception.
-  ASSERT_NO_FATAL_FAILURE(PerformBasicReportValidation(report));
-  const ThreadState& thread_state = report.process_states(0).threads(0);
-  ASSERT_TRUE(thread_state.has_exception());
-  const Exception& exception = thread_state.exception();
-  EXPECT_EQ(expected_code, exception.code());
-  EXPECT_EQ(expected_pc, reinterpret_cast<void*>(exception.program_counter()));
-  EXPECT_EQ(expected_address,
-            reinterpret_cast<void*>(exception.exception_address()));
-  const int64_t tolerance_us = 1000ULL;
-  EXPECT_LE(std::abs(timestamp - exception.time()), tolerance_us);
-}
-
-TEST_F(StabilityReportExtractorThreadTrackerTest, CollectNoException) {
-  // Record something.
-  tracker_->PushActivity(reinterpret_cast<void*>(kTaskOrigin),
-                         base::debug::Activity::ACT_TASK_RUN,
-                         ActivityData::ForTask(kTaskSequenceNum));
-
-  // Collect report and validate there is no exception.
-  StabilityReport report;
-  ASSERT_EQ(SUCCESS, Extract(CreateAnalyzer(), &report));
-  ASSERT_NO_FATAL_FAILURE(PerformBasicReportValidation(report));
-  const ThreadState& thread_state = report.process_states(0).threads(0);
-  ASSERT_FALSE(thread_state.has_exception());
-}
-
-// Tests stability report extraction.
-class StabilityReportExtractorTest : public testing::Test {
- public:
-  const int kMemorySize = 1 << 20;  // 1MiB
-
-  StabilityReportExtractorTest() {}
-  ~StabilityReportExtractorTest() override {
-    GlobalActivityTracker* global_tracker = GlobalActivityTracker::Get();
-    if (global_tracker) {
-      global_tracker->ReleaseTrackerForCurrentThreadForTesting();
-      delete global_tracker;
-    }
-  }
-
-  void SetUp() override {
-    testing::Test::SetUp();
-
-    // Set up a debug file path.
-    ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
-    debug_file_path_ = temp_dir_.GetPath().AppendASCII("debug.pma");
-  }
-
-  std::unique_ptr<GlobalActivityAnalyzer> CreateAnalyzer() {
-    return GlobalActivityAnalyzer::CreateWithFile(debug_file_path());
-  }
-
-  const FilePath& debug_file_path() { return debug_file_path_; }
-
- protected:
-  base::ScopedTempDir temp_dir_;
-  FilePath debug_file_path_;
-};
-
-TEST_F(StabilityReportExtractorTest, LogCollection) {
-  // Record some log messages.
-  GlobalActivityTracker::CreateWithFile(debug_file_path(), kMemorySize, 0ULL,
-                                        "", 3);
-  GlobalActivityTracker::Get()->RecordLogMessage("hello world");
-  GlobalActivityTracker::Get()->RecordLogMessage("foo bar");
-
-  // Collect the stability report.
-  StabilityReport report;
-  ASSERT_EQ(SUCCESS, Extract(CreateAnalyzer(), &report));
-
-  // Validate the report's log content.
-  ASSERT_EQ(2, report.log_messages_size());
-  ASSERT_EQ("hello world", report.log_messages(0));
-  ASSERT_EQ("foo bar", report.log_messages(1));
-}
-
-TEST_F(StabilityReportExtractorTest, ProcessUserDataCollection) {
-  const char string1[] = "foo";
-  const char string2[] = "bar";
-
-  // Record some process user data.
-  GlobalActivityTracker::CreateWithFile(debug_file_path(), kMemorySize, 0ULL,
-                                        "", 3);
-  ActivityUserData& process_data = GlobalActivityTracker::Get()->process_data();
-  ActivityUserData::Snapshot snapshot;
-  ASSERT_TRUE(process_data.CreateSnapshot(&snapshot));
-  ASSERT_EQ(kInternalProcessDatums, snapshot.size());
-  process_data.Set("raw", "foo", 3);
-  process_data.SetString("string", "bar");
-  process_data.SetChar("char", '9');
-  process_data.SetInt("int", -9999);
-  process_data.SetUint("uint", 9999);
-  process_data.SetBool("bool", true);
-  process_data.SetReference("ref", string1, strlen(string1));
-  process_data.SetStringReference("sref", string2);
-
-  // Collect the stability report.
-  StabilityReport report;
-  ASSERT_EQ(SUCCESS, Extract(CreateAnalyzer(), &report));
-
-  // We expect a single process.
-  ASSERT_EQ(1, report.process_states_size());
-
-  // Validate the report contains the process' data.
-  const auto& collected_data = report.process_states(0).data();
-  ASSERT_EQ(kInternalProcessDatums + 8U, collected_data.size());
-
-  ASSERT_TRUE(base::Contains(collected_data, "raw"));
-  EXPECT_EQ(TypedValue::kBytesValue, collected_data.at("raw").value_case());
-  EXPECT_EQ("foo", collected_data.at("raw").bytes_value());
-
-  ASSERT_TRUE(base::Contains(collected_data, "string"));
-  EXPECT_EQ(TypedValue::kStringValue, collected_data.at("string").value_case());
-  EXPECT_EQ("bar", collected_data.at("string").string_value());
-
-  ASSERT_TRUE(base::Contains(collected_data, "char"));
-  EXPECT_EQ(TypedValue::kCharValue, collected_data.at("char").value_case());
-  EXPECT_EQ("9", collected_data.at("char").char_value());
-
-  ASSERT_TRUE(base::Contains(collected_data, "int"));
-  EXPECT_EQ(TypedValue::kSignedValue, collected_data.at("int").value_case());
-  EXPECT_EQ(-9999, collected_data.at("int").signed_value());
-
-  ASSERT_TRUE(base::Contains(collected_data, "uint"));
-  EXPECT_EQ(TypedValue::kUnsignedValue, collected_data.at("uint").value_case());
-  EXPECT_EQ(9999U, collected_data.at("uint").unsigned_value());
-
-  ASSERT_TRUE(base::Contains(collected_data, "bool"));
-  EXPECT_EQ(TypedValue::kBoolValue, collected_data.at("bool").value_case());
-  EXPECT_TRUE(collected_data.at("bool").bool_value());
-
-  ASSERT_TRUE(base::Contains(collected_data, "ref"));
-  EXPECT_EQ(TypedValue::kBytesReference, collected_data.at("ref").value_case());
-  const TypedValue::Reference& ref = collected_data.at("ref").bytes_reference();
-  EXPECT_EQ(reinterpret_cast<uintptr_t>(string1), ref.address());
-  EXPECT_EQ(strlen(string1), static_cast<uint64_t>(ref.size()));
-
-  ASSERT_TRUE(base::Contains(collected_data, "sref"));
-  EXPECT_EQ(TypedValue::kStringReference,
-            collected_data.at("sref").value_case());
-  const TypedValue::Reference& sref =
-      collected_data.at("sref").string_reference();
-  EXPECT_EQ(reinterpret_cast<uintptr_t>(string2), sref.address());
-  EXPECT_EQ(strlen(string2), static_cast<uint64_t>(sref.size()));
-}
-
-TEST_F(StabilityReportExtractorTest, ModuleCollection) {
-  // Record some module information.
-  GlobalActivityTracker::CreateWithFile(debug_file_path(), kMemorySize, 0ULL,
-                                        "", 3);
-
-  base::debug::GlobalActivityTracker::ModuleInfo module_info = {};
-  module_info.is_loaded = true;
-  module_info.address = 0x123456;
-  module_info.load_time = 1111LL;
-  module_info.size = 0x2d000;
-  module_info.timestamp = 0xCAFECAFE;
-  module_info.age = 1;
-  crashpad::UUID debug_uuid;
-  debug_uuid.InitializeFromString("11223344-5566-7788-abcd-0123456789ab");
-  memcpy(module_info.identifier, &debug_uuid, sizeof(module_info.identifier));
-  module_info.file = "foo";
-  module_info.debug_file = "bar";
-
-  GlobalActivityTracker::Get()->RecordModuleInfo(module_info);
-
-  // Collect the stability report.
-  StabilityReport report;
-  ASSERT_EQ(SUCCESS, Extract(CreateAnalyzer(), &report));
-
-  // Validate the report's modules content.
-  ASSERT_EQ(1, report.process_states_size());
-  const ProcessState& process_state = report.process_states(0);
-  ASSERT_EQ(1, process_state.modules_size());
-
-  const CodeModule collected_module = process_state.modules(0);
-  EXPECT_EQ(module_info.address,
-            static_cast<uintptr_t>(collected_module.base_address()));
-  EXPECT_EQ(module_info.size, static_cast<size_t>(collected_module.size()));
-  EXPECT_EQ(module_info.file, collected_module.code_file());
-  EXPECT_EQ("CAFECAFE2d000", collected_module.code_identifier());
-  EXPECT_EQ(module_info.debug_file, collected_module.debug_file());
-  EXPECT_EQ("1122334455667788ABCD0123456789AB1",
-            collected_module.debug_identifier());
-  EXPECT_EQ("", collected_module.version());
-  EXPECT_EQ(0LL, collected_module.shrink_down_delta());
-  EXPECT_EQ(!module_info.is_loaded, collected_module.is_unloaded());
-}
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/activity_report_user_stream_data_source.cc b/components/browser_watcher/activity_report_user_stream_data_source.cc
deleted file mode 100644
index 8430f750..0000000
--- a/components/browser_watcher/activity_report_user_stream_data_source.cc
+++ /dev/null
@@ -1,298 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/activity_report_user_stream_data_source.h"
-
-#include <string>
-#include <utility>
-
-#include <windows.h>
-
-// Must be included after windows.h.
-#include <psapi.h>
-
-#include "base/files/file.h"
-#include "base/files/file_util.h"
-#include "base/memory/free_deleter.h"
-#include "base/metrics/histogram_functions.h"
-#include "base/metrics/persistent_memory_allocator.h"
-#include "base/process/memory.h"
-#include "base/process/process.h"
-#include "base/time/time.h"
-#include "components/browser_watcher/activity_report_extractor.h"
-#include "components/browser_watcher/activity_tracker_annotation.h"
-#include "components/browser_watcher/extended_crash_reporting_metrics.h"
-#include "components/browser_watcher/minidump_user_streams.h"
-#include "third_party/crashpad/crashpad/minidump/minidump_user_extension_stream_data_source.h"
-#include "third_party/crashpad/crashpad/snapshot/annotation_snapshot.h"
-#include "third_party/crashpad/crashpad/snapshot/exception_snapshot.h"
-#include "third_party/crashpad/crashpad/snapshot/module_snapshot.h"
-#include "third_party/crashpad/crashpad/snapshot/process_snapshot.h"
-#include "third_party/crashpad/crashpad/util/process/process_memory.h"
-
-namespace browser_watcher {
-
-namespace {
-
-// TODO(siggi): Refactor this to harmonize with the activity tracker setup.
-const size_t kMaxActivityAnnotationSize = 2 << 20;
-
-using UniqueMallocPtr = std::unique_ptr<void, base::FreeDeleter>;
-
-UniqueMallocPtr UncheckedAllocate(size_t size) {
-  void* raw_ptr = nullptr;
-  if (!base::UncheckedMalloc(size, &raw_ptr))
-    return UniqueMallocPtr();
-
-  return UniqueMallocPtr(raw_ptr);
-}
-
-// A PersistentMemoryAllocator subclass that can take ownership of a buffer
-// that's allocated with a malloc-compatible allocation function.
-class MallocMemoryAllocator : public base::PersistentMemoryAllocator {
- public:
-  MallocMemoryAllocator(UniqueMallocPtr buffer, size_t size);
-  ~MallocMemoryAllocator() override;
-};
-
-MallocMemoryAllocator::MallocMemoryAllocator(UniqueMallocPtr buffer,
-                                             size_t size)
-    : base::PersistentMemoryAllocator(buffer.release(), size, 0, 0, "", true) {}
-
-MallocMemoryAllocator::~MallocMemoryAllocator() {
-  free(const_cast<char*>(mem_base_));
-}
-
-class BufferExtensionStreamDataSource final
-    : public crashpad::MinidumpUserExtensionStreamDataSource {
- public:
-  explicit BufferExtensionStreamDataSource(uint32_t stream_type);
-
-  BufferExtensionStreamDataSource(const BufferExtensionStreamDataSource&) =
-      delete;
-  BufferExtensionStreamDataSource& operator=(
-      const BufferExtensionStreamDataSource&) = delete;
-
-  bool Init(const StabilityReport& report);
-
-  size_t StreamDataSize() override;
-  bool ReadStreamData(Delegate* delegate) override;
-
- private:
-  std::string data_;
-};
-
-BufferExtensionStreamDataSource::BufferExtensionStreamDataSource(
-    uint32_t stream_type)
-    : crashpad::MinidumpUserExtensionStreamDataSource(stream_type) {}
-
-bool BufferExtensionStreamDataSource::Init(const StabilityReport& report) {
-  if (report.SerializeToString(&data_))
-    return true;
-  data_.clear();
-  return false;
-}
-
-size_t BufferExtensionStreamDataSource::StreamDataSize() {
-  DCHECK(!data_.empty());
-  return data_.size();
-}
-
-bool BufferExtensionStreamDataSource::ReadStreamData(Delegate* delegate) {
-  DCHECK(!data_.empty());
-  return delegate->ExtensionStreamDataSourceRead(
-      data_.size() ? data_.data() : nullptr, data_.size());
-}
-
-// TODO(manzagop): Collection should factor in whether this is a true crash or
-// dump without crashing.
-bool CollectStabilityReport(
-    std::unique_ptr<base::debug::GlobalActivityAnalyzer> global_analyzer,
-    StabilityReport* report) {
-  CollectionStatus status = ANALYZER_CREATION_FAILED;
-  if (global_analyzer)
-    status = Extract(std::move(global_analyzer), report);
-
-  base::UmaHistogramEnumeration("ActivityTracker.CollectCrash.Status", status,
-                                COLLECTION_STATUS_MAX);
-  if (status != SUCCESS)
-    return false;
-
-  LogCollectOnCrashEvent(CollectOnCrashEvent::kReportExtractionSuccess);
-
-  return true;
-}
-
-void CollectSystemPerformanceMetrics(StabilityReport* report) {
-  // Grab system commit memory. Also best effort.
-  PERFORMANCE_INFORMATION perf_info = {sizeof(perf_info)};
-  if (GetPerformanceInfo(&perf_info, sizeof(perf_info))) {
-    auto* memory_state =
-        report->mutable_system_memory_state()->mutable_windows_memory();
-
-    memory_state->set_system_commit_limit(perf_info.CommitLimit);
-    memory_state->set_system_commit_remaining(perf_info.CommitLimit -
-                                              perf_info.CommitTotal);
-    memory_state->set_system_handle_count(perf_info.HandleCount);
-  }
-}
-
-void CollectProcessPerformanceMetrics(
-    crashpad::ProcessSnapshot* process_snapshot,
-    StabilityReport* report) {
-  const crashpad::ExceptionSnapshot* exception = process_snapshot->Exception();
-
-  if (!exception)
-    return;
-
-  // Find or create the ProcessState for the process in question.
-  base::ProcessId pid = process_snapshot->ProcessID();
-  ProcessState* process_state = nullptr;
-  for (int i = 0; i < report->process_states_size(); ++i) {
-    ProcessState* temp = report->mutable_process_states(i);
-
-    if (temp->has_process_id() && temp->process_id() == pid) {
-      process_state = temp;
-      break;
-    }
-  }
-
-  if (!process_state) {
-    process_state = report->add_process_states();
-    process_state->set_process_id(pid);
-  }
-
-  auto* memory_state =
-      process_state->mutable_memory_state()->mutable_windows_memory();
-
-  // Grab the requested allocation size in case of OOM exception.
-  if (exception->Exception() == base::win::kOomExceptionCode) {
-    const auto& codes = exception->Codes();
-    if (codes.size()) {
-      // The first parameter, if present, is the size of the allocation attempt.
-      memory_state->set_process_allocation_attempt(codes[0]);
-    }
-  }
-
-  base::Process process(base::Process::OpenWithAccess(
-      pid, PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_READ));
-
-  if (process.IsValid()) {
-    PROCESS_MEMORY_COUNTERS_EX process_memory = {sizeof(process_memory)};
-    if (::GetProcessMemoryInfo(
-            process.Handle(),
-            reinterpret_cast<PROCESS_MEMORY_COUNTERS*>(&process_memory),
-            sizeof(process_memory))) {
-      // This is in units of bytes, re-scale to pages for consistency with
-      // system metrics.
-      const uint64_t kPageSize = 4096;
-      memory_state->set_process_private_usage(process_memory.PrivateUsage /
-                                              kPageSize);
-      memory_state->set_process_peak_workingset_size(
-          process_memory.PeakWorkingSetSize / kPageSize);
-      memory_state->set_process_peak_pagefile_usage(
-          process_memory.PeakPagefileUsage / kPageSize);
-    }
-
-    DWORD process_handle_count = 0;
-    if (::GetProcessHandleCount(process.Handle(), &process_handle_count)) {
-      memory_state->set_process_handle_count(process_handle_count);
-    }
-  }
-}
-
-// If the process has a beacon for in-memory activities, returns an analyzer
-// for it.
-std::unique_ptr<base::debug::GlobalActivityAnalyzer>
-MaybeGetInMemoryActivityAnalyzer(crashpad::ProcessSnapshot* process_snapshot) {
-  if (!process_snapshot->Memory())
-    return nullptr;
-
-  auto modules = process_snapshot->Modules();
-  for (auto* module : modules) {
-    auto annotations = module->AnnotationObjects();
-    for (const auto& annotation : annotations) {
-      if (annotation.name == ActivityTrackerAnnotation::kAnnotationName &&
-          annotation.type == static_cast<uint16_t>(
-                                 ActivityTrackerAnnotation::kAnnotationType) &&
-          annotation.value.size() ==
-              sizeof(ActivityTrackerAnnotation::ValueType)) {
-        // Re-cast the annotation to its value type.
-        ActivityTrackerAnnotation::ValueType value;
-        memcpy(&value, annotation.value.data(), sizeof(value));
-
-        // Check the size field for sanity.
-        if (value.size > kMaxActivityAnnotationSize)
-          continue;
-
-        // Allocate the buffer with no terminate-on-exhaustion to make sure
-        // this can't be used to bring down the handler and thus elide
-        // crash reporting.
-        UniqueMallocPtr buffer = UncheckedAllocate(value.size);
-        if (!buffer || !base::PersistentMemoryAllocator::IsMemoryAcceptable(
-                           buffer.get(), value.size, 0, true)) {
-          continue;
-        }
-
-        // Read the activity tracker data from the crashed process.
-        if (process_snapshot->Memory()->Read(value.address, value.size,
-                                             buffer.get())) {
-          // Success - wrap an allocator on the buffer, and an analyzer on that.
-          std::unique_ptr<MallocMemoryAllocator> allocator =
-              std::make_unique<MallocMemoryAllocator>(std::move(buffer),
-                                                      value.size);
-
-          return base::debug::GlobalActivityAnalyzer::CreateWithAllocator(
-              std::move(allocator));
-        } else {
-          return nullptr;
-        }
-      }
-    }
-  }
-
-  return nullptr;
-}
-
-}  // namespace
-
-ActivityReportUserStreamDataSource::ActivityReportUserStreamDataSource(
-    const base::FilePath& user_data_dir)
-    : user_data_dir_(user_data_dir) {}
-
-std::unique_ptr<crashpad::MinidumpUserExtensionStreamDataSource>
-ActivityReportUserStreamDataSource::ProduceStreamData(
-    crashpad::ProcessSnapshot* process_snapshot) {
-  DCHECK(process_snapshot);
-  LogCollectOnCrashEvent(CollectOnCrashEvent::kCollectAttempt);
-
-  StabilityReport report;
-
-  // See whether there's an activity tracking report beacon in the process'
-  // annotations.
-  std::unique_ptr<base::debug::GlobalActivityAnalyzer> global_analyzer =
-      MaybeGetInMemoryActivityAnalyzer(process_snapshot);
-  bool collected_report = false;
-  if (global_analyzer) {
-    LogCollectOnCrashEvent(CollectOnCrashEvent::kInMemoryAnnotationExists);
-
-    collected_report =
-        CollectStabilityReport(std::move(global_analyzer), &report);
-  }
-
-  CollectSystemPerformanceMetrics(&report);
-  CollectProcessPerformanceMetrics(process_snapshot, &report);
-
-  std::unique_ptr<BufferExtensionStreamDataSource> source(
-      new BufferExtensionStreamDataSource(kActivityReportStreamType));
-  if (!source->Init(report))
-    return nullptr;
-
-  if (collected_report)
-    LogCollectOnCrashEvent(CollectOnCrashEvent::kSuccess);
-
-  return source;
-}
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/activity_report_user_stream_data_source.h b/components/browser_watcher/activity_report_user_stream_data_source.h
deleted file mode 100644
index 76fe1f6..0000000
--- a/components/browser_watcher/activity_report_user_stream_data_source.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_BROWSER_WATCHER_ACTIVITY_REPORT_USER_STREAM_DATA_SOURCE_H_
-#define COMPONENTS_BROWSER_WATCHER_ACTIVITY_REPORT_USER_STREAM_DATA_SOURCE_H_
-
-#include <memory>
-
-#include "base/files/file_path.h"
-#include "third_party/crashpad/crashpad/handler/user_stream_data_source.h"
-
-namespace crashpad {
-class MinidumpUserExtensionStreamDataSource;
-class ProcessSnapshot;
-}  // namespace crashpad
-
-namespace browser_watcher {
-
-// Collects stability instrumentation corresponding to a ProcessSnapshot and
-// makes it available to the crash handler.
-class ActivityReportUserStreamDataSource
-    : public crashpad::UserStreamDataSource {
- public:
-  explicit ActivityReportUserStreamDataSource(
-      const base::FilePath& user_data_dir);
-
-  ActivityReportUserStreamDataSource(
-      const ActivityReportUserStreamDataSource&) = delete;
-  ActivityReportUserStreamDataSource& operator=(
-      const ActivityReportUserStreamDataSource&) = delete;
-
-  std::unique_ptr<crashpad::MinidumpUserExtensionStreamDataSource>
-  ProduceStreamData(crashpad::ProcessSnapshot* process_snapshot) override;
-
- private:
-  base::FilePath user_data_dir_;
-};
-
-}  // namespace browser_watcher
-
-#endif  // COMPONENTS_BROWSER_WATCHER_ACTIVITY_REPORT_USER_STREAM_DATA_SOURCE_H_
diff --git a/components/browser_watcher/activity_tracker_annotation.cc b/components/browser_watcher/activity_tracker_annotation.cc
deleted file mode 100644
index 9c253e9..0000000
--- a/components/browser_watcher/activity_tracker_annotation.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/activity_tracker_annotation.h"
-
-namespace browser_watcher {
-
-const char ActivityTrackerAnnotation::kAnnotationName[] =
-    "ActivityTrackerLocation";
-
-ActivityTrackerAnnotation::ActivityTrackerAnnotation()
-    : crashpad::Annotation(kAnnotationType, kAnnotationName, &value_) {}
-
-void ActivityTrackerAnnotation::SetValue(const void* address, size_t size) {
-  value_.address = reinterpret_cast<uint64_t>(address);
-  value_.size = size;
-  SetSize(sizeof(value_));
-}
-
-// static
-ActivityTrackerAnnotation* ActivityTrackerAnnotation::GetInstance() {
-  // This object is intentionally leaked.
-  static ActivityTrackerAnnotation* instance = new ActivityTrackerAnnotation();
-  return instance;
-}
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/activity_tracker_annotation.h b/components/browser_watcher/activity_tracker_annotation.h
deleted file mode 100644
index 9d93b85..0000000
--- a/components/browser_watcher/activity_tracker_annotation.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_BROWSER_WATCHER_ACTIVITY_TRACKER_ANNOTATION_H_
-#define COMPONENTS_BROWSER_WATCHER_ACTIVITY_TRACKER_ANNOTATION_H_
-
-#include <stdint.h>
-
-#include "third_party/crashpad/crashpad/client/annotation.h"
-
-namespace browser_watcher {
-
-// A Crashpad annotation to store the location and size of the buffer used
-// for activity tracking. This is used to retrieve and record tracked activities
-// from the handler at crash time.
-class ActivityTrackerAnnotation : public crashpad::Annotation {
- public:
-  struct ValueType {
-    uint64_t address;
-    uint64_t size;
-  };
-  static constexpr Type kAnnotationType = Annotation::UserDefinedType(0xBAB);
-  static const char kAnnotationName[];
-
-  void SetValue(const void* address, size_t size);
-
-  // Returns the sole instance of this class.
-  static ActivityTrackerAnnotation* GetInstance();
-
- private:
-  ActivityTrackerAnnotation();
-
-  ValueType value_;
-};
-
-}  // namespace browser_watcher
-
-#endif  // COMPONENTS_BROWSER_WATCHER_ACTIVITY_TRACKER_ANNOTATION_H_
diff --git a/components/browser_watcher/activity_tracker_annotation_unittest.cc b/components/browser_watcher/activity_tracker_annotation_unittest.cc
deleted file mode 100644
index 6e0ffb3..0000000
--- a/components/browser_watcher/activity_tracker_annotation_unittest.cc
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/activity_tracker_annotation.h"
-
-#include "components/crash/core/common/crash_key.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace browser_watcher {
-
-class ActivityTrackerAnnotationTest : public testing::Test {
- public:
-  void SetUp() override { crash_reporter::InitializeCrashKeysForTesting(); }
-  void TearDown() override { crash_reporter::ResetCrashKeysForTesting(); }
-};
-
-TEST_F(ActivityTrackerAnnotationTest, RegistersOnFirstSet) {
-  static const char* kBuffer[128];
-  ActivityTrackerAnnotation* annotation =
-      ActivityTrackerAnnotation::GetInstance();
-  // Validate that the annotation doesn't register on construction.
-  EXPECT_EQ("", crash_reporter::GetCrashKeyValue(
-                    ActivityTrackerAnnotation::kAnnotationName));
-
-  annotation->SetValue(&kBuffer, sizeof(kBuffer));
-  std::string string_value = crash_reporter::GetCrashKeyValue(
-      ActivityTrackerAnnotation::kAnnotationName);
-  ASSERT_EQ(sizeof(ActivityTrackerAnnotation::ValueType), string_value.size());
-
-  ActivityTrackerAnnotation::ValueType value = {};
-  memcpy(&value, string_value.data(), sizeof(value));
-
-  EXPECT_EQ(value.address, reinterpret_cast<uint64_t>(&kBuffer));
-  EXPECT_EQ(value.size, sizeof(kBuffer));
-}
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/dump_stability_report_main_win.cc b/components/browser_watcher/dump_stability_report_main_win.cc
deleted file mode 100644
index 72bbb890..0000000
--- a/components/browser_watcher/dump_stability_report_main_win.cc
+++ /dev/null
@@ -1,299 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// A utility for printing the contents of a postmortem stability minidump.
-
-#include <windows.h>  // NOLINT
-
-#include <dbghelp.h>
-
-#include "base/command_line.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/files/scoped_file.h"
-#include "base/logging.h"
-#include "base/strings/stringprintf.h"
-#include "components/browser_watcher/activity_report.pb.h"
-
-namespace {
-
-const char kUsage[] =
-    "Usage: %ls --minidump=<minidump file>\n"
-    "\n"
-    "  Dumps the contents of a postmortem minidump in a human readable way.\n";
-
-bool ParseCommandLine(const base::CommandLine* cmd,
-                      base::FilePath* minidump_path) {
-  *minidump_path = cmd->GetSwitchValuePath("minidump");
-  if (minidump_path->empty()) {
-    LOG(ERROR) << "Missing minidump file.\n";
-    LOG(ERROR) << base::StringPrintf(kUsage, cmd->GetProgram().value().c_str());
-    return false;
-  }
-  return true;
-}
-
-void Indent(FILE* out, int indent_level) {
-  DCHECK(out);
-  for (int i = 0; i < indent_level; ++i)
-    fprintf(out, "  ");
-}
-
-void PrintUserData(
-    FILE* out,
-    int indent_level,
-    const google::protobuf::Map<std::string, browser_watcher::TypedValue>&
-        user_data) {
-  DCHECK(out);
-  Indent(out, indent_level);
-  fprintf(out, "User data (%zu)\n", user_data.size());
-  for (const auto& kv : user_data) {
-    Indent(out, indent_level + 1);
-    fprintf(out, "%s : ", kv.first.c_str());
-    const browser_watcher::TypedValue& value = kv.second;
-    switch (kv.second.value_case()) {
-      case browser_watcher::TypedValue::kBytesValue: {
-        const std::string& bytes_value = value.bytes_value();
-        for (size_t i = 0; i < bytes_value.size(); ++i)
-          fprintf(out, "%02X ", bytes_value.at(i));
-        fprintf(out, "\n");
-        break;
-      }
-      case browser_watcher::TypedValue::kBytesReference:
-        fprintf(out, "bytes reference (address: %llX, size: %llX)\n",
-                value.bytes_reference().address(),
-                value.bytes_reference().size());
-        break;
-      case browser_watcher::TypedValue::kStringValue:
-        fprintf(out, "\"%s\"\n", value.string_value().c_str());
-        break;
-      case browser_watcher::TypedValue::kStringReference:
-        fprintf(out, "string reference (address: %llX, size: %llX)\n",
-                value.string_reference().address(),
-                value.string_reference().size());
-        break;
-      case browser_watcher::TypedValue::kCharValue:
-        fprintf(out, "'%s'\n", value.char_value().c_str());
-        break;
-      case browser_watcher::TypedValue::kBoolValue:
-        fprintf(out, "%s\n", value.bool_value() ? "true" : "false");
-        break;
-      case browser_watcher::TypedValue::kSignedValue:
-        fprintf(out, "%lld\n", value.signed_value());
-        break;
-      case browser_watcher::TypedValue::kUnsignedValue:
-        fprintf(out, "%llu\n", value.unsigned_value());
-        break;
-      case browser_watcher::TypedValue::VALUE_NOT_SET:
-        fprintf(out, "<not set>\n");
-        break;
-    }
-  }
-}
-
-void PrintActivity(FILE* out,
-                   int indent_level,
-                   const browser_watcher::Activity& activity) {
-  DCHECK(out);
-  Indent(out, indent_level);
-  fprintf(out, "Activity\n");
-  Indent(out, indent_level + 1);
-  fprintf(out, "type: %d\n", activity.type());
-  Indent(out, indent_level + 1);
-  fprintf(out, "time: %lld\n", activity.time());
-  Indent(out, indent_level + 1);
-  fprintf(out, "address: %llX\n", activity.address());
-  switch (activity.type()) {
-    case browser_watcher::Activity::UNKNOWN:
-      break;
-    case browser_watcher::Activity::ACT_TASK_RUN:
-      Indent(out, indent_level + 1);
-      fprintf(out, "origin_address: %llX\n", activity.origin_address());
-      fprintf(out, "task_sequence_id: %lld\n", activity.task_sequence_id());
-      break;
-    case browser_watcher::Activity::ACT_LOCK_ACQUIRE:
-      Indent(out, indent_level + 1);
-      fprintf(out, "lock_address: %llX\n", activity.lock_address());
-      break;
-    case browser_watcher::Activity::ACT_EVENT_WAIT:
-      Indent(out, indent_level + 1);
-      fprintf(out, "event_address: %llX\n", activity.event_address());
-      break;
-    case browser_watcher::Activity::ACT_THREAD_JOIN:
-      Indent(out, indent_level + 1);
-      fprintf(out, "thread_id: %lld\n", activity.thread_id());
-      break;
-    case browser_watcher::Activity::ACT_PROCESS_WAIT:
-      Indent(out, indent_level + 1);
-      fprintf(out, "process_id: %lld\n", activity.process_id());
-      break;
-    case browser_watcher::Activity::ACT_GENERIC:
-      Indent(out, indent_level + 1);
-      fprintf(out, "id: %u, data: %d\n", activity.generic_id(),
-              activity.generic_data());
-      break;
-  }
-
-  PrintUserData(out, indent_level + 1, activity.user_data());
-}
-
-void PrintProcessState(FILE* out,
-                       const browser_watcher::ProcessState& process) {
-  std::string process_type;
-  switch (process.process_type()) {
-    case browser_watcher::ProcessState::UNKNOWN_PROCESS:
-      process_type = "unknown type";
-      break;
-    case browser_watcher::ProcessState::BROWSER_PROCESS:
-      process_type = "browser";
-      break;
-    case browser_watcher::ProcessState::WATCHER_PROCESS:
-      process_type = "watcher";
-      break;
-    default:
-      base::SStringPrintf(&process_type, "process type %d",
-                          process.process_type());
-      break;
-  }
-
-  fprintf(out, "Process %lld (%s, %d threads)\n", process.process_id(),
-          process_type.c_str(), process.threads_size());
-
-  if (process.has_memory_state() &&
-      process.memory_state().has_windows_memory()) {
-    const auto& windows_memory = process.memory_state().windows_memory();
-    if (windows_memory.has_process_private_usage()) {
-      fprintf(out, "process_private_usage: %u pages\n",
-              windows_memory.process_private_usage());
-    }
-    if (windows_memory.has_process_peak_workingset_size()) {
-      fprintf(out, "process_peak_workingset_size: %u pages\n",
-              windows_memory.process_peak_workingset_size());
-    }
-    if (windows_memory.has_process_peak_pagefile_usage()) {
-      fprintf(out, "process_peak_pagefile_usage: %u pages\n",
-              windows_memory.process_peak_pagefile_usage());
-    }
-    if (windows_memory.has_process_allocation_attempt()) {
-      fprintf(out, "process_allocation_attempt: %u bytes\n",
-              windows_memory.process_allocation_attempt());
-    }
-    if (windows_memory.has_process_handle_count()) {
-      fprintf(out, "process_handle_count: %u handles\n",
-              windows_memory.process_handle_count());
-    }
-  }
-
-  for (const browser_watcher::ThreadState& thread : process.threads()) {
-    fprintf(out, "Thread %lld (%s) : %d activities\n", thread.thread_id(),
-            thread.thread_name().c_str(), thread.activity_count());
-    for (const browser_watcher::Activity& activity : thread.activities())
-      PrintActivity(out, 1, activity);
-  }
-
-  PrintUserData(out, 1, process.data());
-}
-
-// TODO(manzagop): flesh out as StabilityReport gets fleshed out.
-void PrintReport(FILE* out, const browser_watcher::StabilityReport& report) {
-  for (std::string message : report.log_messages())
-    fprintf(out, "log message:\n%s\n", message.c_str());
-
-  if (report.has_system_memory_state() &&
-      report.system_memory_state().has_windows_memory()) {
-    const auto& windows_memory = report.system_memory_state().windows_memory();
-
-    if (windows_memory.has_system_commit_limit()) {
-      fprintf(out, "system_commit_limit: %u pages\n",
-              windows_memory.system_commit_limit());
-    }
-    if (windows_memory.has_system_commit_remaining()) {
-      fprintf(out, "system_commit_remaining: %u pages\n",
-              windows_memory.system_commit_remaining());
-    }
-    if (windows_memory.has_system_handle_count()) {
-      fprintf(out, "system_handle_count: %u handles\n",
-              windows_memory.system_handle_count());
-    }
-  }
-  PrintUserData(out, 0, report.global_data());
-  for (int i = 0; i < report.process_states_size(); ++i) {
-    const browser_watcher::ProcessState process = report.process_states(i);
-    PrintProcessState(out, process);
-  }
-}
-
-bool GetStabilityStreamRvaAndSize(RVA directory_rva,
-                                  ULONG32 stream_count,
-                                  FILE* file,
-                                  RVA* report_rva,
-                                  ULONG32* report_size_bytes) {
-  std::vector<MINIDUMP_DIRECTORY> directory;
-  directory.resize(stream_count);
-
-  CHECK_EQ(0, fseek(file, directory_rva, SEEK_SET));
-  CHECK_EQ(stream_count, fread(directory.data(), sizeof(MINIDUMP_DIRECTORY),
-                               stream_count, file));
-
-  for (const MINIDUMP_DIRECTORY& entry : directory) {
-    constexpr ULONG32 kActivityStream = static_cast<ULONG32>(0x4B6B0002);
-    if (entry.StreamType == kActivityStream) {
-      *report_rva = entry.Location.Rva;
-      *report_size_bytes = entry.Location.DataSize;
-      return true;
-    }
-  }
-
-  return false;
-}
-
-int Main(int argc, char** argv) {
-  base::CommandLine::Init(argc, argv);
-
-  // Get the dump.
-  base::FilePath minidump_path;
-  if (!ParseCommandLine(base::CommandLine::ForCurrentProcess(), &minidump_path))
-    return 1;
-
-  // Read the minidump to extract the proto.
-  base::ScopedFILE minidump_file;
-  minidump_file.reset(base::OpenFile(minidump_path, "rb"));
-  CHECK(minidump_file.get());
-
-  // Read the header.
-  // TODO(manzagop): leverage Crashpad to do this.
-  MINIDUMP_HEADER header = {};
-  CHECK_EQ(1U, fread(&header, sizeof(header), 1U, minidump_file.get()));
-  CHECK_EQ(static_cast<ULONG32>(MINIDUMP_SIGNATURE), header.Signature);
-  fprintf(stdout, "Number of streams: %u\n", header.NumberOfStreams);
-  RVA directory_rva = header.StreamDirectoryRva;
-
-  RVA report_rva;
-  ULONG32 report_size_bytes;
-  CHECK(GetStabilityStreamRvaAndSize(directory_rva, header.NumberOfStreams,
-                                     minidump_file.get(), &report_rva,
-                                     &report_size_bytes));
-
-  // Read the serialized stability report.
-  std::string serialized_report;
-  serialized_report.resize(report_size_bytes);
-  CHECK_EQ(0, fseek(minidump_file.get(), report_rva, SEEK_SET));
-  CHECK_EQ(report_size_bytes, fread(&serialized_report.at(0), 1,
-                                    report_size_bytes, minidump_file.get()));
-
-  browser_watcher::StabilityReport report;
-  CHECK(report.ParseFromString(serialized_report));
-
-  // Note: we can't use the usual protocol buffer human readable API due to
-  // the use of optimize_for = LITE_RUNTIME.
-  PrintReport(stdout, report);
-
-  return 0;
-}
-
-}  // namespace
-
-int main(int argc, char** argv) {
-  return Main(argc, argv);
-}
diff --git a/components/browser_watcher/extended_crash_reporting.cc b/components/browser_watcher/extended_crash_reporting.cc
deleted file mode 100644
index 1ecb6e63..0000000
--- a/components/browser_watcher/extended_crash_reporting.cc
+++ /dev/null
@@ -1,243 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/extended_crash_reporting.h"
-
-#include <windows.h>
-
-#include <memory>
-
-#include "base/debug/activity_tracker.h"
-#include "base/memory/ptr_util.h"
-#include "base/metrics/persistent_memory_allocator.h"
-#include "base/strings/string_piece.h"
-#include "base/time/time.h"
-#include "base/win/pe_image.h"
-#include "build/build_config.h"
-#include "components/browser_watcher/activity_data_names.h"
-#include "components/browser_watcher/activity_report.pb.h"
-#include "components/browser_watcher/activity_tracker_annotation.h"
-#include "components/browser_watcher/extended_crash_reporting_metrics.h"
-#include "components/browser_watcher/features.h"
-
-#if BUILDFLAG(IS_WIN)
-// https://devblogs.microsoft.com/oldnewthing/20041025-00/?p=37483.
-extern "C" IMAGE_DOS_HEADER __ImageBase;
-#endif
-
-namespace browser_watcher {
-
-namespace {
-
-ExtendedCrashReporting* g_instance = nullptr;
-
-uintptr_t GetProgramCounter(const CONTEXT& context) {
-#if defined(ARCH_CPU_X86)
-  return context.Eip;
-#elif defined(ARCH_CPU_X86_64)
-  return context.Rip;
-#elif defined(ARCH_CPU_ARM64)
-  return context.Pc;
-#endif
-}
-
-LONG CALLBACK VectoredExceptionHandler(EXCEPTION_POINTERS* exception_pointers) {
-  base::debug::GlobalActivityTracker* tracker =
-      base::debug::GlobalActivityTracker::Get();
-  if (tracker) {
-    EXCEPTION_RECORD* record = exception_pointers->ExceptionRecord;
-    uintptr_t pc = GetProgramCounter(*exception_pointers->ContextRecord);
-    tracker->RecordException(reinterpret_cast<void*>(pc),
-                             record->ExceptionAddress, record->ExceptionCode);
-  }
-
-  return EXCEPTION_CONTINUE_SEARCH;  // Continue to the next handler.
-}
-
-// Record information about the chrome module.
-void RecordChromeModuleInfo(
-    base::debug::GlobalActivityTracker* global_tracker) {
-  DCHECK(global_tracker);
-
-  base::debug::GlobalActivityTracker::ModuleInfo module;
-  module.is_loaded = true;
-  module.address = reinterpret_cast<uintptr_t>(&__ImageBase);
-
-  base::win::PEImage pe(&__ImageBase);
-  PIMAGE_NT_HEADERS headers = pe.GetNTHeaders();
-  CHECK(headers);
-  module.size = headers->OptionalHeader.SizeOfImage;
-  module.timestamp = headers->FileHeader.TimeDateStamp;
-
-  GUID guid;
-  DWORD age;
-  LPCSTR pdb_filename = nullptr;
-  size_t pdb_filename_length = 0;
-  if (pe.GetDebugId(&guid, &age, &pdb_filename, &pdb_filename_length)) {
-    module.age = age;
-    static_assert(sizeof(module.identifier) >= sizeof(guid),
-                  "Identifier field must be able to contain a GUID.");
-    memcpy(module.identifier, &guid, sizeof(guid));
-  } else {
-    memset(module.identifier, 0, sizeof(module.identifier));
-  }
-
-  module.file = "chrome.dll";
-  module.debug_file =
-      std::string(base::StringPiece(pdb_filename, pdb_filename_length));
-
-  global_tracker->RecordModuleInfo(module);
-}
-
-}  // namespace
-
-ExtendedCrashReporting::ExtendedCrashReporting(
-    base::debug::GlobalActivityTracker* tracker)
-    : tracker_(tracker) {}
-
-ExtendedCrashReporting::~ExtendedCrashReporting() {
-  if (veh_handle_)
-    ::RemoveVectoredExceptionHandler(veh_handle_);
-}
-
-ExtendedCrashReporting* ExtendedCrashReporting::SetUpIfEnabled(
-    ProcessType process_type) {
-  DCHECK_EQ(nullptr, g_instance);
-  if (!base::FeatureList::IsEnabled(kExtendedCrashReportingFeature)) {
-    return nullptr;
-  }
-
-  return SetUpImpl(process_type);
-}
-
-ExtendedCrashReporting* ExtendedCrashReporting::GetInstance() {
-  return g_instance;
-}
-
-void ExtendedCrashReporting::SetProductStrings(
-    const std::u16string& product_name,
-    const std::u16string& product_version,
-    const std::u16string& channel_name,
-    const std::u16string& special_build) {
-  base::debug::ActivityUserData& proc_data = tracker_->process_data();
-  proc_data.SetString(kActivityProduct, product_name);
-  proc_data.SetString(kActivityVersion, product_version);
-  proc_data.SetString(kActivityChannel, channel_name);
-  proc_data.SetString(kActivitySpecialBuild, special_build);
-}
-
-void ExtendedCrashReporting::SetBool(base::StringPiece name, bool value) {
-  tracker_->process_data().SetBool(name, value);
-}
-
-void ExtendedCrashReporting::SetInt(base::StringPiece name, int64_t value) {
-  tracker_->process_data().SetInt(name, value);
-}
-
-void ExtendedCrashReporting::SetDataBool(base::StringPiece name, bool value) {
-  if (g_instance)
-    g_instance->SetBool(name, value);
-}
-
-void ExtendedCrashReporting::SetDataInt(base::StringPiece name, int64_t value) {
-  if (g_instance)
-    g_instance->SetInt(name, value);
-}
-
-void ExtendedCrashReporting::RegisterVEH() {
-#if defined(ADDRESS_SANITIZER)
-  // ASAN on windows x64 is dynamically allocating the shadow memory on a
-  // memory access violation by setting up an vector exception handler.
-  // When instrumented with ASAN, this code may trigger an exception by
-  // accessing unallocated shadow memory, which is causing an infinite
-  // recursion (i.e. infinite memory access violation).
-  (void)&VectoredExceptionHandler;
-#else
-  DCHECK_EQ(nullptr, veh_handle_);
-  // Register a vectored exception handler and request it be first. Note that
-  // subsequent registrations may also request to be first, in which case this
-  // one will be bumped.
-  // TODO(manzagop): Depending on observations, it may be necessary to
-  // consider refreshing the registration, either periodically or at opportune
-  // (e.g. risky) times.
-  veh_handle_ = ::AddVectoredExceptionHandler(1, &VectoredExceptionHandler);
-  DCHECK(veh_handle_);
-#endif  // ADDRESS_SANITIZER
-}
-
-void ExtendedCrashReporting::SetUpForTesting() {
-  ExtendedCrashReporting::SetUpImpl(kBrowserProcess);
-}
-
-void ExtendedCrashReporting::TearDownForTesting() {
-  if (g_instance) {
-    ExtendedCrashReporting* instance_to_delete = g_instance;
-    g_instance = nullptr;
-    delete instance_to_delete;
-  }
-
-  // Clear the crash annotation.
-  ActivityTrackerAnnotation::GetInstance()->Clear();
-}
-
-ExtendedCrashReporting* ExtendedCrashReporting::SetUpImpl(
-    ProcessType process_type) {
-  DCHECK_EQ(nullptr, g_instance);
-
-  // TODO(https://crbug.com/1044707): Adjust these numbers once there is real
-  // data to show just how much of an arena is necessary.
-  const size_t kMemorySize = 1 << 20;  // 1 MiB
-  const int kStackDepth = 4;
-  const uint64_t kAllocatorId = 0;
-
-  base::debug::GlobalActivityTracker::CreateWithAllocator(
-      std::make_unique<base::LocalPersistentMemoryAllocator>(
-          kMemorySize, kAllocatorId, kExtendedCrashReportingFeature.name),
-      kStackDepth, 0);
-
-  // Track code activities (such as posting task, blocking on locks, and
-  // joining threads) that can cause hanging threads and general instability
-  base::debug::GlobalActivityTracker* global_tracker =
-      base::debug::GlobalActivityTracker::Get();
-  DCHECK(global_tracker);
-
-  // Construct the instance with the new global tracker, this object is
-  // intentionally leaked.
-  std::unique_ptr<ExtendedCrashReporting> new_instance =
-      base::WrapUnique(new ExtendedCrashReporting(global_tracker));
-  new_instance->Initialize(process_type);
-  g_instance = new_instance.release();
-  return g_instance;
-}
-
-void ExtendedCrashReporting::Initialize(ProcessType process_type) {
-  // Record the location and size of the tracker memory range in a Crashpad
-  // annotation to allow the handler to retrieve it on crash.
-  // Record the buffer size and location for the annotation beacon.
-  auto* allocator = tracker_->allocator();
-  ActivityTrackerAnnotation::GetInstance()->SetValue(allocator->data(),
-                                                     allocator->size());
-
-  // Record the main DLL module info for easier symbolization.
-  RecordChromeModuleInfo(tracker_);
-
-  LogActivityRecordEvent(ActivityRecordEvent::kGotTracker);
-
-  base::debug::ActivityUserData& proc_data = tracker_->process_data();
-#if defined(ARCH_CPU_X86)
-  proc_data.SetString(kActivityPlatform, "Win32");
-#elif defined(ARCH_CPU_X86_64)
-  proc_data.SetString(kActivityPlatform, "Win64");
-#endif
-  proc_data.SetInt(
-      kActivityStartTimestamp,
-      base::Time::Now().ToDeltaSinceWindowsEpoch().InMicroseconds());
-
-  if (process_type == kBrowserProcess)
-    proc_data.SetInt(kActivityProcessType, ProcessState::BROWSER_PROCESS);
-
-  RegisterVEH();
-}
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/extended_crash_reporting.h b/components/browser_watcher/extended_crash_reporting.h
deleted file mode 100644
index 94b216be..0000000
--- a/components/browser_watcher/extended_crash_reporting.h
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_BROWSER_WATCHER_EXTENDED_CRASH_REPORTING_H_
-#define COMPONENTS_BROWSER_WATCHER_EXTENDED_CRASH_REPORTING_H_
-
-#include <stdint.h>
-
-#include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece.h"
-
-namespace base {
-namespace debug {
-class GlobalActivityTracker;
-}  // namespace debug
-}  // namespace base
-
-namespace browser_watcher {
-
-class ExtendedCrashReporting {
- public:
-  enum ProcessType { kBrowserProcess, kOther };
-
-  ~ExtendedCrashReporting();
-
-  // Initializes extended crash reporting for this process if enabled.
-  // Returns nullptr if extended crash reporting is disabled.
-  // Should only be called once in any one process.
-  static ExtendedCrashReporting* SetUpIfEnabled(ProcessType process_type);
-
-  // Retrieves the extended crash reporting instance for this process if
-  // it exists, or nullptr if it does not.
-  static ExtendedCrashReporting* GetInstance();
-
-  // Records identifying strings for the product and version for an extended
-  // crash report. This function is threadsafe.
-  void SetProductStrings(const std::u16string& product_name,
-                         const std::u16string& product_version,
-                         const std::u16string& channel_name,
-                         const std::u16string& special_build);
-
-  // Adds or updates the global extended crash reporting data.
-  // These functions are threadsafe.
-  void SetBool(base::StringPiece name, bool value);
-  void SetInt(base::StringPiece name, int64_t value);
-
-  // Adds or updates the global extended crash reporting data, if enabled.
-  static void SetDataBool(base::StringPiece name, bool value);
-  static void SetDataInt(base::StringPiece name, int64_t value);
-
-  // Allows tests to initialize and teardown the global instance.
-  static void SetUpForTesting();
-  static void TearDownForTesting();
-
- private:
-  explicit ExtendedCrashReporting(base::debug::GlobalActivityTracker* tracker);
-  static ExtendedCrashReporting* SetUpImpl(ProcessType process_type);
-  void Initialize(ProcessType process_type);
-
-  // Registers a vectored exception handler that stores exception details to the
-  // activity report on exception - handled or not.
-  void RegisterVEH();
-
-  raw_ptr<void> veh_handle_ = nullptr;
-  const raw_ptr<base::debug::GlobalActivityTracker> tracker_;
-};
-
-}  // namespace browser_watcher
-
-#endif  // COMPONENTS_BROWSER_WATCHER_EXTENDED_CRASH_REPORTING_H_
diff --git a/components/browser_watcher/extended_crash_reporting_metrics.cc b/components/browser_watcher/extended_crash_reporting_metrics.cc
deleted file mode 100644
index fcbb0b8..0000000
--- a/components/browser_watcher/extended_crash_reporting_metrics.cc
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/extended_crash_reporting_metrics.h"
-
-#include "base/metrics/histogram_functions.h"
-
-namespace browser_watcher {
-
-void LogCollectOnCrashEvent(CollectOnCrashEvent event) {
-  base::UmaHistogramEnumeration("ActivityTracker.CollectCrash.Event", event,
-                                CollectOnCrashEvent::kCollectOnCrashEventMax);
-}
-
-void LogActivityRecordEvent(ActivityRecordEvent event) {
-  base::UmaHistogramEnumeration("ActivityTracker.Record.Event", event,
-                                ActivityRecordEvent::kActivityRecordEventMax);
-}
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/extended_crash_reporting_metrics.h b/components/browser_watcher/extended_crash_reporting_metrics.h
deleted file mode 100644
index 1439ee4..0000000
--- a/components/browser_watcher/extended_crash_reporting_metrics.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_BROWSER_WATCHER_EXTENDED_CRASH_REPORTING_METRICS_H_
-#define COMPONENTS_BROWSER_WATCHER_EXTENDED_CRASH_REPORTING_METRICS_H_
-
-namespace browser_watcher {
-
-// DO NOT REMOVE OR REORDER VALUES. This is logged persistently in a histogram.
-enum class CollectOnCrashEvent {
-  kCollectAttempt,
-  kUserDataDirNotEmptyUnused,  // No longer used.
-  kPathExistsUnused,           // No longer used.
-  kReportExtractionSuccess,
-  kPmaSetDeletedFailedUnused,  // No longer used.
-  kOpenForDeleteFailedUnused,  // No longer used.
-  kSuccess,
-  kInMemoryAnnotationExists,
-  // New values go here.
-  kCollectOnCrashEventMax
-};
-
-// DO NOT REMOVE OR REORDER VALUES. This is logged persistently in a histogram.
-enum class ActivityRecordEvent {
-  kRecordAttempt,
-  kActivityDirectoryExistsUnused,  // No longer used.
-  kGotActivityPathUnused,          // No longer used.
-  kGotTracker,
-  kMarkDeletedUnused,          // No longer used.
-  kMarkDeletedGotFileUnused,   // No longer used.
-  kOpenForDeleteFailedUnused,  // No longer used.
-  // New values go here.
-  kActivityRecordEventMax
-};
-
-void LogCollectOnCrashEvent(CollectOnCrashEvent event);
-void LogActivityRecordEvent(ActivityRecordEvent event);
-
-}  // namespace browser_watcher
-
-#endif  // COMPONENTS_BROWSER_WATCHER_EXTENDED_CRASH_REPORTING_METRICS_H_
diff --git a/components/browser_watcher/extended_crash_reporting_win_unittest.cc b/components/browser_watcher/extended_crash_reporting_win_unittest.cc
deleted file mode 100644
index e86854d..0000000
--- a/components/browser_watcher/extended_crash_reporting_win_unittest.cc
+++ /dev/null
@@ -1,165 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/extended_crash_reporting.h"
-
-#include <windows.h>
-
-#include "base/command_line.h"
-#include "base/debug/activity_analyzer.h"
-#include "base/debug/activity_tracker.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/files/scoped_temp_dir.h"
-#include "base/metrics/persistent_memory_allocator.h"
-#include "base/process/process.h"
-#include "base/test/multiprocess_test.h"
-#include "base/test/scoped_feature_list.h"
-#include "build/build_config.h"
-#include "components/browser_watcher/activity_report.pb.h"
-#include "components/browser_watcher/activity_report_extractor.h"
-#include "components/browser_watcher/activity_tracker_annotation.h"
-#include "components/browser_watcher/features.h"
-#include "components/crash/core/common/crash_key.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/multiprocess_func_list.h"
-#include "third_party/crashpad/crashpad/client/annotation_list.h"
-
-namespace browser_watcher {
-
-namespace {
-
-crashpad::Annotation* GetActivtyTrackerAnnotation() {
-  crashpad::AnnotationList* annotation_list = crashpad::AnnotationList::Get();
-  for (auto it = annotation_list->begin(); it != annotation_list->end(); ++it) {
-    if (strcmp(ActivityTrackerAnnotation::kAnnotationName, (*it)->name()) ==
-            0 &&
-        ActivityTrackerAnnotation::kAnnotationType == (*it)->type()) {
-      return *it;
-    }
-  }
-
-  return nullptr;
-}
-
-bool IsNullOrEmpty(crashpad::Annotation* annotation) {
-  return annotation == nullptr || annotation->size() == 0;
-}
-
-bool IsNonEmpty(crashpad::Annotation* annotation) {
-  return annotation != nullptr && annotation->size() > 0;
-}
-
-using base::debug::GlobalActivityAnalyzer;
-using base::debug::GlobalActivityTracker;
-
-constexpr uint32_t kExceptionCode = 42U;
-constexpr uint32_t kExceptionFlagContinuable = 0U;
-
-}  // namespace
-
-class ExtendedCrashReportingTest : public testing::Test {
- public:
-  ExtendedCrashReportingTest() {}
-  ~ExtendedCrashReportingTest() override {
-    GlobalActivityTracker* global_tracker = GlobalActivityTracker::Get();
-    if (global_tracker) {
-      global_tracker->ReleaseTrackerForCurrentThreadForTesting();
-      delete global_tracker;
-    }
-  }
-
-  void SetUp() override {
-    testing::Test::SetUp();
-
-    // Initialize the crash keys, which will also reset the activity tracker
-    // annotation if it's been used in previous tests.
-    crash_reporter::InitializeCrashKeysForTesting();
-  }
-  void TearDown() override {
-    ExtendedCrashReporting::TearDownForTesting();
-    crash_reporter::ResetCrashKeysForTesting();
-    testing::Test::TearDown();
-  }
-
-  std::unique_ptr<GlobalActivityAnalyzer> CreateAnalyzer() {
-    GlobalActivityTracker* tracker = GlobalActivityTracker::Get();
-    EXPECT_TRUE(tracker);
-    base::PersistentMemoryAllocator* tmp = tracker->allocator();
-
-    return GlobalActivityAnalyzer::CreateWithAllocator(
-        std::make_unique<base::PersistentMemoryAllocator>(
-            const_cast<void*>(tmp->data()), tmp->size(), 0u, 0u, "Copy", true));
-  }
-};
-
-TEST_F(ExtendedCrashReportingTest, DisabledByDefault) {
-  EXPECT_EQ(nullptr, ExtendedCrashReporting::SetUpIfEnabled(
-                         ExtendedCrashReporting::kBrowserProcess));
-  EXPECT_EQ(nullptr, ExtendedCrashReporting::GetInstance());
-}
-
-TEST_F(ExtendedCrashReportingTest, SetUpIsEnabledByFeatureFlag) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(kExtendedCrashReportingFeature);
-
-  ExtendedCrashReporting* reporting = ExtendedCrashReporting::SetUpIfEnabled(
-      ExtendedCrashReporting::kBrowserProcess);
-  EXPECT_NE(nullptr, reporting);
-  EXPECT_EQ(reporting, ExtendedCrashReporting::GetInstance());
-}
-
-TEST_F(ExtendedCrashReportingTest, RecordsAnnotation) {
-  // Make sure the annotation doesn't exist before initialization.
-  crashpad::Annotation* annotation = GetActivtyTrackerAnnotation();
-  EXPECT_TRUE(IsNullOrEmpty(annotation));
-
-  ExtendedCrashReporting::SetUpForTesting();
-  EXPECT_NE(nullptr, ExtendedCrashReporting::GetInstance());
-  EXPECT_TRUE(IsNonEmpty(GetActivtyTrackerAnnotation()));
-}
-
-#if defined(ADDRESS_SANITIZER) && BUILDFLAG(IS_WIN)
-// The test does not pass under WinASan. See crbug.com/809524.
-#define MAYBE_CrashingTest DISABLED_CrashingTest
-#else
-#define MAYBE_CrashingTest CrashingTest
-#endif
-TEST_F(ExtendedCrashReportingTest, MAYBE_CrashingTest) {
-  ExtendedCrashReporting::SetUpForTesting();
-  ExtendedCrashReporting* extended_crash_reporting =
-      ExtendedCrashReporting::GetInstance();
-  ASSERT_NE(nullptr, extended_crash_reporting);
-
-  // Raise an exception, then continue.
-  __try {
-    ::RaiseException(kExceptionCode, kExceptionFlagContinuable, 0U, nullptr);
-  } __except (EXCEPTION_CONTINUE_EXECUTION) {
-  }
-
-  // Collect the report.
-  StabilityReport report;
-  ASSERT_EQ(SUCCESS, Extract(CreateAnalyzer(), &report));
-
-  // Validate expectations.
-  ASSERT_EQ(1, report.process_states_size());
-  const ProcessState& process_state = report.process_states(0);
-  ASSERT_EQ(1, process_state.threads_size());
-
-  bool thread_found = false;
-  for (const ThreadState& thread : process_state.threads()) {
-    if (thread.thread_id() == ::GetCurrentThreadId()) {
-      thread_found = true;
-      ASSERT_TRUE(thread.has_exception());
-      const Exception& exception = thread.exception();
-      EXPECT_EQ(kExceptionCode, exception.code());
-      EXPECT_NE(0ULL, exception.program_counter());
-      EXPECT_NE(0ULL, exception.exception_address());
-      EXPECT_NE(0LL, exception.time());
-    }
-  }
-  ASSERT_TRUE(thread_found);
-}
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/features.cc b/components/browser_watcher/features.cc
deleted file mode 100644
index 4b987b1..0000000
--- a/components/browser_watcher/features.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/browser_watcher/features.h"
-
-namespace browser_watcher {
-
-BASE_FEATURE(kExtendedCrashReportingFeature,
-             "ExtendedCrashReporting",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
-const char kInMemoryOnlyParam[] = "in_memory_only";
-
-}  // namespace browser_watcher
diff --git a/components/browser_watcher/features.h b/components/browser_watcher/features.h
deleted file mode 100644
index cc5f61c..0000000
--- a/components/browser_watcher/features.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_BROWSER_WATCHER_FEATURES_H_
-#define COMPONENTS_BROWSER_WATCHER_FEATURES_H_
-
-#include "base/feature_list.h"
-
-namespace browser_watcher {
-
-// Enables activity tracking and extending crash reports with structured
-// high-level program state.
-BASE_DECLARE_FEATURE(kExtendedCrashReportingFeature);
-
-// Name of an experiment parameter that controls whether to record browser
-// activity in-memory only.
-extern const char kInMemoryOnlyParam[];
-
-}  // namespace browser_watcher
-
-#endif  // COMPONENTS_BROWSER_WATCHER_FEATURES_H_
diff --git a/components/browser_watcher/fetch_system_session_events_main_win.cc b/components/browser_watcher/fetch_system_session_events_main_win.cc
deleted file mode 100644
index 7892a456..0000000
--- a/components/browser_watcher/fetch_system_session_events_main_win.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// A utility for testing locally the retrieval of system session events.
-
-#include <iostream>
-
-#include "base/strings/stringprintf.h"
-#include "base/time/time.h"
-#include "components/metrics/system_session_analyzer/system_session_analyzer_win.h"
-
-namespace {
-
-using metrics::SystemSessionAnalyzer;
-
-class SystemSessionEventFetcher : public SystemSessionAnalyzer {
- public:
-  explicit SystemSessionEventFetcher() : SystemSessionAnalyzer(0) {}
-  using SystemSessionAnalyzer::FetchEvents;
-};
-
-}  // namespace
-
-int main(int argc, char** argv) {
-  SystemSessionEventFetcher fetcher;
-  std::vector<SystemSessionEventFetcher::EventInfo> events;
-  // Retrieve events for the last 5 sessions. We expect our own sessions start
-  // event, and then 2 events per each preceding session for 11 total.
-  if (!fetcher.FetchEvents(11U, &events)) {
-    std::cerr << "Failed to fetch events." << std::endl;
-    return 1;
-  }
-
-  // Print the event ids and times.
-  for (const SystemSessionEventFetcher::EventInfo& event : events) {
-    base::Time::Exploded exploded = {};
-    event.event_time.LocalExplode(&exploded);
-    std::string time = base::StringPrintf(
-        "%d/%d/%d %d:%02d:%02d", exploded.month, exploded.day_of_month,
-        exploded.year, exploded.hour, exploded.minute, exploded.second);
-    std::cout << "Event: " << event.event_id << " (" << time << ")"
-              << std::endl;
-  }
-
-  return 0;
-}
diff --git a/components/browser_watcher/minidump_user_streams.h b/components/browser_watcher/minidump_user_streams.h
deleted file mode 100644
index 87f0e5ca..0000000
--- a/components/browser_watcher/minidump_user_streams.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_BROWSER_WATCHER_MINIDUMP_USER_STREAMS_H_
-#define COMPONENTS_BROWSER_WATCHER_MINIDUMP_USER_STREAMS_H_
-
-namespace browser_watcher {
-
-// The stream type assigned to the minidump stream that holds the serialized
-// stability report.
-// Note: the value was obtained by adding 1 to the stream type used for holding
-// the SyzyAsan proto.
-constexpr uint32_t kActivityReportStreamType = 0x4B6B0002;
-
-}  // namespace browser_watcher
-
-#endif  // COMPONENTS_BROWSER_WATCHER_MINIDUMP_USER_STREAMS_H_
diff --git a/components/browsing_data/content/browsing_data_model.cc b/components/browsing_data/content/browsing_data_model.cc
index 890ece0f..d942b488 100644
--- a/components/browsing_data/content/browsing_data_model.cc
+++ b/components/browsing_data/content/browsing_data_model.cc
@@ -13,6 +13,7 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/storage_partition.h"
 #include "services/network/network_context.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/trust_tokens.mojom.h"
 #include "third_party/abseil-cpp/absl/types/variant.h"
 #include "third_party/blink/public/common/features.h"
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index a4e6f0e..95fc0f6 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@
 {
-  "version": "19.17",
-  "log_list_timestamp": "2023-02-20T12:54:33Z",
+  "version": "19.18",
+  "log_list_timestamp": "2023-02-21T12:54:01Z",
   "operators": [
     {
       "name": "Google",
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
index 7d82a65..6a94580f 100644
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -573,6 +573,16 @@
            WebsiteSettingsRegistry::ALL_PLATFORMS,
            ContentSettingsInfo::INHERIT_IN_INCOGNITO,
            ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
+
+  Register(ContentSettingsType::ANTI_ABUSE, "anti-abuse", CONTENT_SETTING_ALLOW,
+           WebsiteSettingsInfo::SYNCABLE,
+           /*allowlisted_schemes=*/{},
+           /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK},
+           WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
+           WebsiteSettingsRegistry::DESKTOP |
+               WebsiteSettingsRegistry::PLATFORM_ANDROID,
+           ContentSettingsInfo::INHERIT_IN_INCOGNITO,
+           ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
 }
 
 void ContentSettingsRegistry::Register(
diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
index a1a7aef..77734c8f 100644
--- a/components/content_settings/core/common/content_settings.cc
+++ b/components/content_settings/core/common/content_settings.cc
@@ -116,6 +116,7 @@
     {ContentSettingsType::FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION, 94},
     {ContentSettingsType::FEDERATED_IDENTITY_IDENTITY_PROVIDER_REGISTRATION,
      95},
+    {ContentSettingsType::ANTI_ABUSE, 96},
 };
 
 void FilterRulesForType(ContentSettingsForOneType& settings,
diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h
index c0798e4..17c5e6a 100644
--- a/components/content_settings/core/common/content_settings_types.h
+++ b/components/content_settings/core/common/content_settings_types.h
@@ -319,6 +319,10 @@
   // a website as an identity-provider.
   FEDERATED_IDENTITY_IDENTITY_PROVIDER_REGISTRATION,
 
+  // Content setting which is used to indicate whether anti-abuse functionality
+  // should be enabled.
+  ANTI_ABUSE,
+
   NUM_TYPES,
 };
 
diff --git a/components/domain_reliability/context_unittest.cc b/components/domain_reliability/context_unittest.cc
index 6ee7275..7175c7b 100644
--- a/components/domain_reliability/context_unittest.cc
+++ b/components/domain_reliability/context_unittest.cc
@@ -12,10 +12,10 @@
 #include <utility>
 
 #include "base/functional/bind.h"
-#include "base/json/json_reader.h"
 #include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/test/metrics/histogram_tester.h"
+#include "base/test/values_test_util.h"
 #include "base/time/time.h"
 #include "components/domain_reliability/beacon.h"
 #include "components/domain_reliability/dispatcher.h"
@@ -86,9 +86,10 @@
 
 template <typename ValueTypeFindResult,
           typename ValueType,
-          ValueTypeFindResult (Value::*FindValueType)(base::StringPiece) const>
+          ValueTypeFindResult (Value::Dict::*FindValueType)(base::StringPiece)
+              const>
 struct HasValue {
-  bool operator()(const Value& dict,
+  bool operator()(const Value::Dict& dict,
                   const std::string& key,
                   ValueType expected_value) {
     ValueTypeFindResult actual_value = (dict.*FindValueType)(key);
@@ -98,25 +99,25 @@
   }
 };
 
-HasValue<absl::optional<bool>, bool, &Value::FindBoolPath> HasBooleanValue;
-HasValue<absl::optional<double>, double, &Value::FindDoublePath> HasDoubleValue;
-HasValue<absl::optional<int>, int, &Value::FindIntPath> HasIntegerValue;
-HasValue<const std::string*, std::string, &Value::FindStringPath>
+HasValue<absl::optional<bool>, bool, &Value::Dict::FindBoolByDottedPath>
+    HasBooleanValue;
+HasValue<absl::optional<double>, double, &Value::Dict::FindDoubleByDottedPath>
+    HasDoubleValue;
+HasValue<absl::optional<int>, int, &Value::Dict::FindIntByDottedPath>
+    HasIntegerValue;
+HasValue<const std::string*, std::string, &Value::Dict::FindStringByDottedPath>
     HasStringValue;
 
-bool GetEntryFromReport(const Value* report,
-                        size_t index,
-                        const Value** entry_out) {
-  if (!report || !report->is_dict())
-    return false;
-  const Value* entries = report->FindListKey("entries");
-  if (!entries || index >= entries->GetList().size())
-    return false;
-  const Value& entry = entries->GetList()[index];
-  if (!entry.is_dict())
-    return false;
-  *entry_out = &entry;
-  return true;
+const Value::Dict* GetEntryFromReport(const Value::Dict& report, size_t index) {
+  const Value::List* entries = report.FindList("entries");
+  if (!entries || index >= entries->size()) {
+    return nullptr;
+  }
+  const Value& entry = (*entries)[index];
+  if (!entry.is_dict()) {
+    return nullptr;
+  }
+  return &entry.GetDict();
 }
 
 class DomainReliabilityContextTest : public testing::Test {
@@ -362,10 +363,9 @@
   EXPECT_EQ(0, upload_max_depth());
   EXPECT_EQ(GURL("https://exampleuploader/upload"), upload_url());
 
-  std::unique_ptr<Value> value =
-      base::JSONReader::ReadDeprecated(upload_report());
-  const Value* entry;
-  ASSERT_TRUE(GetEntryFromReport(value.get(), 0, &entry));
+  base::Value::Dict value = base::test::ParseJsonDict(upload_report());
+  const Value::Dict* entry = GetEntryFromReport(value, 0);
+  ASSERT_TRUE(entry);
   EXPECT_TRUE(HasStringValue(*entry, "failure_data.custom_error",
                              "net::ERR_CONNECTION_RESET"));
   EXPECT_TRUE(HasBooleanValue(*entry, "network_changed", false));
@@ -687,10 +687,9 @@
   EXPECT_EQ(0, upload_max_depth());
   EXPECT_EQ(GURL("https://exampleuploader/upload"), upload_url());
 
-  std::unique_ptr<Value> value =
-      base::JSONReader::ReadDeprecated(upload_report());
-  const Value* entry;
-  ASSERT_TRUE(GetEntryFromReport(value.get(), 0, &entry));
+  base::Value::Dict value = base::test::ParseJsonDict(upload_report());
+  const Value::Dict* entry = GetEntryFromReport(value, 0);
+  ASSERT_TRUE(entry);
   EXPECT_TRUE(HasBooleanValue(*entry, "network_changed", true));
 
   DomainReliabilityUploader::UploadResult result;
@@ -718,10 +717,9 @@
   EXPECT_EQ(0, upload_max_depth());
   EXPECT_EQ(GURL("https://exampleuploader/upload"), upload_url());
 
-  std::unique_ptr<Value> value =
-      base::JSONReader::ReadDeprecated(upload_report());
-  const Value* entry;
-  ASSERT_TRUE(GetEntryFromReport(value.get(), 0, &entry));
+  base::Value::Dict value = base::test::ParseJsonDict(upload_report());
+  const Value::Dict* entry = GetEntryFromReport(value, 0);
+  ASSERT_TRUE(entry);
 
   EXPECT_TRUE(HasBooleanValue(*entry, "quic_broken", true));
   EXPECT_TRUE(HasBooleanValue(*entry, "quic_port_migration_detected", true));
@@ -752,10 +750,9 @@
   EXPECT_EQ(0, upload_max_depth());
   EXPECT_EQ(GURL("https://exampleuploader/upload"), upload_url());
 
-  std::unique_ptr<Value> value =
-      base::JSONReader::ReadDeprecated(upload_report());
-  const Value* entry;
-  ASSERT_TRUE(GetEntryFromReport(value.get(), 0, &entry));
+  base::Value::Dict value = base::test::ParseJsonDict(upload_report());
+  const Value::Dict* entry = GetEntryFromReport(value, 0);
+  ASSERT_TRUE(entry);
 
   EXPECT_TRUE(HasStringValue(*entry, "status", "tcp.connection_reset"));
   EXPECT_FALSE(HasStringValue(*entry, "quic_error", ""));
@@ -787,10 +784,9 @@
   EXPECT_EQ(0, upload_max_depth());
   EXPECT_EQ(GURL("https://exampleuploader/upload"), upload_url());
 
-  std::unique_ptr<Value> value =
-      base::JSONReader::ReadDeprecated(upload_report());
-  const Value* entry;
-  ASSERT_TRUE(GetEntryFromReport(value.get(), 0, &entry));
+  base::Value::Dict value = base::test::ParseJsonDict(upload_report());
+  const Value::Dict* entry = GetEntryFromReport(value, 0);
+  ASSERT_TRUE(entry);
   EXPECT_TRUE(HasBooleanValue(*entry, "quic_broken", true));
   EXPECT_TRUE(HasStringValue(*entry, "status", "tcp.connection_reset"));
   EXPECT_TRUE(HasStringValue(*entry, "quic_error", "quic.invalid.stream_data"));
@@ -833,10 +829,9 @@
   EXPECT_EQ(0, upload_max_depth());
   EXPECT_EQ(GURL("https://exampleuploader/upload"), upload_url());
 
-  std::unique_ptr<Value> value =
-      base::JSONReader::ReadDeprecated(upload_report());
-  const Value* entry;
-  ASSERT_TRUE(GetEntryFromReport(value.get(), 0, &entry));
+  base::Value::Dict value = base::test::ParseJsonDict(upload_report());
+  const Value::Dict* entry = GetEntryFromReport(value, 0);
+  ASSERT_TRUE(entry);
   EXPECT_TRUE(HasDoubleValue(*entry, "sample_rate", 0.5));
 
   DomainReliabilityUploader::UploadResult result;
diff --git a/components/fuchsia_component_support/BUILD.gn b/components/fuchsia_component_support/BUILD.gn
index 91b8667..fd7bedd3 100644
--- a/components/fuchsia_component_support/BUILD.gn
+++ b/components/fuchsia_component_support/BUILD.gn
@@ -75,6 +75,24 @@
   public_deps = [ "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.component:fuchsia.component_hlcpp" ]
 }
 
+source_set("test_support") {
+  testonly = true
+
+  # Only for use by Fuchsia Components.
+  visibility += [
+    ":unit_tests",
+    "//fuchsia_web/*",
+  ]
+  public = [ "mock_realm.h" ]
+  sources = [ "mock_realm.cc" ]
+  public_deps = [
+    "//base",
+    "//testing/gmock",
+    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.component",
+  ]
+  deps = [ "//testing/gtest" ]
+}
+
 source_set("unit_tests") {
   testonly = true
   visibility += [ "//components:components_unittests__exec" ]
@@ -88,6 +106,7 @@
     ":annotations_manager",
     ":dynamic_component_host",
     ":fuchsia_component_support",
+    ":test_support",
     "//base",
     "//base/test:test_support",
     "//components/version_info",
diff --git a/components/fuchsia_component_support/dynamic_component_host_unittest.cc b/components/fuchsia_component_support/dynamic_component_host_unittest.cc
index f995260..c976014 100644
--- a/components/fuchsia_component_support/dynamic_component_host_unittest.cc
+++ b/components/fuchsia_component_support/dynamic_component_host_unittest.cc
@@ -19,6 +19,7 @@
 #include "base/test/bind.h"
 #include "base/test/gtest_util.h"
 #include "base/test/task_environment.h"
+#include "components/fuchsia_component_support/mock_realm.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -102,34 +103,6 @@
 constexpr char kTestChildId[] = "test-child-id";
 constexpr char kTestComponentUrl[] = "dummy:url";
 
-class MockRealm : public fuchsia::component::testing::Realm_TestBase {
- public:
-  MockRealm(sys::OutgoingDirectory* outgoing) : binding_(outgoing, this) {}
-
-  MOCK_METHOD(void,
-              CreateChild,
-              (fuchsia::component::decl::CollectionRef collection,
-               fuchsia::component::decl::Child decl,
-               fuchsia::component::CreateChildArgs args,
-               fuchsia::component::Realm::CreateChildCallback callback));
-  MOCK_METHOD(void,
-              OpenExposedDir,
-              (fuchsia::component::decl::ChildRef child,
-               fidl::InterfaceRequest<fuchsia::io::Directory> exposed_dir,
-               fuchsia::component::Realm::OpenExposedDirCallback callback));
-  MOCK_METHOD(void,
-              DestroyChild,
-              (fuchsia::component::decl::ChildRef child,
-               fuchsia::component::Realm::DestroyChildCallback callback));
-
-  void NotImplemented_(const std::string& name) override {
-    ADD_FAILURE() << "NotImplemented_: " << name;
-  }
-
- protected:
-  base::ScopedServiceBinding<fuchsia::component::Realm> binding_;
-};
-
 class DynamicComponentHostTest : public testing::Test {
  protected:
   DynamicComponentHostTest() : realm_(test_context_.additional_services()) {
diff --git a/components/fuchsia_component_support/mock_realm.cc b/components/fuchsia_component_support/mock_realm.cc
new file mode 100644
index 0000000..f763b82
--- /dev/null
+++ b/components/fuchsia_component_support/mock_realm.cc
@@ -0,0 +1,20 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/fuchsia_component_support/mock_realm.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace fuchsia_component_support {
+
+MockRealm::MockRealm(sys::OutgoingDirectory* outgoing)
+    : binding_(outgoing, this) {}
+
+MockRealm::~MockRealm() = default;
+
+void MockRealm::NotImplemented_(const std::string& name) {
+  ADD_FAILURE() << "NotImplemented_: " << name;
+}
+
+}  // namespace fuchsia_component_support
diff --git a/components/fuchsia_component_support/mock_realm.h b/components/fuchsia_component_support/mock_realm.h
new file mode 100644
index 0000000..28ebed80
--- /dev/null
+++ b/components/fuchsia_component_support/mock_realm.h
@@ -0,0 +1,54 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FUCHSIA_COMPONENT_SUPPORT_MOCK_REALM_H_
+#define COMPONENTS_FUCHSIA_COMPONENT_SUPPORT_MOCK_REALM_H_
+
+#include <fuchsia/component/cpp/fidl_test_base.h>
+
+#include "base/fuchsia/scoped_service_binding.h"
+#include "testing/gmock/include/gmock/gmock.h"
+
+namespace sys {
+class OutgoingDirectory;
+}
+
+namespace fuchsia_component_support {
+
+// A Mock for tests that wish to validate interactions with
+// fuchsia.component/Realm.
+class MockRealm : public fuchsia::component::testing::Realm_TestBase {
+ public:
+  // Publishes the instance in the given outgoing directory.
+  explicit MockRealm(sys::OutgoingDirectory* outgoing);
+  ~MockRealm() override;
+
+  // fuchsia::component::testing::Realm_TestBase:
+  MOCK_METHOD(void,
+              OpenExposedDir,
+              (fuchsia::component::decl::ChildRef child,
+               fidl::InterfaceRequest<fuchsia::io::Directory> exposed_dir,
+               fuchsia::component::Realm::OpenExposedDirCallback callback),
+              (override));
+  MOCK_METHOD(void,
+              CreateChild,
+              (fuchsia::component::decl::CollectionRef collection,
+               fuchsia::component::decl::Child decl,
+               fuchsia::component::CreateChildArgs args,
+               fuchsia::component::Realm::CreateChildCallback callback),
+              (override));
+  MOCK_METHOD(void,
+              DestroyChild,
+              (fuchsia::component::decl::ChildRef child,
+               fuchsia::component::Realm::DestroyChildCallback callback),
+              (override));
+  void NotImplemented_(const std::string& name) override;
+
+ private:
+  base::ScopedServiceBinding<fuchsia::component::Realm> binding_;
+};
+
+}  // namespace fuchsia_component_support
+
+#endif  // COMPONENTS_FUCHSIA_COMPONENT_SUPPORT_MOCK_REALM_H_
diff --git a/components/keep_alive_registry/BUILD.gn b/components/keep_alive_registry/BUILD.gn
index bf3144a..f1df4c7 100644
--- a/components/keep_alive_registry/BUILD.gn
+++ b/components/keep_alive_registry/BUILD.gn
@@ -16,10 +16,6 @@
   ]
 
   deps = [ "//base" ]
-
-  if (is_win) {
-    deps += [ "//components/browser_watcher:stability_client" ]
-  }
 }
 
 source_set("unit_tests") {
diff --git a/components/keep_alive_registry/DEPS b/components/keep_alive_registry/DEPS
deleted file mode 100644
index 5cb0221..0000000
--- a/components/keep_alive_registry/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
-  "+components/browser_watcher",
-]
diff --git a/components/keep_alive_registry/keep_alive_registry.cc b/components/keep_alive_registry/keep_alive_registry.cc
index 6550cba..d51bb41b 100644
--- a/components/keep_alive_registry/keep_alive_registry.cc
+++ b/components/keep_alive_registry/keep_alive_registry.cc
@@ -6,15 +6,9 @@
 
 #include "base/logging.h"
 #include "base/observer_list.h"
-#include "build/build_config.h"
 #include "components/keep_alive_registry/keep_alive_state_observer.h"
 #include "components/keep_alive_registry/keep_alive_types.h"
 
-#if BUILDFLAG(IS_WIN)
-#include "components/browser_watcher/activity_data_names.h"
-#include "components/browser_watcher/extended_crash_reporting.h"
-#endif
-
 ////////////////////////////////////////////////////////////////////////////////
 // Public methods
 
@@ -174,10 +168,6 @@
 void KeepAliveRegistry::OnKeepAliveStateChanged(bool new_keeping_alive) {
   DVLOG(1) << "Notifying KeepAliveStateObservers: KeepingAlive changed to: "
            << new_keeping_alive;
-#if BUILDFLAG(IS_WIN)
-  browser_watcher::ExtendedCrashReporting::SetDataBool(
-      browser_watcher::kActivityKeepAlive, new_keeping_alive);
-#endif
   for (KeepAliveStateObserver& observer : observers_)
     observer.OnKeepAliveStateChanged(new_keeping_alive);
 }
@@ -185,10 +175,6 @@
 void KeepAliveRegistry::OnRestartAllowedChanged(bool new_restart_allowed) {
   DVLOG(1) << "Notifying KeepAliveStateObservers: Restart changed to: "
            << new_restart_allowed;
-#if BUILDFLAG(IS_WIN)
-  browser_watcher::ExtendedCrashReporting::SetDataBool(
-      browser_watcher::kActivityRestartAllowed, new_restart_allowed);
-#endif
   for (KeepAliveStateObserver& observer : observers_)
     observer.OnKeepAliveRestartStateChanged(new_restart_allowed);
 }
diff --git a/components/metrics/BUILD.gn b/components/metrics/BUILD.gn
index 4dac814..d787d25 100644
--- a/components/metrics/BUILD.gn
+++ b/components/metrics/BUILD.gn
@@ -236,7 +236,6 @@
       "system_session_analyzer/system_session_analyzer_win.cc",
       "system_session_analyzer/system_session_analyzer_win.h",
     ]
-    deps += [ "//components/browser_watcher:stability_client" ]
     libs = [ "wevtapi.lib" ]
   } else {
     sources += [ "machine_id_provider_nonwin.cc" ]
diff --git a/components/metrics/DEPS b/components/metrics/DEPS
index 053c69b..7607af6 100644
--- a/components/metrics/DEPS
+++ b/components/metrics/DEPS
@@ -2,7 +2,6 @@
 # dependencies to a minimal set.
 include_rules = [
   "-components",
-  "+components/browser_watcher",
   "+components/component_updater",
   "+components/flags_ui",
   "+components/metrics",
diff --git a/components/metrics/metrics_features.cc b/components/metrics/metrics_features.cc
index 3a9a290..0a18d7f 100644
--- a/components/metrics/metrics_features.cc
+++ b/components/metrics/metrics_features.cc
@@ -7,10 +7,10 @@
 namespace metrics::features {
 BASE_FEATURE(kEmitHistogramsEarlier,
              "EmitHistogramsEarlier",
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 const base::FeatureParam<bool> kEmitHistogramsForIndependentLogs{
-    &kEmitHistogramsEarlier, "emit_for_independent_logs", false};
+    &kEmitHistogramsEarlier, "emit_for_independent_logs", true};
 
 BASE_FEATURE(kMetricsServiceAsyncCollection,
              "MetricsServiceAsyncCollection",
diff --git a/components/metrics/motherboard.cc b/components/metrics/motherboard.cc
index c5bcaa68..4b2270d 100644
--- a/components/metrics/motherboard.cc
+++ b/components/metrics/motherboard.cc
@@ -16,7 +16,6 @@
 #if BUILDFLAG(IS_WIN)
 #include <windows.h>
 
-#include "base/scoped_native_library.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/threading/scoped_blocking_call.h"
 #include "base/win/scoped_bstr.h"
@@ -142,20 +141,8 @@
 }
 
 void ReadFirmwareType(absl::optional<Motherboard::BiosType>* bios_type) {
-  // NOTE: GetFirmwareType API only exists on >= Win8.  Dynamically
-  //       get function handle.
-  using GetFirmwareTypeFunction = decltype(&GetFirmwareType);
-  base::ScopedNativeLibrary dll(base::FilePath(L"kernel32.dll"));
-  if (!dll.is_valid())
-    return;
-  GetFirmwareTypeFunction get_firmware_type_function =
-      reinterpret_cast<GetFirmwareTypeFunction>(
-          dll.GetFunctionPointer("GetFirmwareType"));
-  if (!get_firmware_type_function)
-    return;
-
   FIRMWARE_TYPE firmware_type = FirmwareTypeUnknown;
-  if (get_firmware_type_function(&firmware_type)) {
+  if (::GetFirmwareType(&firmware_type)) {
     if (firmware_type == FirmwareTypeBios) {
       *bios_type = Motherboard::BiosType::kLegacy;
     } else if (firmware_type == FirmwareTypeUefi) {
diff --git a/components/mirroring/service/fake_network_service.cc b/components/mirroring/service/fake_network_service.cc
index f1dc9355..81e7aa9 100644
--- a/components/mirroring/service/fake_network_service.cc
+++ b/components/mirroring/service/fake_network_service.cc
@@ -7,6 +7,7 @@
 #include "base/ranges/algorithm.h"
 #include "media/cast/test/utility/net_utility.h"
 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/test/test_url_loader_factory.h"
 
 namespace mirroring {
diff --git a/components/mirroring/service/openscreen_session_host_unittest.cc b/components/mirroring/service/openscreen_session_host_unittest.cc
index 98eddfe..4c797c1d 100644
--- a/components/mirroring/service/openscreen_session_host_unittest.cc
+++ b/components/mirroring/service/openscreen_session_host_unittest.cc
@@ -31,6 +31,7 @@
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "net/base/ip_address.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/viz/public/cpp/gpu/gpu.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/mirroring/service/session_unittest.cc b/components/mirroring/service/session_unittest.cc
index eb8689db..1f6f4bc 100644
--- a/components/mirroring/service/session_unittest.cc
+++ b/components/mirroring/service/session_unittest.cc
@@ -31,6 +31,7 @@
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "net/base/ip_address.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/viz/public/cpp/gpu/gpu.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/mirroring/service/udp_socket_client_unittest.cc b/components/mirroring/service/udp_socket_client_unittest.cc
index 550683d..95fb3ae 100644
--- a/components/mirroring/service/udp_socket_client_unittest.cc
+++ b/components/mirroring/service/udp_socket_client_unittest.cc
@@ -18,6 +18,7 @@
 #include "media/cast/test/utility/net_utility.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "net/base/ip_endpoint.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/components/nacl/broker/BUILD.gn b/components/nacl/broker/BUILD.gn
index 33847ff..b5858b0 100644
--- a/components/nacl/broker/BUILD.gn
+++ b/components/nacl/broker/BUILD.gn
@@ -158,7 +158,6 @@
       "//chrome/common:constants",
       "//chrome/install_static:install_static_util",
       "//chrome/installer/util:with_no_strings",
-      "//components/browser_watcher:browser_watcher_client",
       "//components/crash/core/common",
       "//components/flags_ui:switches",
       "//components/policy:generated",
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java
index 22e53fc0..478ddd1 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java
@@ -131,7 +131,7 @@
         if (isDeletionDisabled()) return;
         if (mWebsite == null) return;
 
-        new SiteDataCleaner().clearData(
+        SiteDataCleaner.clearData(
                 mMainController.getBrowserContext(), mWebsite, mMainController::exitSubpage);
     }
 
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java
index d86e9f0f..1e560ed 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java
@@ -198,7 +198,7 @@
         fetcher.fetchAllPreferences((Collection<Website> sites) -> {
             Website site = SingleWebsiteSettings.mergePermissionAndStorageInfoForTopLevelOrigin(
                     address, sites);
-            new SiteDataCleaner().resetPermissions(browserContext, site);
+            SiteDataCleaner.resetPermissions(browserContext, site);
             mMainController.refreshPermissions();
         });
     }
diff --git a/components/password_manager/core/browser/login_database.cc b/components/password_manager/core/browser/login_database.cc
index 6fc77e9f..4032086 100644
--- a/components/password_manager/core/browser/login_database.cc
+++ b/components/password_manager/core/browser/login_database.cc
@@ -888,15 +888,15 @@
   if (migration_success && current_version <= 15) {
     migration_success = stats_table_.MigrateToVersion(16);
   }
-  if (migration_success) {
+  if (migration_success && current_version < kCurrentVersionNumber) {
     // |migration_success| could be true when no logins have been actually
     // migrated. We should protect against downgrading the database version in
     // such case. Update the database version only if a migration took place.
-    if (current_version < kCurrentVersionNumber) {
-      meta_table_.SetCompatibleVersionNumber(kCompatibleVersionNumber);
-      meta_table_.SetVersionNumber(kCurrentVersionNumber);
-    }
-  } else {
+    migration_success =
+        meta_table_.SetCompatibleVersionNumber(kCompatibleVersionNumber) &&
+        meta_table_.SetVersionNumber(kCurrentVersionNumber);
+  }
+  if (!migration_success) {
     LogDatabaseInitError(MIGRATION_ERROR);
     LOG(ERROR) << "Unable to migrate database from "
                << meta_table_.GetVersionNumber() << " to "
diff --git a/components/password_manager/core/browser/login_database_unittest.cc b/components/password_manager/core/browser/login_database_unittest.cc
index b5f5cf5..5e641291 100644
--- a/components/password_manager/core/browser/login_database_unittest.cc
+++ b/components/password_manager/core/browser/login_database_unittest.cc
@@ -1842,7 +1842,7 @@
     // Set the DB version to be coming from the future.
     ASSERT_TRUE(meta_table.Init(&connection, kDBFutureVersion,
                                 kCompatibleVersionNumber));
-    meta_table.SetVersionNumber(kDBFutureVersion);
+    ASSERT_TRUE(meta_table.SetVersionNumber(kDBFutureVersion));
   }
   {
     // Open the database again.
diff --git a/components/performance_manager/BUILD.gn b/components/performance_manager/BUILD.gn
index 76794b2..8ecb6f7 100644
--- a/components/performance_manager/BUILD.gn
+++ b/components/performance_manager/BUILD.gn
@@ -183,8 +183,6 @@
     "v8_memory/web_memory_aggregator.h",
     "v8_memory/web_memory_impl.cc",
     "v8_memory/web_memory_impl.h",
-    "v8_memory/web_memory_stress_tester.cc",
-    "v8_memory/web_memory_stress_tester.h",
     "web_contents_proxy.cc",
     "web_contents_proxy_impl.cc",
     "web_contents_proxy_impl.h",
diff --git a/components/performance_manager/graph_features.cc b/components/performance_manager/graph_features.cc
index 8d283b7..b8eca8c 100644
--- a/components/performance_manager/graph_features.cc
+++ b/components/performance_manager/graph_features.cc
@@ -20,7 +20,6 @@
 #include "components/performance_manager/public/graph/graph.h"
 #include "components/performance_manager/public/metrics/metrics_collector.h"
 #include "components/performance_manager/v8_memory/v8_context_tracker.h"
-#include "components/performance_manager/v8_memory/web_memory_stress_tester.h"
 
 #if !BUILDFLAG(IS_ANDROID)
 #include "components/performance_manager/public/decorators/site_data_recorder.h"
@@ -72,8 +71,6 @@
   }
   if (flags_.v8_context_tracker) {
     Install<v8_memory::V8ContextTracker>(graph);
-    if (v8_memory::WebMeasureMemoryStressTester::FeatureIsEnabled())
-      Install<v8_memory::WebMeasureMemoryStressTester>(graph);
   }
 }
 
diff --git a/components/performance_manager/v8_memory/web_memory_stress_tester.cc b/components/performance_manager/v8_memory/web_memory_stress_tester.cc
deleted file mode 100644
index 57185d82..0000000
--- a/components/performance_manager/v8_memory/web_memory_stress_tester.cc
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/performance_manager/v8_memory/web_memory_stress_tester.h"
-
-#include <memory>
-#include <string>
-#include <utility>
-
-#include "base/check.h"
-#include "base/dcheck_is_on.h"
-#include "base/debug/activity_tracker.h"
-#include "base/debug/dump_without_crashing.h"
-#include "base/feature_list.h"
-#include "base/functional/bind.h"
-#include "base/functional/callback_helpers.h"
-#include "base/memory/weak_ptr.h"
-#include "base/metrics/field_trial_params.h"
-#include "base/rand_util.h"
-#include "components/performance_manager/graph/frame_node_impl.h"
-#include "components/performance_manager/public/graph/frame_node.h"
-#include "components/performance_manager/public/graph/page_node.h"
-#include "components/performance_manager/public/mojom/web_memory.mojom.h"
-#include "components/performance_manager/public/v8_memory/web_memory.h"
-#include "mojo/public/cpp/bindings/message.h"
-#include "url/origin.h"
-
-namespace performance_manager {
-
-namespace v8_memory {
-
-namespace {
-
-#if DCHECK_IS_ON()
-// Give the feature a different name on the Albatross build so it can get
-// different parameters.
-BASE_FEATURE(kStressTestFeature,
-             "StressTestWebMeasureMemoryDcheck",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-#else
-BASE_FEATURE(kStressTestFeature,
-             "StressTestWebMeasureMemory",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-#endif
-
-constexpr base::FeatureParam<double> kStressTestProbabilityParam{
-    &kStressTestFeature, "probability", 0.0};
-
-class StressTestSecurityChecker : public WebMeasureMemorySecurityChecker {
- public:
-  StressTestSecurityChecker() = default;
-  ~StressTestSecurityChecker() override = default;
-
-  void CheckMeasureMemoryIsAllowed(
-      const FrameNode* frame_node,
-      MeasureMemoryCallback measure_memory_callback,
-      mojo::ReportBadMessageCallback bad_message_callback) const override {
-    // No need for a security check since we are not reporting results to the
-    // renderer.
-    DCHECK(frame_node);
-    DCHECK_ON_GRAPH_SEQUENCE(frame_node->GetGraph());
-    std::move(measure_memory_callback)
-        .Run(FrameNodeImpl::FromNode(frame_node)->GetWeakPtr());
-  }
-};
-
-// When the production implementation would kill a renderer, instead upload a
-// crash report with the message in a breadcrumb. This should only be done once
-// per browser session to avoid spamming crashes.
-void ReportBadMessageInCrashOnce(base::StringPiece message) {
-  static bool have_crashed = false;
-  if (have_crashed)
-    return;
-  have_crashed = true;
-  base::debug::ScopedActivity scoped_activity;
-  auto& user_data = scoped_activity.user_data();
-  user_data.SetString("web_measure_memory_bad_mojo_message", message);
-  // Crashes here should be assigned to https://crbug.com/1085129 for
-  // investigation.
-  base::debug::DumpWithoutCrashing();
-}
-
-}  // namespace
-
-// static
-bool WebMeasureMemoryStressTester::FeatureIsEnabled() {
-  return base::FeatureList::IsEnabled(kStressTestFeature);
-}
-
-void WebMeasureMemoryStressTester::OnLoadingStateChanged(
-    const PageNode* page_node,
-    PageNode::LoadingState previous_state) {
-  DCHECK(page_node);
-  DCHECK_ON_GRAPH_SEQUENCE(page_node->GetGraph());
-  if (page_node->GetLoadingState() != PageNode::LoadingState::kLoadedIdle)
-    return;
-  const FrameNode* main_frame = page_node->GetMainFrameNode();
-  if (!main_frame)
-    return;
-  if (url::Origin::Create(main_frame->GetURL()).opaque())
-    return;
-  if (base::RandDouble() > kStressTestProbabilityParam.Get())
-    return;
-  WebMeasureMemory(main_frame, mojom::WebMemoryMeasurement::Mode::kDefault,
-                   std::make_unique<StressTestSecurityChecker>(),
-                   /*result_callback=*/base::DoNothing(),
-                   base::BindOnce(&ReportBadMessageInCrashOnce));
-}
-
-void WebMeasureMemoryStressTester::OnPassedToGraph(Graph* graph) {
-  graph->AddPageNodeObserver(this);
-}
-
-void WebMeasureMemoryStressTester::OnTakenFromGraph(Graph* graph) {
-  graph->RemovePageNodeObserver(this);
-}
-
-}  // namespace v8_memory
-
-}  // namespace performance_manager
diff --git a/components/performance_manager/v8_memory/web_memory_stress_tester.h b/components/performance_manager/v8_memory/web_memory_stress_tester.h
deleted file mode 100644
index 4342190..0000000
--- a/components/performance_manager/v8_memory/web_memory_stress_tester.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_PERFORMANCE_MANAGER_V8_MEMORY_WEB_MEMORY_STRESS_TESTER_H_
-#define COMPONENTS_PERFORMANCE_MANAGER_V8_MEMORY_WEB_MEMORY_STRESS_TESTER_H_
-
-#include "components/performance_manager/public/graph/graph.h"
-#include "components/performance_manager/public/graph/page_node.h"
-
-namespace performance_manager {
-
-namespace v8_memory {
-
-// Observer that calls WebMeasureMemory randomly after a page load, and
-// discards the results, to check for crashes. This is controlled by an
-// experiment that will only be enabled for some Canary users.
-class WebMeasureMemoryStressTester : public PageNode::ObserverDefaultImpl,
-                                     public GraphOwned {
- public:
-  static bool FeatureIsEnabled();
-
-  WebMeasureMemoryStressTester() = default;
-  ~WebMeasureMemoryStressTester() override = default;
-
-  WebMeasureMemoryStressTester(const WebMeasureMemoryStressTester& other) =
-      delete;
-  WebMeasureMemoryStressTester& operator=(
-      const WebMeasureMemoryStressTester& other) = delete;
-
-  // PageNode::ObserverDefaultImpl
-  void OnLoadingStateChanged(const PageNode* page_node,
-                             PageNode::LoadingState previous_state) override;
-
-  // GraphOwned
-  void OnPassedToGraph(Graph* graph) override;
-  void OnTakenFromGraph(Graph* graph) override;
-};
-
-}  // namespace v8_memory
-
-}  // namespace performance_manager
-
-#endif  // COMPONENTS_PERFORMANCE_MANAGER_V8_MEMORY_WEB_MEMORY_STRESS_TESTER_H_
diff --git a/components/policy/core/browser/policy_conversions_client.cc b/components/policy/core/browser/policy_conversions_client.cc
index 8c88356..c4ecca0 100644
--- a/components/policy/core/browser/policy_conversions_client.cc
+++ b/components/policy/core/browser/policy_conversions_client.cc
@@ -30,6 +30,14 @@
 
 namespace policy {
 
+namespace {
+const char* USER_SCOPE = "user";
+const char* DEVICE_SCOPE = "machine";
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+const char* ALL_USERS_SCOPE = "allUsers";
+#endif
+}  // namespace
+
 PolicyConversionsClient::PolicyConversionsClient() = default;
 PolicyConversionsClient::~PolicyConversionsClient() = default;
 
@@ -102,6 +110,10 @@
   // Convert dictionary values to strings for display.
   handler_list->PrepareForDisplaying(&map);
 
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+  PopulatePerProfileMap();
+#endif
+
   return GetPolicyValues(map, &errors, deprecated_policies, future_policies,
                          GetKnownPolicies(schema_map, policy_namespace));
 }
@@ -247,8 +259,7 @@
   value.Set("value",
             CopyAndMaybeConvert(*policy.value_unsafe(), known_policy_schema));
   if (convert_types_enabled_) {
-    value.Set("scope",
-              (policy.scope == POLICY_SCOPE_USER) ? "user" : "machine");
+    value.Set("scope", GetPolicyScope(policy_name, policy.scope));
     value.Set("level", (policy.level == POLICY_LEVEL_RECOMMENDED)
                            ? "recommended"
                            : "mandatory");
@@ -444,4 +455,51 @@
 }
 #endif  // BUILDFLAG(IS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
 
+std::string PolicyConversionsClient::GetPolicyScope(
+    const std::string& policy_name,
+    const PolicyScope& policy_scope) const {
+  if (policy_scope != POLICY_SCOPE_USER) {
+    return DEVICE_SCOPE;
+  }
+
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+  if (per_profile_map_) {
+    auto it = per_profile_map_->find(policy_name);
+    if (it != per_profile_map_->end()) {
+      return it->second ? USER_SCOPE : ALL_USERS_SCOPE;
+    }
+  }
+#endif
+
+  // In Lacros case, this policy is missing from the policy templates.
+  // Which means it's a policy for apps/extensions.
+  return USER_SCOPE;
+}
+
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+void PolicyConversionsClient::PopulatePerProfileMap() {
+  if (per_profile_map_) {
+    return;
+  }
+
+  per_profile_map_ = std::make_unique<std::map<std::string, bool>>();
+  for (const BooleanPolicyAccess& access : kBooleanPolicyAccess) {
+    per_profile_map_->emplace(std::string(access.policy_key),
+                              access.per_profile);
+  }
+  for (const IntegerPolicyAccess& access : kIntegerPolicyAccess) {
+    per_profile_map_->emplace(std::string(access.policy_key),
+                              access.per_profile);
+  }
+  for (const StringPolicyAccess& access : kStringPolicyAccess) {
+    per_profile_map_->emplace(std::string(access.policy_key),
+                              access.per_profile);
+  }
+  for (const StringListPolicyAccess& access : kStringListPolicyAccess) {
+    per_profile_map_->emplace(std::string(access.policy_key),
+                              access.per_profile);
+  }
+}
+#endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+
 }  // namespace policy
diff --git a/components/policy/core/browser/policy_conversions_client.h b/components/policy/core/browser/policy_conversions_client.h
index b75cfd8..93e7e543 100644
--- a/components/policy/core/browser/policy_conversions_client.h
+++ b/components/policy/core/browser/policy_conversions_client.h
@@ -167,6 +167,12 @@
  private:
   friend class PolicyConversionsClientTest;
 
+  // Returns the policy scope to be used for UI. The |policy_scope| from the
+  // input is the generic scope: device or user policy. But in Lacros case we
+  // need to filter the user policies based on per_profile flag.
+  std::string GetPolicyScope(const std::string& policy_name,
+                             const PolicyScope& policy_scope) const;
+
   bool convert_types_enabled_ = true;
   bool convert_values_enabled_ = false;
   bool device_local_account_policies_enabled_ = false;
@@ -174,6 +180,11 @@
   bool pretty_print_enabled_ = true;
   bool user_policies_enabled_ = true;
   bool drop_default_values_enabled_ = false;
+
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+  void PopulatePerProfileMap();
+  std::unique_ptr<std::map<std::string, bool>> per_profile_map_;
+#endif
 };
 
 }  // namespace policy
diff --git a/components/policy/core/common/policy_loader_common.cc b/components/policy/core/common/policy_loader_common.cc
index 1769790..28634ef0 100644
--- a/components/policy/core/common/policy_loader_common.cc
+++ b/components/policy/core/common/policy_loader_common.cc
@@ -118,21 +118,22 @@
     return false;
   }
 
+  base::Value::Dict& policy_dict = policy_dict_value->GetDict();
   // Note that we only search for sensitive entries, all other validations will
   // be handled by ExtensionSettingsPolicyHandler.
   std::vector<std::string> filtered_extensions;
-  for (auto entry : policy_dict_value->DictItems()) {
+  for (auto entry : policy_dict) {
     if (entry.first == kWildcard)
       continue;
     if (!entry.second.is_dict())
       continue;
-    std::string* installation_mode =
-        entry.second.FindStringKey(kInstallationMode);
+    base::Value::Dict& entry_dict = entry.second.GetDict();
+    std::string* installation_mode = entry_dict.FindString(kInstallationMode);
     if (!installation_mode || (*installation_mode != kForceInstalled &&
                                *installation_mode != kNormalInstalled)) {
       continue;
     }
-    std::string* update_url = entry.second.FindStringKey(kUpdateUrl);
+    std::string* update_url = entry_dict.FindString(kUpdateUrl);
     if (!update_url || base::EqualsCaseInsensitiveASCII(
                            *update_url, kChromeWebstoreUpdateURL)) {
       continue;
@@ -145,11 +146,11 @@
   // invalid extension id and will be removed by PolicyHandler later.
   if (!filtered_extensions.empty()) {
     for (const auto& extension : filtered_extensions) {
-      auto setting = policy_dict_value->ExtractKey(extension);
+      auto setting = policy_dict.Extract(extension);
       if (!setting)
         continue;
-      policy_dict_value->SetKey(kBlockedExtensionPrefix + extension,
-                                std::move(setting.value()));
+      policy_dict.Set(kBlockedExtensionPrefix + extension,
+                      std::move(setting.value()));
     }
     map_entry->AddMessage(PolicyMap::MessageType::kWarning,
                           IDS_POLICY_OFF_CWS_URL_ERROR,
diff --git a/components/policy/core/common/policy_loader_win.cc b/components/policy/core/common/policy_loader_win.cc
index 5d5b477a..0714452d 100644
--- a/components/policy/core/common/policy_loader_win.cc
+++ b/components/policy/core/common/policy_loader_win.cc
@@ -251,13 +251,6 @@
 }
 
 PolicyLoaderWin::~PolicyLoaderWin() {
-  // Mitigate the issues caused by loading DLLs or lazily resolving symbols on a
-  // background thread (http://crbug/973868) which can hold the process wide
-  // LoaderLock and cause contention on Foreground threads. This issue is solved
-  // on Windows version after Win7. This code can be removed when Win7 is no
-  // longer supported.
-  SCOPED_MAY_LOAD_LIBRARY_AT_BACKGROUND_PRIORITY();
-
   if (!user_policy_watcher_failed_) {
     ::UnregisterGPNotification(user_policy_changed_event_.handle());
     user_policy_watcher_.StopWatching();
diff --git a/components/policy/core/common/policy_logger.cc b/components/policy/core/common/policy_logger.cc
index c1dfaaeb..2fa5a56e 100644
--- a/components/policy/core/common/policy_logger.cc
+++ b/components/policy/core/common/policy_logger.cc
@@ -193,7 +193,7 @@
 #endif  // BUILDFLAG(IS_ANDROID)
 }
 
-int PolicyLogger::GetPolicyLogsSizeForTesting() const {
+size_t PolicyLogger::GetPolicyLogsSizeForTesting() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(logs_list_sequence_checker_);
   return logs_.size();
 }
diff --git a/components/policy/core/common/policy_logger.h b/components/policy/core/common/policy_logger.h
index 7eba382..3baba5c 100644
--- a/components/policy/core/common/policy_logger.h
+++ b/components/policy/core/common/policy_logger.h
@@ -155,7 +155,7 @@
   bool IsPolicyLoggingEnabled() const;
 
   // Returns the logs size for testing purposes.
-  int GetPolicyLogsSizeForTesting() const;
+  size_t GetPolicyLogsSizeForTesting() const;
 
   // TODO(b/251799119): delete logs after an expiry period of ~30 minutes.
 
diff --git a/components/policy/core/common/policy_logger_unittest.cc b/components/policy/core/common/policy_logger_unittest.cc
index 9cab75a..2fec90da 100644
--- a/components/policy/core/common/policy_logger_unittest.cc
+++ b/components/policy/core/common/policy_logger_unittest.cc
@@ -30,10 +30,14 @@
 
   PolicyLogger* policy_logger = policy::PolicyLogger::GetInstance();
 
-  int logs_size_before_adding = policy_logger->GetPolicyLogsSizeForTesting();
+  size_t logs_size_before_adding = policy_logger->GetPolicyLogsSizeForTesting();
   AddLogs("when the feature is enabled.", policy_logger);
-  EXPECT_EQ(policy_logger->GetPolicyLogsSizeForTesting(),
-            logs_size_before_adding + 1);
+  // Check that logger is enabled by feature and that `GetAsList` returns an
+  // updated list of logs.
+  EXPECT_EQ(policy_logger->GetAsList().size(), logs_size_before_adding + 1);
+  EXPECT_EQ(*(policy_logger->GetAsList()[logs_size_before_adding].FindStringKey(
+                "message")),
+            "Element added when the feature is enabled.");
 }
 
 TEST(PolicyLoggerTest, PolicyLoggingDisabled) {
@@ -43,7 +47,7 @@
 
   PolicyLogger* policy_logger = policy::PolicyLogger::GetInstance();
 
-  int logs_size_before_adding = policy_logger->GetPolicyLogsSizeForTesting();
+  size_t logs_size_before_adding = policy_logger->GetPolicyLogsSizeForTesting();
   AddLogs("when the feature is disabled.", policy_logger);
   EXPECT_EQ(policy_logger->GetPolicyLogsSizeForTesting(),
             logs_size_before_adding);
diff --git a/components/policy/core/common/policy_map.cc b/components/policy/core/common/policy_map.cc
index 480f476..81ff2521 100644
--- a/components/policy/core/common/policy_map.cc
+++ b/components/policy/core/common/policy_map.cc
@@ -234,6 +234,10 @@
   ClearMessage(MessageType::kWarning, IDS_POLICY_CONFLICT_DIFF_VALUE);
 }
 
+bool PolicyMap::Entry::HasConflicts() {
+  return !conflicts.empty();
+}
+
 bool PolicyMap::Entry::HasMessage(MessageType type) const {
   return message_ids_.find(type) != message_ids_.end();
 }
diff --git a/components/policy/core/common/policy_map.h b/components/policy/core/common/policy_map.h
index baad5452..aa71b5a135 100644
--- a/components/policy/core/common/policy_map.h
+++ b/components/policy/core/common/policy_map.h
@@ -103,6 +103,9 @@
     // Removes all the conflicts.
     void ClearConflicts();
 
+    // Whether the policy has conflicting policies.
+    bool HasConflicts();
+
     // Getter for |ignored_|.
     bool ignored() const;
     // Sets |ignored_| to true.
diff --git a/components/policy/core/common/policy_map_unittest.cc b/components/policy/core/common/policy_map_unittest.cc
index c8b43c6..eb43975 100644
--- a/components/policy/core/common/policy_map_unittest.cc
+++ b/components/policy/core/common/policy_map_unittest.cc
@@ -13,9 +13,11 @@
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/values.h"
 #include "build/build_config.h"
 #include "components/policy/core/common/external_data_manager.h"
+#include "components/policy/core/common/features.h"
 #include "components/policy/core/common/policy_details.h"
 #include "components/policy/core/common/policy_merger.h"
 #include "components/policy/core/common/policy_types.h"
@@ -502,6 +504,232 @@
 #endif  // BUILDFLAG(IS_CHROMEOS)
 
 TEST_F(PolicyMapTest, MergeValuesList) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(
+      policy::features::kPolicyMergeMultiSource);
+
+  base::Value::List abcd = GetList<std::string>({"a", "b", "c", "d"});
+  base::Value::List abc = GetList<std::string>({"a", "b", "c"});
+  base::Value::List ab = GetList<std::string>({"a", "b"});
+  base::Value::List cd = GetList<std::string>({"c", "d"});
+  base::Value::List ef = GetList<std::string>({"e", "f"});
+
+  base::Value::List int12 = GetList<int>({1, 2});
+  base::Value::List int34 = GetList<int>({3, 4});
+  base::Value::List int56 = GetList<int>({5, 6});
+  base::Value::List int1234 = GetList<int>({1, 2, 3, 4});
+
+  base::Value::Dict dict_ab;
+  dict_ab.Set("a", true);
+  dict_ab.Set("b", false);
+  base::Value::Dict dict_c;
+  dict_c.Set("c", false);
+  base::Value::Dict dict_d;
+  dict_d.Set("d", false);
+
+  base::Value::List list_dict_abd;
+  list_dict_abd.Append(dict_ab.Clone());
+  list_dict_abd.Append(dict_d.Clone());
+  base::Value::List list_dict_c;
+  list_dict_c.Append(dict_c.Clone());
+
+  base::Value::List list_dict_abcd;
+  list_dict_abcd.Append(dict_ab.Clone());
+  list_dict_abcd.Append(dict_d.Clone());
+  list_dict_abcd.Append(dict_c.Clone());
+
+  // Case 1 - kTestPolicyName1
+  // Enterprise default policies should not be merged with other sources.
+  PolicyMap::Entry case1(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_PLATFORM, base::Value(abc.Clone()),
+                         nullptr);
+
+  case1.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_COMMAND_LINE,
+      base::Value(cd.Clone()), nullptr));
+
+  case1.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+      POLICY_SOURCE_ENTERPRISE_DEFAULT, base::Value(ef.Clone()), nullptr));
+
+  case1.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE,
+      POLICY_SOURCE_ENTERPRISE_DEFAULT, base::Value(ef.Clone()), nullptr));
+
+  PolicyMap::Entry expected_case1(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                                  POLICY_SOURCE_MERGED,
+                                  base::Value(abcd.Clone()), nullptr);
+  expected_case1.AddConflictingPolicy(case1.DeepCopy());
+
+  // Case 2 - kTestPolicyName2
+  // Policies should only be merged with other policies with the same target,
+  // level and scope.
+  PolicyMap::Entry case2(POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_CLOUD, base::Value(int12.Clone()),
+                         nullptr);
+
+  case2.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM,
+      base::Value(int34.Clone()), nullptr));
+
+  case2.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, POLICY_SOURCE_PLATFORM,
+      base::Value(int56.Clone()), nullptr));
+
+  PolicyMap::Entry expected_case2(POLICY_LEVEL_RECOMMENDED,
+                                  POLICY_SCOPE_MACHINE, POLICY_SOURCE_MERGED,
+                                  base::Value(int1234.Clone()), nullptr);
+  expected_case2.AddConflictingPolicy(case2.DeepCopy());
+
+  // Case 3 - kTestPolicyName3
+  // Trivial case with 2 sources.
+  PolicyMap::Entry case3(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_CLOUD, base::Value(ab.Clone()), nullptr);
+
+  case3.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM,
+      base::Value(cd.Clone()), nullptr));
+
+  PolicyMap::Entry expected_case3(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                                  POLICY_SOURCE_MERGED,
+                                  base::Value(abcd.Clone()), nullptr);
+  auto case3_blocked_by_group = expected_case3.DeepCopy();
+  case3_blocked_by_group.SetIgnoredByPolicyAtomicGroup();
+  expected_case3.AddConflictingPolicy(case3.DeepCopy());
+
+  // Case 4 - kTestPolicyName4
+  // Policies with a single source should have their source updated to merged.
+  PolicyMap::Entry case4(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_CLOUD, base::Value(ef.Clone()), nullptr);
+
+  PolicyMap::Entry expected_case4(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                                  POLICY_SOURCE_MERGED, base::Value(ef.Clone()),
+                                  nullptr);
+  expected_case4.AddConflictingPolicy(case4.DeepCopy());
+
+  // Case 5 - kTestPolicyName5
+  // Policies that are not lists should not be merged.
+  // If such a policy is explicitly in the list of policies to merge, an error
+  // is added to the entry and the policy stays intact.
+  PolicyMap::Entry case5(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_PLATFORM, base::Value("bad stuff"),
+                         nullptr);
+
+  PolicyMap::Entry expected_case5 = case5.DeepCopy();
+  expected_case5.AddMessage(
+      PolicyMap::MessageType::kError,
+      IDS_POLICY_LIST_MERGING_WRONG_POLICY_TYPE_SPECIFIED);
+
+  // Case 6 - kTestPolicyName6
+  // User cloud policies should not be merged with other sources.
+  PolicyMap::Entry case6(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                         POLICY_SOURCE_PLATFORM, base::Value(ab.Clone()),
+                         nullptr);
+  case6.AddConflictingPolicy(
+      PolicyMap::Entry(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                       POLICY_SOURCE_CLOUD, base::Value(cd.Clone()), nullptr));
+  case6.AddConflictingPolicy(
+      PolicyMap::Entry(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                       POLICY_SOURCE_CLOUD, base::Value(ef.Clone()), nullptr));
+  PolicyMap::Entry expected_case6(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                                  POLICY_SOURCE_MERGED, base::Value(ab.Clone()),
+                                  nullptr);
+  expected_case6.AddConflictingPolicy(case6.DeepCopy());
+
+  // Case 7 - kTestPolicyName7
+  // User platform policies should not be merged under any circumstances.
+  PolicyMap::Entry case7(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                         POLICY_SOURCE_PLATFORM, base::Value(ab.Clone()),
+                         nullptr);
+  case7.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_PLATFORM,
+      base::Value(cd.Clone()), nullptr));
+  case7.AddConflictingPolicy(
+      PolicyMap::Entry(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                       POLICY_SOURCE_CLOUD, base::Value(cd.Clone()), nullptr));
+  case7.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM,
+      base::Value(ef.Clone()), nullptr));
+  case7.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_COMMAND_LINE,
+      base::Value(ef.Clone()), nullptr));
+  PolicyMap::Entry expected_case7(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                                  POLICY_SOURCE_MERGED, base::Value(ab.Clone()),
+                                  nullptr);
+  expected_case7.AddConflictingPolicy(case7.DeepCopy());
+
+  // Case 8 - kTestPolicyName8
+  // Lists of dictionaries should not have duplicates.
+  PolicyMap::Entry case8(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_PLATFORM,
+                         base::Value(list_dict_abd.Clone()), nullptr);
+
+  case8.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_CLOUD,
+      base::Value(list_dict_abd.Clone()), nullptr));
+
+  case8.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_COMMAND_LINE,
+      base::Value(list_dict_c.Clone()), nullptr));
+
+  PolicyMap::Entry expected_case8(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                                  POLICY_SOURCE_MERGED,
+                                  base::Value(list_dict_abcd.Clone()), nullptr);
+  expected_case8.AddConflictingPolicy(case8.DeepCopy());
+
+  PolicyMap policy_not_merged;
+  policy_not_merged.Set(kTestPolicyName1, case1.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName2, case2.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName3, case3.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName4, case4.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName5, case5.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName6, case6.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName7, case7.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName8, case8.DeepCopy());
+
+  PolicyMap expected_list_merged;
+  expected_list_merged.Set(kTestPolicyName1, expected_case1.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName2, expected_case2.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName3, expected_case3.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName4, expected_case4.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName5, expected_case5.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName6, expected_case6.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName7, expected_case7.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName8, expected_case8.DeepCopy());
+
+  PolicyMap list_merged = policy_not_merged.Clone();
+
+  PolicyMap list_merged_wildcard = policy_not_merged.Clone();
+
+  // Merging with no restrictions specified
+  PolicyListMerger empty_policy_list({});
+  list_merged.MergeValues({&empty_policy_list});
+  EXPECT_TRUE(list_merged.Equals(policy_not_merged));
+
+  PolicyListMerger bad_policy_list({"unknown"});
+  // Merging with wrong restrictions specified
+  list_merged.MergeValues({&bad_policy_list});
+  EXPECT_TRUE(list_merged.Equals(policy_not_merged));
+
+  // Merging lists restrictions specified
+  PolicyListMerger good_policy_list(
+      {kTestPolicyName1, kTestPolicyName2, kTestPolicyName3, kTestPolicyName4,
+       kTestPolicyName5, kTestPolicyName6, kTestPolicyName7, kTestPolicyName8});
+  PolicyListMerger wildcard_policy_list({"*"});
+  list_merged.MergeValues({&good_policy_list});
+  EXPECT_TRUE(list_merged.Equals(expected_list_merged));
+
+  PolicyMap expected_list_merged_wildcard = expected_list_merged.Clone();
+  expected_list_merged_wildcard.Set(kTestPolicyName5, case5.DeepCopy());
+  list_merged_wildcard.MergeValues({&wildcard_policy_list});
+  EXPECT_TRUE(list_merged_wildcard.Equals(expected_list_merged_wildcard));
+}
+
+TEST_F(PolicyMapTest, MergeValuesList_FeatureEnabled) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeature(
+      policy::features::kPolicyMergeMultiSource);
+
   base::Value::List abcd = GetList<std::string>({"a", "b", "c", "d"});
   base::Value::List abc = GetList<std::string>({"a", "b", "c"});
   base::Value::List ab = GetList<std::string>({"a", "b"});
@@ -595,10 +823,7 @@
   // Policies with a single source should stay the same.
   PolicyMap::Entry case4(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
                          POLICY_SOURCE_CLOUD, base::Value(ef.Clone()), nullptr);
-  PolicyMap::Entry expected_case4(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
-                                  POLICY_SOURCE_MERGED, base::Value(ef.Clone()),
-                                  nullptr);
-  expected_case4.AddConflictingPolicy(case4.DeepCopy());
+  PolicyMap::Entry expected_case4 = case4.DeepCopy();
 
   // Case 5 - kTestPolicyName5
   // Policies that are not lists should not be merged.
@@ -608,9 +833,7 @@
                          POLICY_SOURCE_PLATFORM, base::Value("bad stuff"),
                          nullptr);
 
-  PolicyMap::Entry expected_case5(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
-                                  POLICY_SOURCE_PLATFORM,
-                                  base::Value("bad stuff"), nullptr);
+  PolicyMap::Entry expected_case5 = case5.DeepCopy();
   expected_case5.AddMessage(
       PolicyMap::MessageType::kError,
       IDS_POLICY_LIST_MERGING_WRONG_POLICY_TYPE_SPECIFIED);
@@ -721,6 +944,10 @@
 }
 
 TEST_F(PolicyMapTest, MergeValuesDictionary) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(
+      policy::features::kPolicyMergeMultiSource);
+
   base::Value::Dict dict_a;
   dict_a.Set("keyA", true);
 
@@ -821,10 +1048,11 @@
   expected_case3.AddConflictingPolicy(case3.DeepCopy());
 
   // Case 4 - kTestPolicyName4
-  // Policies with a single source should be merged.
+  // Policies with a single source should have their source updated to merged.
   PolicyMap::Entry case4(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
                          POLICY_SOURCE_CLOUD, base::Value(dict_a.Clone()),
                          nullptr);
+
   PolicyMap::Entry expected_case4(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
                                   POLICY_SOURCE_MERGED,
                                   base::Value(dict_a.Clone()), nullptr);
@@ -838,9 +1066,7 @@
                          POLICY_SOURCE_PLATFORM, base::Value("bad stuff"),
                          nullptr);
 
-  PolicyMap::Entry expected_case5(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
-                                  POLICY_SOURCE_PLATFORM,
-                                  base::Value("bad stuff"), nullptr);
+  PolicyMap::Entry expected_case5 = case5.DeepCopy();
   expected_case5.AddMessage(
       PolicyMap::MessageType::kError,
       IDS_POLICY_DICTIONARY_MERGING_WRONG_POLICY_TYPE_SPECIFIED);
@@ -884,9 +1110,237 @@
   expected_case7.AddConflictingPolicy(case7.DeepCopy());
 
   // Case 8 - kTestPolicyName8
+  // If a dictionary policy is not in the list of dictionary policies allowed to
+  // be merged, an error is added to the entry and the policy stays intact.
+  PolicyMap::Entry case8(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_CLOUD, base::Value(dict_a.Clone()),
+                         nullptr);
+
+  PolicyMap::Entry expected_case8 = case8.DeepCopy();
+
+  expected_case8.AddMessage(PolicyMap::MessageType::kError,
+                            IDS_POLICY_DICTIONARY_MERGING_POLICY_NOT_ALLOWED);
+
+  PolicyMap policy_not_merged;
+  policy_not_merged.Set(kTestPolicyName1, case1.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName2, case2.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName3, case3.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName4, case4.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName5, case5.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName6, case6.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName7, case7.DeepCopy());
+  policy_not_merged.Set(kTestPolicyName8, case8.DeepCopy());
+
+  PolicyMap expected_list_merged;
+  expected_list_merged.Set(kTestPolicyName1, expected_case1.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName2, expected_case2.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName3, expected_case3.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName4, expected_case4.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName5, expected_case5.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName6, expected_case6.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName7, expected_case7.DeepCopy());
+  expected_list_merged.Set(kTestPolicyName8, expected_case8.DeepCopy());
+
+  PolicyMap list_merged = policy_not_merged.Clone();
+
+  PolicyMap list_merged_wildcard = policy_not_merged.Clone();
+
+  // Merging with no restrictions specified
+  PolicyDictionaryMerger empty_policy_list({});
+  list_merged.MergeValues({&empty_policy_list});
+  EXPECT_TRUE(list_merged.Equals(policy_not_merged));
+
+  PolicyDictionaryMerger bad_policy_list({"unknown"});
+  // Merging with wrong restrictions specified
+  list_merged.MergeValues({&bad_policy_list});
+  EXPECT_TRUE(list_merged.Equals(policy_not_merged));
+
+  // Merging lists restrictions specified
+  PolicyDictionaryMerger good_policy_list(
+      {kTestPolicyName1, kTestPolicyName2, kTestPolicyName3, kTestPolicyName4,
+       kTestPolicyName5, kTestPolicyName6, kTestPolicyName7, kTestPolicyName8});
+  good_policy_list.SetAllowedPoliciesForTesting(
+      {kTestPolicyName1, kTestPolicyName2, kTestPolicyName3, kTestPolicyName4,
+       kTestPolicyName5, kTestPolicyName6, kTestPolicyName7});
+  PolicyDictionaryMerger wildcard_policy_list({"*"});
+  wildcard_policy_list.SetAllowedPoliciesForTesting(
+      {kTestPolicyName1, kTestPolicyName2, kTestPolicyName3, kTestPolicyName4,
+       kTestPolicyName5, kTestPolicyName6, kTestPolicyName7});
+  list_merged.MergeValues({&good_policy_list});
+  EXPECT_TRUE(list_merged.Equals(expected_list_merged));
+
+  PolicyMap expected_list_merged_wildcard = expected_list_merged.Clone();
+  expected_list_merged_wildcard.Set(kTestPolicyName5, case5.DeepCopy());
+  expected_list_merged_wildcard.Set(kTestPolicyName8, case8.DeepCopy());
+  list_merged_wildcard.MergeValues({&wildcard_policy_list});
+  EXPECT_TRUE(list_merged_wildcard.Equals(expected_list_merged_wildcard));
+}
+
+TEST_F(PolicyMapTest, MergeValuesDictionary_FeatureEnabled) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeature(
+      policy::features::kPolicyMergeMultiSource);
+
+  base::Value::Dict dict_a;
+  dict_a.Set("keyA", true);
+
+  base::Value::Dict dict_b;
+  dict_b.Set("keyB", "ValueB2");
+  dict_b.Set("keyC", "ValueC2");
+  dict_b.Set("keyD", "ValueD2");
+
+  base::Value::Dict dict_c;
+  dict_c.Set("keyA", "ValueA");
+  dict_c.Set("keyB", "ValueB");
+  dict_c.Set("keyC", "ValueC");
+  dict_c.Set("keyD", "ValueD");
+  dict_c.Set("keyZ", "ValueZ");
+
+  base::Value::Dict dict_d;
+  dict_d.Set("keyC", "ValueC3");
+
+  base::Value::Dict dict_e;
+  dict_e.Set("keyD", "ValueD4");
+  dict_e.Set("keyE", 123);
+
+  base::Value::Dict dict_f;
+  dict_f.Set("keyX", "ValueX");
+  dict_f.Set("keyE", "ValueE5");
+
+  // Case 1: kTestPolicyName1 - Merging should only keep keys with the highest
+  // priority
+  PolicyMap::Entry case1(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_PLATFORM, base::Value(dict_a.Clone()),
+                         nullptr);
+  case1.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_CLOUD,
+      base::Value(dict_b.Clone()), nullptr));
+  case1.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_COMMAND_LINE,
+      base::Value(dict_c.Clone()), nullptr));
+
+  base::Value::Dict merged_dict_case1;
+  merged_dict_case1.Merge(dict_c.Clone());
+  merged_dict_case1.Merge(dict_b.Clone());
+  merged_dict_case1.Merge(dict_a.Clone());
+
+  PolicyMap::Entry expected_case1(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_MERGED,
+      base::Value(merged_dict_case1.Clone()), nullptr);
+  expected_case1.AddConflictingPolicy(case1.DeepCopy());
+
+  // Case 2 - kTestPolicyName2
+  // Policies should only be merged with other policies with the same target,
+  // level and scope.
+  PolicyMap::Entry case2(POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_PLATFORM, base::Value(dict_e.Clone()),
+                         nullptr);
+
+  case2.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, POLICY_SOURCE_CLOUD,
+      base::Value(dict_f.Clone()), nullptr));
+
+  case2.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, POLICY_SOURCE_PLATFORM,
+      base::Value(dict_a.Clone()), nullptr));
+
+  base::Value::Dict merged_dict_case2;
+  merged_dict_case2.Merge(dict_f.Clone());
+  merged_dict_case2.Merge(dict_e.Clone());
+
+  PolicyMap::Entry expected_case2(
+      POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, POLICY_SOURCE_MERGED,
+      base::Value(merged_dict_case2.Clone()), nullptr);
+  expected_case2.AddConflictingPolicy(case2.DeepCopy());
+
+  // Case 3 - kTestPolicyName3
+  // Enterprise default policies should not be merged with other sources.
+  PolicyMap::Entry case3(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_PLATFORM, base::Value(dict_a.Clone()),
+                         nullptr);
+
+  case3.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_COMMAND_LINE,
+      base::Value(dict_b.Clone()), nullptr));
+
+  case3.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+      POLICY_SOURCE_ENTERPRISE_DEFAULT, base::Value(dict_e.Clone()), nullptr));
+
+  case3.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE,
+      POLICY_SOURCE_ENTERPRISE_DEFAULT, base::Value(dict_f.Clone()), nullptr));
+
+  base::Value::Dict merged_dict_case3;
+  merged_dict_case3.Merge(dict_b.Clone());
+  merged_dict_case3.Merge(dict_a.Clone());
+
+  PolicyMap::Entry expected_case3(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_MERGED,
+      base::Value(merged_dict_case3.Clone()), nullptr);
+  expected_case3.AddConflictingPolicy(case3.DeepCopy());
+
+  // Case 4 - kTestPolicyName4
+  // Policies with a single source should stay the same.
+  PolicyMap::Entry case4(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_CLOUD, base::Value(dict_a.Clone()),
+                         nullptr);
+  PolicyMap::Entry expected_case4 = case4.DeepCopy();
+
+  // Case 5 - kTestPolicyName5
   // Policies that are not dictionaries should not be merged.
   // If such a policy is explicitly in the list of policies to merge, an error
   // is added to the entry and the policy stays intact.
+  PolicyMap::Entry case5(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
+                         POLICY_SOURCE_PLATFORM, base::Value("bad stuff"),
+                         nullptr);
+
+  PolicyMap::Entry expected_case5 = case5.DeepCopy();
+  expected_case5.AddMessage(
+      PolicyMap::MessageType::kError,
+      IDS_POLICY_DICTIONARY_MERGING_WRONG_POLICY_TYPE_SPECIFIED);
+
+  // Case 6 - kTestPolicyName6
+  // User cloud policies should not be merged with other sources.
+  PolicyMap::Entry case6(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                         POLICY_SOURCE_PLATFORM, base::Value(dict_a.Clone()),
+                         nullptr);
+  case6.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
+      base::Value(dict_e.Clone()), nullptr));
+  case6.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
+      base::Value(dict_f.Clone()), nullptr));
+  PolicyMap::Entry expected_case6(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                                  POLICY_SOURCE_MERGED,
+                                  base::Value(dict_a.Clone()), nullptr);
+  expected_case6.AddConflictingPolicy(case6.DeepCopy());
+
+  // Case 7 - kTestPolicyName7
+  // User platform policies should not be merged under any circumstances.
+  PolicyMap::Entry case7(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                         POLICY_SOURCE_PLATFORM, base::Value(dict_a.Clone()),
+                         nullptr);
+  case7.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_PLATFORM,
+      base::Value(dict_b.Clone()), nullptr));
+  case7.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
+      base::Value(dict_c.Clone()), nullptr));
+  case7.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM,
+      base::Value(dict_d.Clone()), nullptr));
+  case7.AddConflictingPolicy(PolicyMap::Entry(
+      POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_COMMAND_LINE,
+      base::Value(dict_e.Clone()), nullptr));
+  PolicyMap::Entry expected_case7(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                                  POLICY_SOURCE_MERGED,
+                                  base::Value(dict_a.Clone()), nullptr);
+  expected_case7.AddConflictingPolicy(case7.DeepCopy());
+
+  // Case 8 - kTestPolicyName8
+  // If a dictionary policy is not in the list of dictionary policies allowed to
+  // be merged, an error is added to the entry and the policy stays intact.
   PolicyMap::Entry case8(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
                          POLICY_SOURCE_CLOUD, base::Value(dict_a.Clone()),
                          nullptr);
diff --git a/components/policy/core/common/policy_merger.cc b/components/policy/core/common/policy_merger.cc
index ed32bfe4..a56a922d 100644
--- a/components/policy/core/common/policy_merger.cc
+++ b/components/policy/core/common/policy_merger.cc
@@ -2,13 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "components/policy/core/common/policy_merger.h"
+
 #include <array>
 #include <map>
 #include <set>
 
+#include "base/feature_list.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
-#include "components/policy/core/common/policy_merger.h"
+#include "components/policy/core/common/features.h"
 #include "components/policy/core/common/policy_pref_names.h"
 #include "components/policy/policy_constants.h"
 #include "components/strings/grit/components_strings.h"
@@ -112,8 +115,19 @@
   if (policy.source == POLICY_SOURCE_MERGED)
     return false;
 
-  if (policies_to_merge_.find("*") != policies_to_merge_.end())
-    return policy.value(base::Value::Type::LIST) != nullptr;
+  // `base::FeatureList` is not initialized when platform policies are first
+  // applied during browser startup. The feature value is eventually used to
+  // apply the correct merging logic before the browser launches since policies
+  // are applied multiple times during startup.
+  const bool can_merge_conflicts =
+      !base::FeatureList::GetInstance() ||
+      !base::FeatureList::IsEnabled(
+          policy::features::kPolicyMergeMultiSource) ||
+      policy.HasConflicts();
+  if (policies_to_merge_.find("*") != policies_to_merge_.end()) {
+    return can_merge_conflicts &&
+           policy.value(base::Value::Type::LIST) != nullptr;
+  }
 
   if (policies_to_merge_.find(policy_name) == policies_to_merge_.end())
     return false;
@@ -124,7 +138,7 @@
     return false;
   }
 
-  return true;
+  return can_merge_conflicts;
 }
 
 bool PolicyListMerger::AllowUserCloudPolicyMerging() const {
@@ -217,8 +231,19 @@
   const bool allowed_to_merge =
       allowed_policies_.find(policy_name) != allowed_policies_.end();
 
-  if (policies_to_merge_.find("*") != policies_to_merge_.end())
-    return allowed_to_merge && policy.value(base::Value::Type::DICT);
+  // `base::FeatureList` is not initialized when platform policies are first
+  // applied during browser startup. The feature value is eventually used to
+  // apply the correct merging logic before the browser launches since policies
+  // are applied multiple times during startup.
+  const bool can_merge_conflicts =
+      !base::FeatureList::GetInstance() ||
+      !base::FeatureList::IsEnabled(
+          policy::features::kPolicyMergeMultiSource) ||
+      policy.HasConflicts();
+  if (policies_to_merge_.find("*") != policies_to_merge_.end()) {
+    return allowed_to_merge && can_merge_conflicts &&
+           policy.value(base::Value::Type::DICT);
+  }
 
   if (policies_to_merge_.find(policy_name) == policies_to_merge_.end())
     return false;
@@ -236,7 +261,7 @@
     return false;
   }
 
-  return true;
+  return can_merge_conflicts;
 }
 
 bool PolicyDictionaryMerger::AllowUserCloudPolicyMerging() const {
diff --git a/components/policy/core/common/policy_proto_decoders.cc b/components/policy/core/common/policy_proto_decoders.cc
index e7e49b5..f61c40d 100644
--- a/components/policy/core/common/policy_proto_decoders.cc
+++ b/components/policy/core/common/policy_proto_decoders.cc
@@ -237,7 +237,7 @@
   // Each description is an object that contains the policy value under the
   // "Value" key. The optional "Level" key is either "Mandatory" (default) or
   // "Recommended".
-  for (auto it : json.DictItems()) {
+  for (auto it : json.GetDict()) {
     const std::string& policy_name = it.first;
     base::Value description = std::move(it.second);
     if (!description.is_dict()) {
@@ -245,7 +245,8 @@
       return false;
     }
 
-    absl::optional<base::Value> value = description.ExtractKey(kValue);
+    base::Value::Dict& description_dict = description.GetDict();
+    absl::optional<base::Value> value = description_dict.Extract(kValue);
     if (!value.has_value()) {
       *error = base::StrCat(
           {"The JSON blob dictionary value doesn't contain the required ",
@@ -254,7 +255,7 @@
     }
 
     PolicyLevel level = POLICY_LEVEL_MANDATORY;
-    const std::string* level_string = description.FindStringKey(kLevel);
+    const std::string* level_string = description_dict.FindString(kLevel);
     if (level_string && *level_string == kRecommended)
       level = POLICY_LEVEL_RECOMMENDED;
 
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 332b81f..2629c2d 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -796,6 +796,7 @@
       Wird diese Richtlinie nicht festgelegt, hat dies keine Auswirkungen auf die Steuerung des Bildschirms durch den Nutzer und auf die Funktionen zur automatischen Anpassung der Bildschirmhelligkeit.
 
       Hinweis: Die Richtlinienwerte sollten in % angegeben werden und zwischen 0 und 100 liegen.</translation>
+<translation id="1733092875104864334">Erfassen von WebRTC-Textprotokollen aus Google-Diensten nicht zulassen</translation>
 <translation id="1733768596873041559">Standardmäßig zum SAML-Identitätsanbieter weiterleiten (vor <ph name="PRODUCT_NAME" />-Version 99 ist eine Bestätigung durch den Nutzer erforderlich)</translation>
 <translation id="1733939382419067578">Wenn diese Richtlinie konfiguriert ist, kannst du eine Liste mit URL-Mustern erstellen, die angeben, welche Websites Benachrichtigungen anzeigen dürfen.
 
@@ -1337,6 +1338,7 @@
 
       Ist diese Richtlinie nicht konfiguriert, werden alle Plug-ins, die mit den Mustern in DisabledPlugins übereinstimmen, deaktiviert. Sie können dann nicht vom Nutzer aktiviert werden.</translation>
 <translation id="2236488539271255289">Speichern von lokalen Daten für keine Website zulassen</translation>
+<translation id="2236593201136596376">Erfassen von WebRTC-Textprotokollen aus Google-Diensten zulassen</translation>
 <translation id="2241498944622759244">Diese Funktion wurde nie eingeführt und die Richtlinie deshalb eingestellt. Wenn sie auf "true" festgelegt oder nicht konfiguriert wird, schlägt <ph name="PRODUCT_NAME" /> Seiten vor, die der aktuellen Seite ähnlich sind.
       Diese Vorschläge werden per Remotezugriff von Google-Servern abgerufen.
 
@@ -1481,6 +1483,9 @@
       Wenn sie nicht konfiguriert ist, werden Cookies von Drittanbietern zugelassen, aber Nutzer können diese Einstellung ändern.</translation>
 <translation id="2386362615870139244">Bildschirm-Wakelocks zulassen</translation>
 <translation id="2387469539700985783">Diese Richtlinie hat keine Auswirkung auf die Berichterstellung durch Android.</translation>
+<translation id="2388701318721126001">Wenn diese Richtlinie deaktiviert ist, kann das <ph name="PRODUCT_OS_NAME" />-Hintergrundbild des Nutzers nicht aus einem Google Fotos-Album ausgewählt werden.
+
+Der Nutzer kann ein Google Fotos-Bild als Hintergrund auswählen, wenn diese Richtlinie aktiviert oder nicht konfiguriert ist.</translation>
 <translation id="2393862222659066027">Liste mit URLs öffnen und die letzte Sitzung wiederherstellen</translation>
 <translation id="2394429297128584919">Nicht zulassen, dass Seiten beim Schließen synchrone XHR-Anfragen senden</translation>
 <translation id="2394674739523870144">Wenn für die Richtlinie eine Liste von Strings festgelegt ist, werden diese Strings mit Leerzeichen verbunden und als Befehlszeilenparameter von <ph name="IE_PRODUCT_NAME" /> an <ph name="PRODUCT_NAME" /> weitergegeben. Ist in einem Parameter <ph name="URL_PLACEHOLDER" /> enthalten, wird <ph name="URL_PLACEHOLDER" /> durch die URL der Seite ersetzt, die geöffnet werden soll. Wenn kein Parameter <ph name="URL_PLACEHOLDER" /> enthält, wird die URL an das Ende der Befehlszeile angehängt.
@@ -2845,6 +2850,7 @@
 <translation id="3608206578291537084">Verschlüsselte Pipeline für die Berichterstellung aktivieren</translation>
 <translation id="3608281460204780443">Chrome Web Store-Symbol im <ph name="PRODUCT_OS_NAME" />-Launcher und auf der Seite „Neuer Tab“ anzeigen</translation>
 <translation id="3622463490728773174">Neue Implementierung zulassen</translation>
+<translation id="3623332696371971798">Google Fotos den Zugriff über die Personalisierungs-App nicht erlauben</translation>
 <translation id="3627678165642179114">Webdienst für die Rechtschreibprüfung aktivieren oder deaktivieren</translation>
 <translation id="3628480121685794414">Simplexdruck aktivieren</translation>
 <translation id="3634125384445314047">Zulassen, dass Fotos und Videos, die kürzlich mit dem Smartphone aufgenommen wurden, über Phone Hub abgerufen werden können.</translation>
@@ -2882,6 +2888,7 @@
 
           Diese Richtlinie kommt nur vorübergehend zum Einsatz und wird voraussichtlich in <ph name="PRODUCT_NAME" /> 107 entfernt. Die Frist kann verlängert werden, sofern bei Unternehmen Bedarf besteht.
           </translation>
+<translation id="3678069907945250643">Google Fotos den Zugriff über die Personalisierungs-App erlauben</translation>
 <translation id="3685979383016152590">Durch die Richtlinie wird angegeben, welche Zugriffsrichtlinie für die Massenkonfiguration von Druckern verwendet wird. Dadurch wird festgelegt, welche Drucker von <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> für Nutzer verfügbar sind.
 
       * <ph name="PRINTERS_BLOCKLIST" /> (Wert 0) verwendet <ph name="PRINTERS_BULK_BLOCKLIST" />, um den Zugriff auf die angegebenen Drucker einzuschränken
@@ -7141,6 +7148,7 @@
       Wenn diese Richtlinie deaktiviert oder nicht konfiguriert ist, dürfen Chrome-Apps unter Umständen nicht ausgeführt werden, je nach dem Status des Einstellungs-Roll-outs.
       In beiden Fällen sind Chrome-Apps zulässig, deren Installation durch die Richtlinie erzwungen wird.</translation>
 <translation id="7774768074957326919">System-Proxyeinstellungen verwenden</translation>
+<translation id="7775077662962729812">Hintergrundauswahl über Google Fotos</translation>
 <translation id="7776848995687565978">Eine Liste von Ursprüngen konfigurieren, von denen die Verlängerung der Hintergrundlebensdauer der verbundenen Erweiterungen gewährt wird.</translation>
 <translation id="777734450201217641">Mit dieser Richtlinie aktivierst du auf dem Anmeldebildschirm die Tastenkombinationen für Bedienungshilfen.
 
@@ -7988,6 +7996,7 @@
 
           Wenn die Richtlinie für eine Website nicht konfiguriert ist, gilt die Richtlinie aus <ph name="DEFAULT_JAVA_SCRIPT_JIT_SETTING_POLICY_NAME" /> für die Website, falls konfiguriert. Andernfalls ist JavaScript JIT für die Website aktiviert.</translation>
 <translation id="8543108307976719751">Verbindungen per Remotezugriff verhindern</translation>
+<translation id="8543639085146778837">Erfassen von WebRTC-Textprotokollen aus Google-Diensten zulassen</translation>
 <translation id="8543975123557636331">Audioausgabe aktivieren</translation>
 <translation id="8544375438507658205">Standardanwendung für HTML-Darstellung in <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="8544465954173828789">Zulassen, dass SMS zwischen Smartphone mit Chromebook synchronisiert werden.</translation>
@@ -8493,6 +8502,9 @@
 
       Der Richtlinienwert sollte in Millisekunden angegeben werden. Der Wert kann zwischen 30 Sekunden und 24 Stunden liegen.</translation>
 <translation id="9040042535845939426">Mit dieser Richtlinie legst du den Status des Datenschutzbildschirms auf dem Anmeldebildschirm fest</translation>
+<translation id="9046248916118130378">Wenn diese Richtlinie aktiviert ist, darf <ph name="PRODUCT_NAME" /> WebRTC-Textprotokolle aus Google-Diensten wie Google Meet speichern und bei Google hochladen. Diese Protokolle enthalten Diagnoseinformationen, die für die Fehlerbehebung bei Audioanrufen oder Videokonferenzen in <ph name="PRODUCT_NAME" /> hilfreich sein können. Dazu zählen Textmetadaten, die eingehende und ausgehende WebRTC-Streams beschreiben, WebRTC-spezifische Protokolleinträge und zusätzliche Systeminformationen. Audio- oder Videoinhalte von Anrufen bzw. Konferenzen gehören nicht dazu.
+Ist die Richtlinie deaktiviert, werden solche Protokolle nicht bei Google hochgeladen. Die Protokolle werden dann lokal auf dem Gerät des Nutzers gesammelt.
+Wenn die Richtlinie nicht konfiguriert ist, kann <ph name="PRODUCT_NAME" /> diese Protokolle standardmäßig erfassen und hochladen.</translation>
 <translation id="9050853837490399534">Diese Richtlinie gibt vor, ob das Gerät auf einen Quick-Fix-Build aktualisiert werden soll.
 
       Wenn als Richtlinienwert ein Token festgelegt ist, das mit einem Quick-Fix-Build verknüpft ist, wird das Gerät auf den entsprechenden Build aktualisiert, sofern eine solche Aktualisierung nicht durch eine andere Richtlinie blockiert wird.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 787025b..f6eec53e 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -1502,6 +1502,9 @@
       Si no la estableces, se activarán las cookies de terceros, pero los usuarios podrán cambiar esta configuración.</translation>
 <translation id="2386362615870139244">Permitir bloqueos de activación de pantalla</translation>
 <translation id="2387469539700985783">Esta política no afecta el informe que crea Android.</translation>
+<translation id="2388701318721126001">Si inhabilitas esta política, no se podrá seleccionar la imagen de fondo de pantalla de <ph name="PRODUCT_OS_NAME" /> del usuario de un álbum de Google Fotos.
+
+Si habilitas esta política o no la estableces, el usuario podrá elegir una imagen de Google Fotos como fondo de pantalla.</translation>
 <translation id="2393862222659066027">Abrir una lista de URLs y restablecer la última sesión</translation>
 <translation id="2394429297128584919">No permitir que las páginas envíen solicitudes XHR síncronas cuando el usuario las abandona</translation>
 <translation id="2394674739523870144">Si estableces la política como una lista de strings, estas se unen con espacios y se transfieren de <ph name="IE_PRODUCT_NAME" /> a <ph name="PRODUCT_NAME" /> como parámetros de la línea de comandos. Si un parámetro contiene <ph name="URL_PLACEHOLDER" />, se reemplazará <ph name="URL_PLACEHOLDER" /> por la URL de la página que se abrirá. Si ningún parámetro contiene <ph name="URL_PLACEHOLDER" />, se agregará la dirección URL al final de la línea de comandos.
@@ -2867,6 +2870,7 @@
 <translation id="3608206578291537084">Habilitar la canalización de informes encriptados</translation>
 <translation id="3608281460204780443">Mostrar el ícono de Chrome Web Store en el selector <ph name="PRODUCT_OS_NAME" /> y en la página de la nueva pestaña</translation>
 <translation id="3622463490728773174">Permitir la implementación nueva</translation>
+<translation id="3623332696371971798">Impedir el acceso a Google Fotos desde la app de personalización</translation>
 <translation id="3627678165642179114">Habilita o inhabilita el servicio web de revisión ortográfica.</translation>
 <translation id="3628480121685794414">Permitir impresión simple</translation>
 <translation id="3634125384445314047">Permitir el acceso a las fotos y los videos tomados recientemente del teléfono mediante Phone Hub</translation>
@@ -2904,6 +2908,7 @@
 
           Esta es una política temporal que se planea quitar en <ph name="PRODUCT_NAME" /> 107. Es posible que se extienda la fecha límite si las empresas lo necesitan.
           </translation>
+<translation id="3678069907945250643">Permitir el acceso a Google Fotos desde la app de personalización</translation>
 <translation id="3685979383016152590">Si estableces la política, se designará la política de acceso que se utilizará para la configuración de impresoras en lote, lo que permitirá determinar las impresoras de <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> que estarán disponibles para los usuarios.
 
       * <ph name="PRINTERS_BLOCKLIST" /> (valor 0) utiliza <ph name="PRINTERS_BULK_BLOCKLIST" /> para restringir el acceso a las impresoras especificadas.
@@ -7292,6 +7297,7 @@
       Si se inhabilita esta política o no se establece, es posible que no se puedan ejecutar las Apps de Chrome (en función del estado del lanzamiento de la desactivación).
       En cualquier caso, las Apps de Chrome que están instaladas de manera automática por la política seguirán habilitadas.</translation>
 <translation id="7774768074957326919">Usar la configuración del proxy del sistema</translation>
+<translation id="7775077662962729812">Selección de fondo de pantalla de Google Fotos</translation>
 <translation id="7776848995687565978">Configura una lista de orígenes que concedan una mayor duración en segundo plano a las extensiones que se conectan.</translation>
 <translation id="777734450201217641">Habilita las combinaciones de teclas para las funciones de accesibilidad en la pantalla de acceso.
 
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index b8d5a4a..14852a192 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -1489,6 +1489,9 @@
       Si cette règle n'est pas configurée, les cookies tiers sont activés. Toutefois, les utilisateurs peuvent modifier ce paramètre.</translation>
 <translation id="2386362615870139244">Autoriser les WakeLock forçant l'activation de l'écran</translation>
 <translation id="2387469539700985783">Cette règle n'a aucun effet sur les rapports effectués par Android.</translation>
+<translation id="2388701318721126001">Si cette règle est désactivée, l'utilisateur <ph name="PRODUCT_OS_NAME" /> ne peut pas sélectionner un fond d'écran dans un album Google Photos.
+
+Si cette règle est activée ou n'est pas définie, l'utilisateur peut définir comme fond d'écran une image issue de Google Photos.</translation>
 <translation id="2393862222659066027">Ouvrir une liste d'URL et restaurer la dernière session</translation>
 <translation id="2394429297128584919">Ne pas autoriser les pages à envoyer des requêtes XHR synchrones pendant leur fermeture</translation>
 <translation id="2394674739523870144">Si cette règle est définie sur une liste de chaînes, celles-ci sont reliées par des espaces avant d'être transmises entre <ph name="IE_PRODUCT_NAME" /> et <ph name="PRODUCT_NAME" /> comme paramètres de ligne de commande. Si un paramètre contient <ph name="URL_PLACEHOLDER" />, l'URL <ph name="URL_PLACEHOLDER" /> est remplacée par l'URL de la page à ouvrir. Si aucun paramètre ne contient l'URL <ph name="URL_PLACEHOLDER" />, elle est ajoutée à la fin de la ligne de commande.
@@ -2848,6 +2851,7 @@
 <translation id="3608206578291537084">Activer le pipeline de rapports chiffrés</translation>
 <translation id="3608281460204780443">Afficher l'icône du Chrome Web Store dans le lanceur d'applis <ph name="PRODUCT_OS_NAME" /> et sur la page de nouvel onglet</translation>
 <translation id="3622463490728773174">Autoriser la nouvelle implémentation</translation>
+<translation id="3623332696371971798">Empêcher l'accès à Google Photos depuis l'appli de personnalisation</translation>
 <translation id="3627678165642179114">Activer ou désactiver le service Web de correction orthographique</translation>
 <translation id="3628480121685794414">Activer l'impression recto</translation>
 <translation id="3634125384445314047">Autoriser l'accès aux photos et vidéos récentes prises sur le téléphone via Phone Hub.</translation>
@@ -2885,6 +2889,7 @@
 
           Cette règle est temporaire et devrait être supprimée dans <ph name="PRODUCT_NAME" /> 107. Néanmoins, cette échéance peut être repoussée si des entreprises le requièrent.
           </translation>
+<translation id="3678069907945250643">Autoriser l'accès à Google Photos depuis l'appli de personnalisation</translation>
 <translation id="3685979383016152590">Cette règle permet de désigner la règle d'accès qui s'applique à la configuration groupée des imprimantes, en déterminant les imprimantes soumises à la règle <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> qui sont accessibles aux utilisateurs.
 
       * <ph name="PRINTERS_BLOCKLIST" /> (valeur  0) utilise <ph name="PRINTERS_BULK_BLOCKLIST" /> pour limiter l'accès aux imprimantes spécifiées
@@ -7171,6 +7176,7 @@
       Si cette règle est désactivée ou qu'elle n'est pas configurée, il se peut que les applis Chrome ne soient pas autorisées à s'exécuter, selon l'état d'avancement du processus d'abandon.
       Dans les deux cas, les applis Chrome qui sont installées d'office par cette règle seront toujours autorisées.</translation>
 <translation id="7774768074957326919">Utiliser les paramètres proxy du système</translation>
+<translation id="7775077662962729812">Sélection de fond d'écran dans Google Photos</translation>
 <translation id="7776848995687565978">Configurez une liste d'origines qui accordent une durée de vie étendue en arrière-plan aux extensions connectées.</translation>
 <translation id="777734450201217641">Activer les raccourcis des fonctionnalités d'accessibilité sur l'écran de connexion.
 
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 3eac6275..a7bcd06 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -794,6 +794,7 @@
       Se il criterio non viene configurato, i controlli o le funzionalità di luminosità automatica dello schermo dell'utente rimangono invariati.
 
       Nota: i valori del criterio devono essere specificati in percentuali da 0 a 100.</translation>
+<translation id="1733092875104864334">Non consentire la raccolta di log di testo WebRTC dai servizi Google</translation>
 <translation id="1733768596873041559">Reindirizza all'IdP SAML per impostazione predefinita (prima della versione 99 di <ph name="PRODUCT_NAME" /> è necessaria la conferma dell'utente)</translation>
 <translation id="1733939382419067578">La configurazione del criterio consente di impostare un elenco di pattern URL che specificano i siti che possono mostrare notifiche.
 
@@ -1338,6 +1339,7 @@
 
       Se questo criterio non viene impostato, tutti i plug-in che corrispondono ai pattern in "DisabledPlugins" verranno disattivati e bloccati e l'utente non potrà attivarli.</translation>
 <translation id="2236488539271255289">Non consentire ai siti di impostare i dati locali</translation>
+<translation id="2236593201136596376">Consenti la raccolta di log di testo WebRTC dai servizi Google</translation>
 <translation id="2241498944622759244">Questa funzionalità non è mai stata lanciata, pertanto il criterio è obsoleto. Se è impostato su true o non è impostato, <ph name="PRODUCT_NAME" /> suggerisce pagine correlate alla pagina corrente.
       Questi suggerimenti vengono recuperati da remoto dai server di Google.
 
@@ -1482,6 +1484,9 @@
       Se il criterio non viene impostato, i cookie di terze parti vengono attivati, ma gli utenti possono modificare l'impostazione.</translation>
 <translation id="2386362615870139244">Consenti Wakelock dello schermo</translation>
 <translation id="2387469539700985783">Questo criterio non influisce sui report generati da Android.</translation>
+<translation id="2388701318721126001">Se questo criterio viene disattivato, non è possibile selezionare l'immagine di sfondo dell'utente <ph name="PRODUCT_OS_NAME" /> da un album di Google Foto.
+
+L'utente può scegliere un'immagine di Google Foto come sfondo se questo criterio viene attivato o se non viene configurato.</translation>
 <translation id="2393862222659066027">Apri un elenco di URL e ripristina l'ultima sessione</translation>
 <translation id="2394429297128584919">Non consentire alle pagine di inviare richieste XHR sincrone durante la chiusura delle pagine</translation>
 <translation id="2394674739523870144">Se per questo criterio viene impostato un elenco di stringhe, queste ultime vengono unite usando degli spazi e passate da <ph name="IE_PRODUCT_NAME" /> a <ph name="PRODUCT_NAME" /> sotto forma di parametri della riga di comando. Se un parametro contiene <ph name="URL_PLACEHOLDER" />, il valore <ph name="URL_PLACEHOLDER" /> viene sostituito con l'URL della pagina da aprire. Se nessun parametro contiene <ph name="URL_PLACEHOLDER" />, l'URL viene aggiunto alla fine della riga di comando.
@@ -2842,6 +2847,7 @@
 <translation id="3608206578291537084">Abilita la Pipeline di reporting criptato</translation>
 <translation id="3608281460204780443">Visualizza l'icona di Chrome Web Store in Avvio app di <ph name="PRODUCT_OS_NAME" /> e nella pagina Nuova scheda</translation>
 <translation id="3622463490728773174">Consenti nuova implementazione</translation>
+<translation id="3623332696371971798">Impedisci l'accesso a Google Foto dall'app di personalizzazione</translation>
 <translation id="3627678165642179114">Attiva o disattiva il servizio web di controllo ortografico</translation>
 <translation id="3628480121685794414">Attiva stampa su un lato</translation>
 <translation id="3634125384445314047">Consenti l'accesso tramite Phone Hub a foto e video recenti acquisiti sul telefono.</translation>
@@ -2879,6 +2885,7 @@
 
           Si tratta di un criterio temporaneo di cui è prevista la rimozione in <ph name="PRODUCT_NAME" /> 107. Questo termine ultimo potrebbe essere esteso nel caso in cui le aziende dovessero averne bisogno.
           </translation>
+<translation id="3678069907945250643">Consenti l'accesso a Google Foto dall'app di personalizzazione</translation>
 <translation id="3685979383016152590">La configurazione del criterio consente di determinare quale criterio di accesso applicare per la configurazione collettiva delle stampanti, al fine di stabilire quali stampanti del criterio <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> mettere a disposizione degli utenti.
 
       * Per l'opzione <ph name="PRINTERS_BLOCKLIST" /> (valore 0) viene usato il valore <ph name="PRINTERS_BULK_BLOCKLIST" /> per limitare l'accesso alle stampanti specificate.
@@ -7169,6 +7176,7 @@
       Se questo criterio viene disattivato o se non viene configurato, potrebbe non essere consentita l'esecuzione delle app di Chrome, in base allo stato del ritiro graduale.
       In ogni caso, continueranno a essere consentite le app di Chrome con installazione forzata in base al criterio.</translation>
 <translation id="7774768074957326919">Utilizza le impostazioni proxy di sistema</translation>
+<translation id="7775077662962729812">Selezione di sfondi da Google Foto</translation>
 <translation id="7776848995687565978">Configura un elenco di origini che concedono una durata estesa in background alle estensioni che si connettono.</translation>
 <translation id="777734450201217641">Consente di attivare le scorciatoie delle funzioni di accessibilità nella schermata di accesso.
 
@@ -7996,6 +8004,7 @@
 
           Se il criterio non viene configurato per un sito, il criterio di <ph name="DEFAULT_JAVA_SCRIPT_JIT_SETTING_POLICY_NAME" /> viene applicato al sito, se configurato, altrimenti JIT di JavaScript viene attivato per il sito.</translation>
 <translation id="8543108307976719751">Impedisci le connessioni di accesso remoto a questo computer</translation>
+<translation id="8543639085146778837">Consenti la raccolta di log di testo WebRTC dai servizi Google</translation>
 <translation id="8543975123557636331">Attiva l'output audio</translation>
 <translation id="8544375438507658205">Renderer HTML predefinito per <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="8544465954173828789">Consente la sincronizzazione di messaggi SMS dal telefono al Chromebook</translation>
@@ -8499,6 +8508,9 @@
 
       Il valore della norma deve essere specificato in millisecondi. I valori sono limitati a un intervallo compreso tra 30 secondi e 24 ore.</translation>
 <translation id="9040042535845939426">Imposta lo stato di Schermata sulla privacy nella schermata di accesso</translation>
+<translation id="9046248916118130378">Se il criterio viene impostato su Attivato, <ph name="PRODUCT_NAME" /> può raccogliere log di testo WebRTC dai servizi Google, ad esempio Google Meet, e caricarli su Google. Questi log contengono informazioni diagnostiche utili per il debug dei problemi relativi a riunioni audio e video in <ph name="PRODUCT_NAME" />, ad esempio metadati di testo che descrivono gli stream WebRTC in entrata e in uscita, le voci di log specifiche di WebRTC e informazioni di sistema aggiuntive. Questi log non contengono l'audio o i video delle riunioni.
+Se il criterio viene impostato su Disattivato, il caricamento di questi log su Google non viene eseguito. I log si accumuleranno comunque localmente sul dispositivo dell'utente.
+Se il criterio non viene configurato, per impostazione predefinita <ph name="PRODUCT_NAME" /> può raccogliere e caricare i log.</translation>
 <translation id="9050853837490399534">Questa norma consente di stabilire se il dispositivo debba essere aggiornato a una build di correzione rapida.
 
       Se il valore della norma viene impostato su un token associato a una build di correzione rapida, il dispositivo verrà aggiornato alla build di correzione rapida corrispondente se l'aggiornamento non è bloccato da un'altra norma.
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 8f001901..62f163e 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -798,6 +798,7 @@
       정책을 설정하지 않으면 사용자 화면 제어 또는 자동 밝기 기능에 어떠한 영향도 미치지 않습니다.
 
       참고: 이 정책의 값은 0부터 100까지의 비율로 지정해야 합니다.</translation>
+<translation id="1733092875104864334">Google 서비스에서 WebRTC 텍스트 로그 수집 허용 안함</translation>
 <translation id="1733768596873041559">기본적으로 SAML IdP로 리디렉션(<ph name="PRODUCT_NAME" /> 99 이전 버전에서는 사용자 확인 필요)</translation>
 <translation id="1733939382419067578">정책을 설정하면 알림 표시가 가능한 사이트를 지정하는 URL 패턴 목록을 설정할 수 있습니다.
 
@@ -1343,6 +1344,7 @@
 
       정책을 설정하지 않으면 'DisabledPlugins'의 패턴과 일치하는 모든 플러그인이 잠겨 사용 중지되며 사용자가 다시 사용 설정할 수 없습니다.</translation>
 <translation id="2236488539271255289">모든 사이트에서 로컬 데이터 설정 허용 안함</translation>
+<translation id="2236593201136596376">Google 서비스에서 WebRTC 텍스트 로그 수집 허용</translation>
 <translation id="2241498944622759244">이 기능은 출시되지 않았기 때문에 정책이 지원 중단되었습니다. true로 설정하거나 설정하지 않으면 <ph name="PRODUCT_NAME" />에서 현재 페이지와 관련된 페이지를 추천합니다.
       추천 페이지는 Google 서버에서 원격으로 가져옵니다.
 
@@ -8041,6 +8043,7 @@
 
           어떤 사이트에 이 정책이 설정되지 않으면 <ph name="DEFAULT_JAVA_SCRIPT_JIT_SETTING_POLICY_NAME" />의 정책이 사이트에 적용되며(정책이 설정되어 있는 경우), 그렇지 않으면 사이트에 자바스크립트 JIT가 사용 설정됩니다.</translation>
 <translation id="8543108307976719751">이 시스템으로 원격 액세스 연결을 차단</translation>
+<translation id="8543639085146778837">Google 서비스에서 WebRTC 텍스트 로그 수집 허용</translation>
 <translation id="8543975123557636331">오디오 출력 사용 설정</translation>
 <translation id="8544375438507658205"><ph name="PRODUCT_FRAME_NAME" />의 기본 HTML 렌더러</translation>
 <translation id="8544465954173828789">SMS 메시지가 휴대전화에서 Chromebook으로 동기화되도록 허용</translation>
@@ -8544,6 +8547,9 @@
 
       이 정책 값은 밀리초로 지정되어야 하며 값은 30초에서 24시간 범위로 잘립니다.</translation>
 <translation id="9040042535845939426">로그인 화면에서 개인 정보 보호 화면의 상태 설정</translation>
+<translation id="9046248916118130378">정책을 사용 설정하면 <ph name="PRODUCT_NAME" />에서 Google Meet과 같은 Google 서비스의 WebRTC 텍스트 로그를 수집하고 Google에 업로드할 수 있습니다. 이러한 로그에는 수신 및 발신 WebRTC 스트림을 설명하는 텍스트 메타데이터, WebRTC 관련 로그 항목, 추가 시스템 정보와 같이 <ph name="PRODUCT_NAME" />에서 음성/화상 회의와 관련된 문제를 디버깅하는 데 유용한 진단 정보가 포함됩니다. 이러한 로그에는 회의의 오디오/동영상 콘텐츠가 포함되지 않습니다.
+정책을 사용 안함으로 설정하면 이러한 로그가 Google에 업로드되지 않습니다. 로그는 사용자의 기기에 로컬로 계속 누적됩니다.
+정책을 설정하지 않으면 <ph name="PRODUCT_NAME" />에서 기본적으로 이러한 로그를 수집하고 업로드할 수 있습니다.</translation>
 <translation id="9050853837490399534">이 정책은 기기가 빠른 픽스 빌드로 업데이트되어야 하는지 여부를 제어합니다.
 
       정책 값이 빠른 픽스 빌드로 매핑되는 토큰으로 설정된 경우 업데이트가 다른 정책에 의해 차단되지 않으면 기기가 빠른 픽스 빌드로 업데이트됩니다.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 81eb7058..882f4e7 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -799,6 +799,7 @@
       Als je het beleid niet instelt, bepaalt de gebruiker de helderheid en heeft dit geen invloed op de functies voor automatische helderheid.
 
       Opmerking: Geef de beleidswaarden op in procenten, minimaal 0 en maximaal 100.</translation>
+<translation id="1733092875104864334">Verzamelen van WebRTC-tekstlogboeken van Google-services niet toestaan</translation>
 <translation id="1733768596873041559">Standaard omleiden naar SAML IdP (voorafgaand aan <ph name="PRODUCT_NAME" /> 99 is gebruikersbevestiging vereist)</translation>
 <translation id="1733939382419067578">Als je het beleid instelt, kun je een lijst met URL-patronen instellen van de sites die meldingen mogen bekijken.
 
@@ -1342,6 +1343,7 @@
 
       Als dit beleid niet wordt toegepast, wordt elke plug-in uitgezet die overeenkomt met de patronen in DisabledPlugins, en kan de gebruiker deze niet aanzetten.</translation>
 <translation id="2236488539271255289">Niet toestaan dat sites lokaal gegevens instellen</translation>
+<translation id="2236593201136596376">Verzamelen van WebRTC-tekstlogboeken van Google-services toestaan</translation>
 <translation id="2241498944622759244">Deze functie is nooit gelanceerd. Het beleid is daardoor beëindigd. Als dit beleid is ingesteld op True of niet is ingesteld, stelt <ph name="PRODUCT_NAME" /> pagina's voor met betrekking tot de huidige pagina.
       Deze suggesties worden extern opgehaald van Google-servers.
 
@@ -7972,6 +7974,7 @@
 
           Als dit beleid niet is ingesteld voor een site, is het beleid van <ph name="DEFAULT_JAVA_SCRIPT_JIT_SETTING_POLICY_NAME" /> van toepassing op de site, indien ingesteld, anders staat JavaScript JIT aan voor de site.</translation>
 <translation id="8543108307976719751">Verbindingen voor externe toegang tot deze machine voorkomen</translation>
+<translation id="8543639085146778837">Verzamelen van WebRTC-tekstlogboeken van Google-services toestaan</translation>
 <translation id="8543975123557636331">Audio-uitvoer aanzetten</translation>
 <translation id="8544375438507658205">Standaard HTML-renderer voor <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="8544465954173828789">Toestaan dat sms-berichten worden gesynchroniseerd tussen telefoon en Chromebook.</translation>
@@ -8474,6 +8477,9 @@
 
       De beleidswaarde moet worden gespecificeerd in milliseconden. Waarden worden afgerond tot een bereik van dertig seconden tot vierentwintig uur.</translation>
 <translation id="9040042535845939426">Stelt de status van het privacyscherm in op het inlogscherm</translation>
+<translation id="9046248916118130378">Als je het beleid toepast, kan <ph name="PRODUCT_NAME" /> WebRTC-tekstlogboeken ophalen uit Google-services zoals Google Meet en deze uploaden naar Google. Deze logboeken bevatten diagnostische informatie voor het oplossen van problemen met audio- of videovergaderingen in <ph name="PRODUCT_NAME" />. Deze informatie betreft bijvoorbeeld tekstmetadata die inkomende en uitgaande WebRTC-streams beschrijven, WebRTC-specifieke logboekitems en aanvullende systeemgegevens. Deze logboeken bevatten geen audio- of videocontent van de vergadering.
+Als je het beleid niet toepast, worden deze logboeken niet geüpload naar Google. Logboeken worden nog steeds lokaal op het apparaat van de gebruiker verzameld.
+Als je het beleid niet instelt, kan <ph name="PRODUCT_NAME" /> deze logboeken standaard verzamelen en uploaden.</translation>
 <translation id="9050853837490399534">Met dit beleid wordt bepaald of het apparaat moet worden geüpdatet naar een Quick Fix Build.
 
       Als de beleidswaarde is ingesteld op een token dat naar een Quick Fix Build verwijst, wordt het apparaat geüpdatet naar de bijbehorende Quick Fix Build als de update niet wordt geblokkeerd door een ander beleid.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 33eab01..dde39ee32 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -798,6 +798,7 @@
       Se a política não for definida, os controles da tela pelo usuário ou os recursos de brilho automático não serão afetados.
 
       Observação: os valores da política precisam ser especificados em porcentagens de 0 a 100.</translation>
+<translation id="1733092875104864334">Não permitir a coleta de registros de textos WebRTC em Serviços do Google</translation>
 <translation id="1733768596873041559">Redirecionar para o IdP SAML por padrão. Confirmação do usuário necessária nas versões do <ph name="PRODUCT_NAME" /> anteriores à 99</translation>
 <translation id="1733939382419067578">Se a política for definida, será possível configurar uma lista de padrões de URL que especifica os sites que podem exibir notificações.
 
@@ -1346,6 +1347,7 @@
 
       Se esta política não for definida, todo plug-in que corresponder aos padrões em DisabledPlugins será desativado, e o usuário não poderá ativá-los.</translation>
 <translation id="2236488539271255289">Não permitir que nenhum site defina dados locais</translation>
+<translation id="2236593201136596376">Permitir a coleta de registros de textos WebRTC nos Serviços do Google</translation>
 <translation id="2241498944622759244">Esse recurso nunca foi lançado, por isso a política está obsoleta. Se esta política for definida como verdadeira ou não for definida, páginas relacionadas à atual serão sugeridas no <ph name="PRODUCT_NAME" />.
       Essas sugestões são buscadas remotamente dos servidores do Google.
 
@@ -8132,6 +8134,7 @@
 
           Se esta política não for definida para um site, a política de <ph name="DEFAULT_JAVA_SCRIPT_JIT_SETTING_POLICY_NAME" /> será aplicada, se definida. Do contrário, um JIT do JavaScript será ativado.</translation>
 <translation id="8543108307976719751">Impedir conexões de acesso remoto a esta máquina</translation>
+<translation id="8543639085146778837">Permitir a coleta de registros de textos WebRTC em Serviços do Google</translation>
 <translation id="8543975123557636331">Ativar saída de áudio</translation>
 <translation id="8544375438507658205">Renderizador padrão de HTML para o <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="8544465954173828789">Permite a sincronização de mensagens SMS do smartphone com o Chromebook.</translation>
@@ -8638,6 +8641,9 @@
 
       O valor da política precisa ser especificado em milissegundos. Os valores são ajustados a um intervalo entre 30 segundos e 24 horas.</translation>
 <translation id="9040042535845939426">Definir o estado da tela de privacidade na tela de login</translation>
+<translation id="9046248916118130378">Se a política é definida como ativada, o <ph name="PRODUCT_NAME" /> pode coletar registros de textos WebRTC em Serviços do Google (por exemplo, no Google Meet) e fazer upload deles para o Google. Esses registros contêm informações de diagnóstico para depurar problemas em videochamadas de áudio ou vídeo no <ph name="PRODUCT_NAME" />, por exemplo, metadados textuais que descrevem streams de entrada e saída, entradas de registro específicas do WebRTC e informações adicionais do sistema. Esses registros não têm conteúdo de áudio ou vídeo da chamada.
+Se a política é definida como desativada, esses registros não são enviados ao Google. Os registros ainda se acumulam localmente no dispositivo do usuário.
+Se a política é deixada sem definição, o <ph name="PRODUCT_NAME" /> pode coletar e fazer upload desses registros por padrão.</translation>
 <translation id="9050853837490399534">Esta política controla se é necessário ou não que o dispositivo seja atualizado para um Quick Fix Build.
 
       Se o valor da política for definido para um token que mapeia para um Quick Fix Build, o dispositivo será atualizado para o Quick Fix Build correspondente se a atualização não estiver bloqueada por outra política.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index f1b89726..2db7ecb6 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -795,6 +795,7 @@
       Если правило не настроено, пользовательские настройки экрана и функция адаптивной яркости не будут изменены.
 
       Примечание. Значение указывается в процентах (от 0 до 100).</translation>
+<translation id="1733092875104864334">Запретить сбор текстовых журналов WebRTC из сервисов Google</translation>
 <translation id="1733768596873041559">Перенаправлять к поставщику идентификационной информации SAML по умолчанию (в <ph name="PRODUCT_NAME" /> до версии 99 нужно подтверждение пользователя)</translation>
 <translation id="1733939382419067578">Позволяет задать список шаблонов URL для указания сайтов, которым разрешено показывать уведомления.
 
@@ -942,6 +943,11 @@
       Если правило не настроено или указано значение False, <ph name="PRODUCT_NAME" /> не будет выполнять онлайн-проверки отзыва сертификатов в <ph name="PRODUCT_NAME" /> 19 и более поздних версий.
 
       Примечание. Проверки <ph name="OCSP_CRL_LABEL" /> не обеспечивают существенного повышения уровня защиты.</translation>
+<translation id="1904685047904049720">Если правило включено, в <ph name="PRODUCT_NAME" /> будут отключены расширения, публикация которых отменена в интернет-магазине Chrome.
+Это правило действует только для расширений, которые установлены и обновляются через интернет-магазин Chrome. Расширения, которые не представлены в этом магазине, например распакованные и установленные в режиме разработчика или установленные с помощью параметра командной строки, игнорируются. Принудительно установленные расширения, которые не обновляются через интернет-магазин Chrome, и расширения, чья версия была закреплена, также игнорируются.
+
+Если правило не настроено или для него задано значение <ph name="ALLOW_UNPUBLISHED" /> (0), расширения, публикация которых отменена в интернет-магазине Chrome, можно использовать.
+Если для правила задано значение <ph name="DISABLE_UNPUBLISHED" /> (1), расширения, публикация которых отменена в интернет-магазине Chrome, будут отключены.</translation>
 <translation id="1905061765326052857">Запретить неаффилированным пользователям использовать виртуальные машины для поддержки приложений Linux</translation>
 <translation id="1910704279188129272">Позволяет установить ограничения на использование определенных приложений.
         Эти ограничения можно задать в отношении приложений, которые установлены на компьютере с <ph name="PRODUCT_OS_NAME" />, для выбранных пользователей.
@@ -1343,6 +1349,7 @@
 
       Если правило не настроено, все плагины, соответствующие записям в списке DisabledPlugins, блокируются, и пользователи не могут включить их.</translation>
 <translation id="2236488539271255289">Запретить сайтам сохранять данные на компьютер</translation>
+<translation id="2236593201136596376">Разрешить сбор текстовых журналов WebRTC из сервисов Google</translation>
 <translation id="2241498944622759244">Эта функция не была запущена, поэтому правило не поддерживается. Если задано значение True или правило не настроено, пользователю <ph name="PRODUCT_NAME" /> будут предлагаться страницы, похожие на уже открытую.
       Предложенные страницы загружаются с серверов Google.
 
@@ -5677,6 +5684,7 @@
 
       Если вы настроите это правило, пользователи не смогут его изменить. Если правило не настроено, пользователи смогут через контекстное меню панели закладок включать или отключать показ кнопки "Сервисы".</translation>
 <translation id="638003144128412430">Отключить отправку данных о часовом поясе устройства</translation>
+<translation id="6382209369210116232">Отключить расширения с отмененной публикацией</translation>
 <translation id="6382351416269252693">Позволяет задать список шаблонов URL для указания сайтов, которым автоматически запрещено использовать шрифты на устройстве. Это ограничит доступ сайтов к информации о шрифтах на устройстве.
 
       Подробнее о допустимых шаблонах URL: https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Разрешается использовать подстановочные знаки (<ph name="WILDCARD_VALUE" />). Это правило работает только с адресами сайтов-источников, поэтому пути в шаблонах URL не учитываются.
@@ -8022,6 +8030,7 @@
 
           Если значение не задано, то для сайта применяется правило <ph name="DEFAULT_JAVA_SCRIPT_JIT_SETTING_POLICY_NAME" /> (если оно настроено), в противном случае JIT-компилятор JavaScript будет включен.</translation>
 <translation id="8543108307976719751">Заблокировать удаленные подключения к этому устройству</translation>
+<translation id="8543639085146778837">Разрешить сбор текстовых журналов WebRTC из сервисов Google</translation>
 <translation id="8543975123557636331">Включить вывод аудио</translation>
 <translation id="8544375438507658205">Средство обработки HTML в <ph name="PRODUCT_FRAME_NAME" /> по умолчанию</translation>
 <translation id="8544465954173828789">Разрешить синхронизацию SMS на телефоне и устройстве Chromebook</translation>
@@ -8527,6 +8536,9 @@
 
       Значение указывается в миллисекундах и составляет от 30 секунд до 24 часов.</translation>
 <translation id="9040042535845939426">Установить статус экрана конфиденциальности на экране входа</translation>
+<translation id="9046248916118130378">Если правило включено, <ph name="PRODUCT_NAME" /> может собирать текстовые журналы WebRTC из сервисов Google (например, Google Meet) и загружать их в Google. В журналах содержатся сведения для отладки звонков и видеовстреч в <ph name="PRODUCT_NAME" />, например текстовые метаданные с описанием входящих и исходящих потоков WebRTC, записи, касающиеся WebRTC, и дополнительная информация о системе. В журналах нет самого аудио- и видеоконтента.
+Если правило отключено, журналы не загружаются в Google. Они по-прежнему будут сохраняться на устройстве пользователя.
+Если правило не настроено, <ph name="PRODUCT_NAME" /> сможет собирать текстовые журналы и загружать их в Google.</translation>
 <translation id="9050853837490399534">Это правило определяет, будет ли на устройстве устанавливаться Quick Fix Build.
 
       Если в значении правила есть токен, указывающий на сборку Quick Fix Build, она будет установлена на устройстве (если это не запрещено другим правилом).
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 27b9f19..16b3f9c4 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -797,6 +797,7 @@
       Якщо це правило не налаштовано, елементи керування екраном і функції адаптації яскравості не змінюються.
 
       Примітка. Значення правила потрібно вказувати у відсотках від 0 до 100.</translation>
+<translation id="1733092875104864334">Заборонити збирати текстові журнали WebRTC із сервісів Google</translation>
 <translation id="1733768596873041559">Переспрямовувати на постачальника ідентифікаторів SAML за умовчанням (у <ph name="PRODUCT_NAME" /> до версії 99 потрібне підтвердження користувача)</translation>
 <translation id="1733939382419067578">За допомогою цього правила можна вказати список шаблонів URL-адрес, що визначають сайти, які можуть показувати сповіщення.
 
@@ -1344,6 +1345,7 @@
 
       Якщо це правило не налаштовано, усі плагіни, що відповідають шаблонам у списку DisabledPlugins, блокуються у вимкненому стані, а користувач не зможе їх вмикати.</translation>
 <translation id="2236488539271255289">Забороняти всім сайтам установлювати локальні дані</translation>
+<translation id="2236593201136596376">Дозволити збирати текстові журнали WebRTC із сервісів Google</translation>
 <translation id="2241498944622759244">Ця функція ніколи не запускалася, тому правило не підтримується. Якщо для цього правила вибрано значення true або його не налаштовано, <ph name="PRODUCT_NAME" /> пропонуватиме сторінки, пов'язані з поточною.
       Ці пропозиції завантажуються віддалено із серверів Google.
 
@@ -1488,6 +1490,9 @@
       Якщо не налаштовувати це правило, сторонні файли cookie не блокуватимуться, але користувачі зможуть змінити цей параметр.</translation>
 <translation id="2386362615870139244">Дозволити блокування режиму активного стану екрана</translation>
 <translation id="2387469539700985783">Це правило не впливає на звіти, які ви отримуєте від ОС Android.</translation>
+<translation id="2388701318721126001">Якщо це правило вимкнути, користувач не зможе вибрати фоновий малюнок для <ph name="PRODUCT_OS_NAME" /> з альбому Google Фото.
+
+Якщо це правило ввімкнути або не налаштувати, користувач зможе встановлювати як фоновий малюнок зображення з Google Фото.</translation>
 <translation id="2393862222659066027">Відкрити список URL-адрес і відновити останній сеанс</translation>
 <translation id="2394429297128584919">Заборонити сторінкам надсилати синхронні запити XHR під час закриття</translation>
 <translation id="2394674739523870144">Якщо для правила вибрано список сегментів, ці сегменти з'єднуються пробілами й передаються з <ph name="IE_PRODUCT_NAME" /> у <ph name="PRODUCT_NAME" /> як параметри командного рядка. Якщо параметр містить елемент <ph name="URL_PLACEHOLDER" />, <ph name="URL_PLACEHOLDER" /> замінюється URL-адресою сторінки, яку потрібно відкрити. Якщо в жодному параметрі немає елемента <ph name="URL_PLACEHOLDER" />, URL-адреса додається в кінці командного рядка.
@@ -2851,6 +2856,7 @@
 <translation id="3608206578291537084">Увімкнути зашифрований канал звітування</translation>
 <translation id="3608281460204780443">Показувати значок Веб-магазину Chrome на панелі запуску <ph name="PRODUCT_OS_NAME" /> і на сторінці нової вкладки</translation>
 <translation id="3622463490728773174">Дозволити використовувати нову реалізацію</translation>
+<translation id="3623332696371971798">Заборонити доступ до Google Фото з особистого додатка</translation>
 <translation id="3627678165642179114">Вмикати чи вимикати веб-службу перевірки орфографії</translation>
 <translation id="3628480121685794414">Увімкнути односторонній друк</translation>
 <translation id="3634125384445314047">Дозволити отримувати доступ до нещодавніх фото й відео, знятих на цьому телефоні, за допомогою функції "Керування телефоном".</translation>
@@ -2888,6 +2894,7 @@
 
           Це тимчасове правило, яке планується вилучити в <ph name="PRODUCT_NAME" /> 107. Кінцевий термін може бути подовжено, якщо це потрібно для підприємств.
           </translation>
+<translation id="3678069907945250643">Надати доступ до Google Фото з особистого додатка</translation>
 <translation id="3685979383016152590">Це правило вказує, яке правило доступу діє для групового налаштування принтерів. Воно визначає, які принтери з правила <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> доступні для користувачів.
 
       * Якщо вибрано <ph name="PRINTERS_BLOCKLIST" /> (значення 0), забороняється доступ до принтерів, визначених у правилі <ph name="PRINTERS_BULK_BLOCKLIST" />
@@ -7191,6 +7198,7 @@
       Якщо це правило вимкнути або не налаштувати, запуск додатків Chrome може бути забороненим залежно від статусу припинення підтримки.
       У будь-якому випадку додатки Chrome, які примусово встановили за допомогою правила, можна буде запускати.</translation>
 <translation id="7774768074957326919">Використовувати налаштування проксі-сервера системи</translation>
+<translation id="7775077662962729812">Вибір фонового малюнка з Google Фото</translation>
 <translation id="7776848995687565978">Налаштувати список джерел, які подовжують час роботи підключених розширень у фоновому режимі.</translation>
 <translation id="777734450201217641">Увімкнути комбінації клавіш для спеціальних можливостей на екрані входу.
 
@@ -8031,6 +8039,7 @@
 
           Якщо це правило не налаштовано для сайту, тоді застосовується правило <ph name="DEFAULT_JAVA_SCRIPT_JIT_SETTING_POLICY_NAME" /> (якщо воно вказано). В інших випадках JIT-компілятор JavaScript для сайту буде ввімкнено.</translation>
 <translation id="8543108307976719751">Заблокувати віддалений доступ до цієї машини</translation>
+<translation id="8543639085146778837">Дозволити збирати текстові журнали WebRTC із сервісів Google</translation>
 <translation id="8543975123557636331">Увімкнути аудіовихід</translation>
 <translation id="8544375438507658205">Відтворення у форматі HTML за умовчанням для <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="8544465954173828789">Дозволити синхронізацію SMS-повідомлень на телефоні з Chromebook.</translation>
@@ -8533,6 +8542,9 @@
 
       Значення правила вказується в мілісекундах. Діапазон значень – від 30 секунд до 24 годин.</translation>
 <translation id="9040042535845939426">Налаштувати стан екрана конфіденційності на екрані входу</translation>
+<translation id="9046248916118130378">Якщо ввімкнути це правило, <ph name="PRODUCT_NAME" /> зможе збирати текстові журнали WebRTC із сервісів Google, таких як Google Meet, і завантажувати їх на сервери Google. Ці журнали містять діагностичну інформацію для вирішення проблем з аудіо- й відеозустрічами в <ph name="PRODUCT_NAME" />, зокрема метадані тексту, що описують вхідні та вихідні потоки WebRTC, записи в журналах WebRTC і додаткову системну інформацію. Аудіо- й відеоконтент зустрічей не включається в ці журнали.
+Якщо це правило вимкнути, такі журнали не завантажуватимуться в Google, але все одно зберігатимуться на локальному пристрої користувача.
+Якщо це правило не налаштовано, <ph name="PRODUCT_NAME" /> зможе за умовчанням збирати й завантажувати ці журнали.</translation>
 <translation id="9050853837490399534">Це правило дає змогу вказати, чи оновлювати пристрій до складання Quick Fix.
 
       Якщо для правила вказано маркер, який зіставляється зі складанням Quick Fix, пристрій буде оновлено до відповідного складання Quick Fix за умови, що це оновлення не блокується іншим правилом.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 7c0e21e..00abd3d 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -946,6 +946,11 @@
       Nếu bạn đặt chính sách này thành False hoặc không đặt chính sách này, thì <ph name="PRODUCT_NAME" /> sẽ không thực hiện các hoạt động kiểm tra thu hồi trực tuyến ở <ph name="PRODUCT_NAME" /> 19 trở lên.
 
       Lưu ý: Các hoạt động kiểm tra <ph name="OCSP_CRL_LABEL" /> không giúp cải thiện hiệu quả bảo mật.</translation>
+<translation id="1904685047904049720">Nếu bạn bật chính sách này thì các tiện ích chưa phát hành trên Cửa hàng Chrome trực tuyến sẽ bị vô hiệu hoá trên <ph name="PRODUCT_NAME" />.
+Chính sách này chỉ áp dụng cho các tiện ích được cài đặt và cập nhật từ Cửa hàng Chrome trực tuyến. Tiện ích từ bên ngoài cửa hàng, chẳng hạn như tiện ích đã giải nén được cài đặt bằng chế độ nhà phát triển và tiện ích được cài đặt bằng tuỳ chọn chuyển dòng lệnh sẽ bị bỏ qua. Tiện ích buộc cài đặt không cập nhật từ Cửa hàng Chrome trực tuyến và tất cả tiện ích cố định ở một phiên bản cũng sẽ bị bỏ qua.
+
+Nếu bạn đặt chính sách này thành <ph name="ALLOW_UNPUBLISHED" /> (0) hoặc không đặt, các tiện ích chưa phát hành trên Cửa hàng Chrome trực tuyến sẽ được cho phép.
+Nếu bạn đặt chính sách này thành <ph name="DISABLE_UNPUBLISHED" /> (1) thì các tiện ích chưa phát hành trên Cửa hàng Chrome trực tuyến sẽ bị vô hiệu hoá.</translation>
 <translation id="1905061765326052857">Không cho phép người dùng chưa liên kết sử dụng máy ảo cần thiết để hỗ trợ các ứng dụng Linux</translation>
 <translation id="1910704279188129272">Cho phép đặt giới hạn sử dụng cho mỗi ứng dụng.
         Bạn có thể áp dụng giới hạn sử dụng cho các ứng dụng đã cài đặt trên <ph name="PRODUCT_OS_NAME" /> đối với người dùng cụ thể.
@@ -5687,6 +5692,7 @@
 
       Nếu bạn đặt chính sách này, thì người dùng sẽ không thể thay đổi được. Nếu bạn không đặt chính sách này, thì người dùng sẽ quyết định hiện hoặc ẩn lối tắt ứng dụng từ trình đơn ngữ cảnh trên thanh dấu trang.</translation>
 <translation id="638003144128412430">Tắt tính năng báo cáo thông tin về múi giờ của thiết bị</translation>
+<translation id="6382209369210116232">Vô hiệu hoá tiện ích chưa phát hành</translation>
 <translation id="6382351416269252693">Đặt một danh sách mẫu URL trang web chỉ định trang web sẽ tự động từ chối quyền phông chữ trên máy. Việc này sẽ hạn chế khả năng các trang web xem được thông tin về phông chữ trên máy.
 
       Để biết thông tin chi tiết về các mẫu URL trang web hợp lệ, vui lòng truy cập https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. Cho phép sử dụng ký tự đại diện <ph name="WILDCARD_VALUE" />. Chính sách này chỉ đối chiếu dựa trên nguồn gốc, nên mọi đường dẫn trong mẫu URL sẽ bị bỏ qua.
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index d52a38b..9477633 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -793,6 +793,7 @@
       如果不設定這項政策,使用者螢幕控制項和自動調整亮度功能皆不會受到影響。
 
       注意:政策設定值應指定為 0 至 100 之間的百分比值。</translation>
+<translation id="1733092875104864334">不允許從 Google 服務收集 WebRTC 文字記錄</translation>
 <translation id="1733768596873041559">預設會重新導向至 SAML IdP (使用版本低於 <ph name="PRODUCT_NAME" /> 99 的使用者必須確認這項操作)</translation>
 <translation id="1733939382419067578">你可以透過這項政策設定網址模式清單,用於指定可顯示通知的網站。
 
@@ -1330,6 +1331,7 @@
 
       如果不設定這項政策,系統將鎖定並停用任何與「DisabledPlugins」中模式相符的外掛程式,且使用者無法加以啟用。</translation>
 <translation id="2236488539271255289">不允許任何網站設定本機資料</translation>
+<translation id="2236593201136596376">允許從 Google 服務收集 WebRTC 文字記錄</translation>
 <translation id="2241498944622759244">此功能從未推出,因此這項政策目前已淘汰。如果將這項政策設為 True 或不設定,<ph name="PRODUCT_NAME" /> 會提供與目前網頁相關的網頁建議。
       這些建議擷取自遠端的 Google 伺服器。
       如果設為 False,則系統不會進行擷取,也不會顯示建議。</translation>
@@ -7887,6 +7889,7 @@
 
           如果 <ph name="DEFAULT_JAVA_SCRIPT_JIT_SETTING_POLICY_NAME" /> 中已設定政策,未設定這項政策的網站就會套用該政策;若否,則網站會啟用 JavaScript JIT。</translation>
 <translation id="8543108307976719751">禁止與這部裝置建立遠端存取連線</translation>
+<translation id="8543639085146778837">允許從 Google 服務收集 WebRTC 文字記錄</translation>
 <translation id="8543975123557636331">啟用音訊輸出</translation>
 <translation id="8544375438507658205">預設 <ph name="PRODUCT_FRAME_NAME" /> 的 HTML 轉譯器</translation>
 <translation id="8544465954173828789">允許將簡訊從手機同步至 Chromebook。</translation>
@@ -8385,6 +8388,9 @@
 
       指定政策值時需以毫秒為單位。該值必須介於 30 秒至 24 小時之間。</translation>
 <translation id="9040042535845939426">設定登入畫面上的隱私保護畫面狀態</translation>
+<translation id="9046248916118130378">如果將這項政策設為啟用,<ph name="PRODUCT_NAME" /> 將可從 Google Meet 等 Google 服務收集 WebRTC 文字記錄,並上傳到 Google。這些記錄含有診斷資訊,可用於對 <ph name="PRODUCT_NAME" /> 中的音訊或視訊會議問題進行偵錯,例如說明傳入和傳出 WebRTC 串流的文字中繼資料、WebRTC 特定記錄項目和其他系統資訊。這些記錄不包含會議的任何音訊或視訊內容。
+如果將這項政策設為停用,系統就不會將這些記錄上傳到 Google,而是存放在使用者裝置本機上。
+如未設定這項政策,<ph name="PRODUCT_NAME" /> 預設將能收集並上傳這些記錄。</translation>
 <translation id="9050853837490399534">這項政策可控管是否要將裝置更新為「快速修復版本」。
 
       如果將政策值設為對應至快速修復版本的符記,且其他政策未封鎖更新,則裝置會更新為相應的快速修復版本。
diff --git a/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeVariations.yaml b/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeVariations.yaml
index 8bd4a07d..058702fd 100644
--- a/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeVariations.yaml
+++ b/components/policy/resources/templates/policy_definitions/Miscellaneous/ChromeVariations.yaml
@@ -14,7 +14,6 @@
   dynamic_refresh: true
   per_profile: false
 future_on:
-- android
 - fuchsia
 items:
 - caption: Enable all variations
@@ -36,6 +35,7 @@
   - 2
   type: integer
 supported_on:
+- android:112-
 - chrome.*:83-
 - ios:88-
 tags: []
diff --git a/components/policy/resources/webui/policy_row.js b/components/policy/resources/webui/policy_row.js
index b3119ba..83548292 100644
--- a/components/policy/resources/webui/policy_row.js
+++ b/components/policy/resources/webui/policy_row.js
@@ -96,8 +96,13 @@
     // value has been set. Otherwise, leave them blank.
     if (!this.unset_) {
       const scopeDisplay = this.shadowRoot.querySelector('.scope');
-      scopeDisplay.textContent = loadTimeData.getString(
-          policy.scope === 'user' ? 'scopeUser' : 'scopeDevice');
+      let scope = 'scopeDevice';
+      if (policy.scope === 'user') {
+        scope = 'scopeUser';
+      } else if (policy.scope === 'allUsers') {
+        scope = 'scopeAllUsers';
+      }
+      scopeDisplay.textContent = loadTimeData.getString(scope);
 
       const levelDisplay = this.shadowRoot.querySelector('.level');
       levelDisplay.textContent = loadTimeData.getString(
diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp
index dd2cf3e..6af90410d 100644
--- a/components/policy_strings.grdp
+++ b/components/policy_strings.grdp
@@ -563,6 +563,9 @@
   <message name="IDS_POLICY_SCOPE_USER" desc="Text displayed in the Applies to column when a policy applies to the current user only.">
     Current user
   </message>
+  <message name="IDS_POLICY_SCOPE_ALL_USERS" desc="Text displayed in the Applies to column when a policy applies to all the users in the current session.">
+    All users
+  </message>
   <if expr="not is_android and not is_chromeos">
     <message name="IDS_POLICY_SCOPE_DEVICE" desc="Text displayed in the Applies to column when a policy applies to everyone on the machine.">
       Machine
diff --git a/components/policy_strings_grdp/IDS_POLICY_SCOPE_ALL_USERS.png.sha1 b/components/policy_strings_grdp/IDS_POLICY_SCOPE_ALL_USERS.png.sha1
new file mode 100644
index 0000000..f2809de
--- /dev/null
+++ b/components/policy_strings_grdp/IDS_POLICY_SCOPE_ALL_USERS.png.sha1
@@ -0,0 +1 @@
+128bca1f1c6de97710f7da55b323bd38a299ef92
\ No newline at end of file
diff --git a/components/privacy_sandbox/mock_privacy_sandbox_settings.h b/components/privacy_sandbox/mock_privacy_sandbox_settings.h
index fe22f2de..579ba5b2 100644
--- a/components/privacy_sandbox/mock_privacy_sandbox_settings.h
+++ b/components/privacy_sandbox/mock_privacy_sandbox_settings.h
@@ -74,7 +74,6 @@
   MOCK_METHOD(void, SetAllPrivacySandboxAllowedForTesting, (), (override));
   MOCK_METHOD(void, SetTopicsBlockedForTesting, (), (override));
   MOCK_METHOD(void, SetPrivacySandboxEnabled, (bool), (override));
-  MOCK_METHOD(bool, IsTrustTokensAllowed, (), (override));
   MOCK_METHOD(bool, IsPrivacySandboxRestricted, (), (override, const));
   MOCK_METHOD(void, OnCookiesCleared, (), (override));
   MOCK_METHOD(void, AddObserver, (Observer*), (override));
diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc
index 3bd7864..dbcf6162 100644
--- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
+++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
@@ -92,6 +92,9 @@
 extern const char kPrivacySandboxTopicsConsentTextAtLastUpdate[] =
     "privacy_sandbox.topics_consent.text_at_last_update";
 
+extern const char kPrivacySandboxAntiAbuseInitialized[] =
+    "privacy_sandbox.anti_abuse_initialized";
+
 }  // namespace prefs
 
 namespace privacy_sandbox {
@@ -153,6 +156,8 @@
       static_cast<int>(TopicsConsentUpdateSource::kDefaultValue));
   registry->RegisterStringPref(
       prefs::kPrivacySandboxTopicsConsentTextAtLastUpdate, "");
+  registry->RegisterBooleanPref(prefs::kPrivacySandboxAntiAbuseInitialized,
+                                false);
 }
 
 }  // namespace privacy_sandbox
diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.h b/components/privacy_sandbox/privacy_sandbox_prefs.h
index ce5a398..18073801 100644
--- a/components/privacy_sandbox/privacy_sandbox_prefs.h
+++ b/components/privacy_sandbox/privacy_sandbox_prefs.h
@@ -128,6 +128,10 @@
 // resulted in the current Topics consent state.
 extern const char kPrivacySandboxTopicsConsentTextAtLastUpdate[];
 
+// Boolean that indicates whether the user's anti-abuse preference has been
+// initialized.
+extern const char kPrivacySandboxAntiAbuseInitialized[];
+
 }  // namespace prefs
 
 namespace privacy_sandbox {
diff --git a/components/privacy_sandbox/privacy_sandbox_settings.h b/components/privacy_sandbox/privacy_sandbox_settings.h
index 87a51c1b..cb430be 100644
--- a/components/privacy_sandbox/privacy_sandbox_settings.h
+++ b/components/privacy_sandbox/privacy_sandbox_settings.h
@@ -29,14 +29,6 @@
    public:
     virtual void OnTopicsDataAccessibleSinceUpdated() {}
 
-    // Fired when Trust Token blocking has changed because of a change to the
-    // Privacy Sandbox preference. Does not account for changes to third-party
-    // cookie blocking, which may result in the Privacy Sandbox being disabled.
-    // Trust tokens thus additionally independently consult Cookie settings.
-    // TODO(crbug.com/1304132): Unify this so Trust Tokens only need to consult
-    // a single source of truth.
-    virtual void OnTrustTokenBlockingChanged(bool blocked) {}
-
     // Fired when the First-Party Sets changes to being `enabled` as a result of
     // the kPrivacySandboxFirstPartySets preference changing.
     virtual void OnFirstPartySetsEnabledChanged(bool enabled) {}
@@ -191,11 +183,6 @@
   // Privacy Sandbox prefs or per-API block-for-testing functions.
   virtual void SetPrivacySandboxEnabled(bool enabled) = 0;
 
-  // Returns whether Trust Tokens are "generally" available. A return value of
-  // false is authoritative, while a value of true must be followed by the
-  // appropriate context specific check.
-  virtual bool IsTrustTokensAllowed() = 0;
-
   // Returns whether the Privacy Sandbox is being restricted by the associated
   // delegate. Forwards directly to the corresponding delegate function.
   // Virtual to allow mocking in tests.
diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc
index aa7c7bc1..93603ff 100644
--- a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc
+++ b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc
@@ -88,11 +88,6 @@
 
   pref_change_registrar_.Init(pref_service_);
   pref_change_registrar_.Add(
-      prefs::kPrivacySandboxApisEnabledV2,
-      base::BindRepeating(
-          &PrivacySandboxSettingsImpl::OnPrivacySandboxPrefChanged,
-          base::Unretained(this)));
-  pref_change_registrar_.Add(
       prefs::kPrivacySandboxFirstPartySetsEnabled,
       base::BindRepeating(
           &PrivacySandboxSettingsImpl::OnFirstPartySetsEnabledPrefChanged,
@@ -511,10 +506,6 @@
   pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabledV2, enabled);
 }
 
-bool PrivacySandboxSettingsImpl::IsTrustTokensAllowed() {
-  return IsPrivacySandboxEnabled();
-}
-
 bool PrivacySandboxSettingsImpl::IsPrivacySandboxRestricted() const {
   return delegate_->IsPrivacySandboxRestricted();
 }
@@ -523,12 +514,6 @@
   SetTopicsDataAccessibleFromNow();
 }
 
-void PrivacySandboxSettingsImpl::OnPrivacySandboxPrefChanged() {
-  for (auto& observer : observers_) {
-    observer.OnTrustTokenBlockingChanged(!IsTrustTokensAllowed());
-  }
-}
-
 void PrivacySandboxSettingsImpl::OnFirstPartySetsEnabledPrefChanged() {
   if (!base::FeatureList::IsEnabled(features::kFirstPartySets)) {
     return;
diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.h b/components/privacy_sandbox/privacy_sandbox_settings_impl.h
index 18e9d4b..6384202 100644
--- a/components/privacy_sandbox/privacy_sandbox_settings_impl.h
+++ b/components/privacy_sandbox/privacy_sandbox_settings_impl.h
@@ -72,7 +72,6 @@
   void SetAllPrivacySandboxAllowedForTesting() override;
   void SetTopicsBlockedForTesting() override;
   void SetPrivacySandboxEnabled(bool enabled) override;
-  bool IsTrustTokensAllowed() override;
   bool IsPrivacySandboxRestricted() const override;
   void OnCookiesCleared() override;
   void AddObserver(Observer* observer) override;
@@ -81,9 +80,6 @@
 
  private:
   friend class PrivacySandboxSettingsM1Test;
-  // Called when the main privacy sandbox preference is changed.
-  void OnPrivacySandboxPrefChanged();
-
   // Called when the First-Party Sets enabled preference is changed.
   void OnFirstPartySetsEnabledPrefChanged();
 
diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl_unittest.cc b/components/privacy_sandbox/privacy_sandbox_settings_impl_unittest.cc
index 9cd6aca..3898aac2f 100644
--- a/components/privacy_sandbox/privacy_sandbox_settings_impl_unittest.cc
+++ b/components/privacy_sandbox/privacy_sandbox_settings_impl_unittest.cc
@@ -822,23 +822,6 @@
       url::Origin::Create(GURL("https://third.com"))));
 }
 
-TEST_F(PrivacySandboxSettingsTest, TrustTokensAllowed) {
-  // IsTrustTokensAllowed() should follow the top level privacy sandbox setting
-  base::test::ScopedFeatureList feature_list_;
-  privacy_sandbox_test_util::MockPrivacySandboxObserver observer;
-  privacy_sandbox_settings()->AddObserver(&observer);
-  EXPECT_CALL(observer, OnTrustTokenBlockingChanged(/*blocked=*/true));
-
-  privacy_sandbox_settings()->SetPrivacySandboxEnabled(false);
-  EXPECT_FALSE(privacy_sandbox_settings()->IsTrustTokensAllowed());
-  testing::Mock::VerifyAndClearExpectations(&observer);
-
-  EXPECT_CALL(observer, OnTrustTokenBlockingChanged(/*blocked=*/false));
-  privacy_sandbox_settings()->SetPrivacySandboxEnabled(true);
-  EXPECT_TRUE(privacy_sandbox_settings()->IsTrustTokensAllowed());
-  testing::Mock::VerifyAndClearExpectations(&observer);
-}
-
 TEST_F(PrivacySandboxSettingsTest, OnFirstPartySetsEnabledChanged) {
   // OnFirstPartySetsEnabledChanged() should only call observers when the
   // base::Feature is enabled and the pref changes.
diff --git a/components/privacy_sandbox/privacy_sandbox_test_util.h b/components/privacy_sandbox/privacy_sandbox_test_util.h
index 369b1be..caed6f83 100644
--- a/components/privacy_sandbox/privacy_sandbox_test_util.h
+++ b/components/privacy_sandbox/privacy_sandbox_test_util.h
@@ -47,7 +47,6 @@
   MockPrivacySandboxObserver();
   ~MockPrivacySandboxObserver();
   MOCK_METHOD(void, OnTopicsDataAccessibleSinceUpdated, (), (override));
-  MOCK_METHOD1(OnTrustTokenBlockingChanged, void(bool));
   MOCK_METHOD1(OnFirstPartySetsEnabledChanged, void(bool));
 };
 
diff --git a/components/signin/public/base/signin_metrics.cc b/components/signin/public/base/signin_metrics.cc
index 8e68cc2..b15beadc 100644
--- a/components/signin/public/base/signin_metrics.cc
+++ b/components/signin/public/base/signin_metrics.cc
@@ -127,6 +127,16 @@
   base::UmaHistogramEnumeration("Signin.SigninReason", reason);
 }
 
+void LogSignInOffered(AccessPoint access_point) {
+  base::UmaHistogramEnumeration("Signin.SignIn.Offered", access_point,
+                                AccessPoint::ACCESS_POINT_MAX);
+}
+
+void LogSignInStarted(AccessPoint access_point) {
+  base::UmaHistogramEnumeration("Signin.SignIn.Started", access_point,
+                                AccessPoint::ACCESS_POINT_MAX);
+}
+
 void LogSyncOptInStarted(AccessPoint access_point) {
   base::UmaHistogramEnumeration("Signin.SyncOptIn.Started", access_point,
                                 AccessPoint::ACCESS_POINT_MAX);
diff --git a/components/signin/public/base/signin_metrics.h b/components/signin/public/base/signin_metrics.h
index de0e3e29..1257786 100644
--- a/components/signin/public/base/signin_metrics.h
+++ b/components/signin/public/base/signin_metrics.h
@@ -497,6 +497,16 @@
 // Tracks the reason of sign in.
 void LogSigninReason(Reason reason);
 
+// Logs sign in offered events and their associated access points.
+// Access points (or features) are responsible for recording this where relevant
+// for them.
+void LogSignInOffered(AccessPoint access_point);
+
+// Logs sign in start events and their associated access points. The
+// completion events are automatically logged when the primary account state
+// changes, see `signin::PrimaryAccountMutator`.
+void LogSignInStarted(AccessPoint access_point);
+
 // Logs sync opt-in start events and their associated access points. The
 // completion events are automatically logged when the primary account state
 // changes, see `signin::PrimaryAccountMutator`.
diff --git a/components/site_settings_strings.grdp b/components/site_settings_strings.grdp
index d2dd165..3b150106 100644
--- a/components/site_settings_strings.grdp
+++ b/components/site_settings_strings.grdp
@@ -7,6 +7,9 @@
   <message name="IDS_SITE_SETTINGS_TYPE_ADS_MID_SENTENCE" desc="This string is the name of the intrusive ads setting (visit chrome://settings/content and click 'Additional content settings') when used mid-sentence.">
     intrusive ads
   </message>
+  <message name="IDS_SITE_SETTINGS_TYPE_ANTI_ABUSE" desc="The label used for the anti-abuse site settings controls.">
+    Spam &amp; fraud reduction
+  </message>
   <message name="IDS_SITE_SETTINGS_TYPE_AR" desc="The label used for the AR site settings controls.">
     Augmented reality
   </message>
diff --git a/components/site_settings_strings_grdp/IDS_SITE_SETTINGS_TYPE_ANTI_ABUSE.png.sha1 b/components/site_settings_strings_grdp/IDS_SITE_SETTINGS_TYPE_ANTI_ABUSE.png.sha1
new file mode 100644
index 0000000..71271ecd
--- /dev/null
+++ b/components/site_settings_strings_grdp/IDS_SITE_SETTINGS_TYPE_ANTI_ABUSE.png.sha1
@@ -0,0 +1 @@
+deadecc98d9b25be18cf53516610c498b54ce05e
\ No newline at end of file
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index cb030496..c1359fc 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12x16 dm.</translation>
 <translation id="1181037720776840403">Verwyder</translation>
 <translation id="1186201132766001848">Gaan wagwoorde na</translation>
+<translation id="1195073053842921378">Hierdie adres sal van hierdie toestel af uitgevee word</translation>
 <translation id="1195558154361252544">Kennisgewings word outomaties geblokkeer vir alle werwe behalwe dié wat jy toelaat</translation>
 <translation id="1197088940767939838">Oranje</translation>
 <translation id="1201402288615127009">Volgende</translation>
@@ -2018,7 +2019,6 @@
 <translation id="5992691462791905444">Ingenieur-Z-vou</translation>
 <translation id="5992805036496113940">Sien inligting wat gebruik word om vir jou advertensies te wys</translation>
 <translation id="5995727681868049093">Bestuur jou inligting, privaatheid en sekuriteit in jou Google-rekening</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> kan nie leeg wees nie</translation>
 <translation id="5997247540087773573">Die wagwoord wat jy gebruik het, is in 'n dataskending gekry. Google Wagwoordbestuurder beveel aan dat jy dit nou verander en jou gestoorde wagwoorde nagaan om jou rekeninge te beveilig.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultate vir "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">Die inligting wat outomaties op die vorm ingevul is, is uitgevee</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index c339cbb0..81a8210 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -2017,7 +2017,6 @@
 <translation id="5992691462791905444">Z-እጥፋትን በመቀየስ ላይ</translation>
 <translation id="5992805036496113940">ለእርስዎ ማስታወቂያዎችን ለማሳየት ጥቅም ላይ የዋለ መረጃን ይመልከቱ</translation>
 <translation id="5995727681868049093">በGoogle መለያዎ ውስጥ የእርስዎን መረጃ፣ ግላዊነት እና ደህንነት ያስተዳድሩ</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ባዶ መሆን አይችልም</translation>
 <translation id="5997247540087773573">አሁን የተጠቀሙበት የይለፍ ቃል በውሂብ ጥሰት ውስጥ ተገኝቷል። የእርስዎን መለያዎች ደህንነት ለመጠበቅ Google የይለፍ ቃል አስተዳዳሪ አሁኑኑ እንዲቀይሩት እና የተቀመጡ የይለፍ ቃላትዎን እንዲፈትሹ ይመክራል።</translation>
 <translation id="6000758707621254961">ለ«<ph name="SEARCH_TEXT" />» <ph name="RESULT_COUNT" /> ውጤቶችን አሳይ</translation>
 <translation id="6005765687956866568">ራስ-ሙላ መረጃው ከቅጹ ላይ ጸድቷል</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 0db0c5e..eb083096 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -2022,7 +2022,6 @@
 <translation id="5992691462791905444">‏تصميم الطي على شكل حرف Z</translation>
 <translation id="5992805036496113940">الاطّلاع على المعلومات التي يتم استخدامها لعرض الإعلانات لك</translation>
 <translation id="5995727681868049093">‏إدارة المعلومات والخصوصية والأمان في حسابك على Google</translation>
-<translation id="5996887213716993070">يجب إدخال قيمة في الحقل "<ph name="FIELD" />".</translation>
 <translation id="5997247540087773573">‏استُخدمت كلمة المرور التي أدخلتها للتو في عملية اختراق للبيانات. لتأمين حساباتك، ينصح "مدير كلمات المرور" في Google بتغيير كلمة المرور الآن ثم التحقّق من كلمات المرور المحفوظة.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> من نتائج البحث عن "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">تم محو المعلومات التي تم ملؤها تلقائيًا من النموذج.</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index 82c4e6fe..caa21133 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">১২ x ১৬ ইঞ্চি</translation>
 <translation id="1181037720776840403">আঁতৰাওক</translation>
 <translation id="1186201132766001848">পাছৱৰ্ডবোৰ পৰীক্ষা কৰক</translation>
+<translation id="1195073053842921378">এই ঠিকনাটো এই ডিভাইচটোৰ পৰা মচি পেলোৱা হ’ব</translation>
 <translation id="1195558154361252544">আপুনি অনুমতি দিয়াটোৰ বাদে আন সকলো ছাইটৰ বাবে জাননীসমূহ স্বয়ংক্ৰিয়ভাৱে অৱৰোধ কৰা হয়</translation>
 <translation id="1197088940767939838">কমলা</translation>
 <translation id="1201402288615127009">পৰৱৰ্তী</translation>
@@ -2014,7 +2015,6 @@
 <translation id="5992691462791905444">অভিযান্ত্রিক Z-ফ'ল্ড</translation>
 <translation id="5992805036496113940">আপোনাক বিজ্ঞাপন দেখুৱাবলৈ ব্যৱহাৰ কৰা তথ্য চাওক</translation>
 <translation id="5995727681868049093">আপোনাৰ Google একাউণ্টত আপোনাৰ তথ্য, গোপনীয়তা আৰু সুৰক্ষা পৰিচালনা কৰক</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> খালী থাকিব নোৱাৰে</translation>
 <translation id="5997247540087773573">আপুনি এইমাত্ৰ ব্যৱহাৰ কৰা পাছৱৰ্ডটো এক ডেটা উলংঘনত বিচাৰি পোৱা গৈছে। আপোনাৰ একাউণ্টসমূহ সুৰক্ষিত কৰিবলৈ Google পাছৱৰ্ড পৰিচালকে এতিয়াই এইটো সলনি কৰি আপোনাৰ ছেভ হৈ থকা পাছৱৰ্ডসমূহ পৰীক্ষা কৰিবলৈ চুপাৰিছ কৰে।</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />'ৰ বাবে <ph name="RESULT_COUNT" />টা ফলাফল</translation>
 <translation id="6005765687956866568">ফ’ৰ্মখনৰ পৰা স্বয়ংক্ৰিভাৱে পূৰ হোৱা তথ্যখিনি মচা হৈছে</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index 978a369..48f05e8 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 düym</translation>
 <translation id="1181037720776840403">Silin</translation>
 <translation id="1186201132766001848">Parolları yoxlayın</translation>
+<translation id="1195073053842921378">Bu ünvan bu cihazdan silinəcək</translation>
 <translation id="1195558154361252544">İcazə verdiklərinizdən başqa bütün saytlarda bildirişlər blok edilib</translation>
 <translation id="1197088940767939838">Narıncı</translation>
 <translation id="1201402288615127009">Növbəti</translation>
@@ -2014,7 +2015,6 @@
 <translation id="5992691462791905444">Mühəndislikdə Z-qatlama</translation>
 <translation id="5992805036496113940">Sizə reklam göstərmək üçün istifadə olunan məlumata baxın</translation>
 <translation id="5995727681868049093">Google Hesabınızda məlumat, məxfilik və təhlükəsizliyinizi idarə edin</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> boş saxlana bilməz</translation>
 <translation id="5997247540087773573">İndicə istifadə etdiyiniz parol bir data pozuntusunda tapılıb. Hesablarınızı qorumaq üçün Google Parol Meneceri onu indi dəyişməyi və sonra yadda saxladığınız parolları yoxlamağı tövsiyə edir.</translation>
 <translation id="6000758707621254961">"<ph name="SEARCH_TEXT" />" üçün <ph name="RESULT_COUNT" /> nəticə</translation>
 <translation id="6005765687956866568">Avtomatik doldurulmuş məlumat formadan silinib</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index 6fd5888..0f8c0437 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -2017,7 +2017,6 @@
 <translation id="5992691462791905444">Z-падобны згіб (тэхнічная дакументацыя)</translation>
 <translation id="5992805036496113940">Паглядзець, якая інфармацыя выкарыстоўваецца для паказу рэкламы</translation>
 <translation id="5995727681868049093">Кіраваць параметрамі даных, прыватнасці і бяспекі ва Уліковым запісе Google</translation>
-<translation id="5996887213716993070">Поле "<ph name="FIELD" />" не можа быць пустым.</translation>
 <translation id="5997247540087773573">Выкарыстаны вамі пароль трапіў у спіс узламаных даных. Каб абараніць свае ўліковыя запісы, зараз жа змяніце яго і праверце захаваныя паролі ў Менеджары пароляў Google.</translation>
 <translation id="6000758707621254961">Вынікаў па запыце "<ph name="SEARCH_TEXT" />": <ph name="RESULT_COUNT" /></translation>
 <translation id="6005765687956866568">Унесеная з дапамогай функцыі аўтазапаўнення інфармацыя выдалена з формы</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index 9c14e7d..d5e091e 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Z-образно сгъване на A3 до размер A4</translation>
 <translation id="5992805036496113940">Вижте информацията, използвана при показването на реклами</translation>
 <translation id="5995727681868049093">Управление на информацията ви и настройките за поверителност и сигурност в профила ви в Google</translation>
-<translation id="5996887213716993070">Полето „<ph name="FIELD" />“ трябва да се попълни</translation>
 <translation id="5997247540087773573">Паролата, която току-що използвахте, е разкрита при нарушение на сигурността на данните. За да защитите профилите си, Google Мениджър на пароли ви препоръчва да я промените сега и да проверите запазените си пароли.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> резултата за „<ph name="SEARCH_TEXT" />“</translation>
 <translation id="6005765687956866568">Автоматично попълнената информация е изчистена от формуляра</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index 07c835b..601cd28 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">ইঞ্জিনিয়ারিং জেড-ফোল্ড</translation>
 <translation id="5992805036496113940">আপনাকে বিজ্ঞাপন দেখানোর জন্য ব্যবহৃত তথ্য দেখুন</translation>
 <translation id="5995727681868049093">আপনার Google অ্যাকাউন্টে নিজের সম্পর্কে তথ্য, গোপনীয়তা এবং সুরক্ষা ম্যানেজ করুন</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> খালি রাখা যাবে না</translation>
 <translation id="5997247540087773573">আপনি এইমাত্র যে পাসওয়ার্ড ব্যবহার করলেন, সেটি হ্যাক হওয়া কোনও ডেটাবেসে পাওয়া গেছে। আপনার অ্যাকাউন্ট সুরক্ষিত করতে, Google পাসওয়ার্ড ম্যানেজার এখনই এটি পরিবর্তন করতে ও সেভ করা পাসওয়ার্ড চেক করার সাজেশন দিচ্ছে।</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />'-এর জন্য <ph name="RESULT_COUNT" />টি ফলাফল</translation>
 <translation id="6005765687956866568">ফর্ম থেকে আপনা-আপনি পূরণ হওয়া তথ্য মুছে ফেলা হয়েছে</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index a797d52..339fe609 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 in</translation>
 <translation id="1181037720776840403">Ukloni</translation>
 <translation id="1186201132766001848">Provjeri lozinke</translation>
+<translation id="1195073053842921378">Ta će se adresa izbrisati s ovog uređaja</translation>
 <translation id="1195558154361252544">Obavještenja se automatski blokiraju za sve web lokacije osim onih koje omogućite</translation>
 <translation id="1197088940767939838">Narandžasta</translation>
 <translation id="1201402288615127009">Naprijed</translation>
@@ -2018,7 +2019,6 @@
 <translation id="5992691462791905444">Inženjersko Z-presavijanje</translation>
 <translation id="5992805036496113940">Pogledajte informacije korištene za prikazivanje oglasa</translation>
 <translation id="5995727681868049093">Upravljajte podacima, privatnošću i sigurnošću na Google računu</translation>
-<translation id="5996887213716993070">Polje <ph name="FIELD" /> ne može biti prazno</translation>
 <translation id="5997247540087773573">Lozinka koju ste upravo koristili pronađena je prilikom narušavanja podataka. Da osigura vaše račune, Googleov Upravitelj lozinki preporučuje da odmah promijenite lozinku i provjerite sačuvane lozinke.</translation>
 <translation id="6000758707621254961">Broj rezultata <ph name="RESULT_COUNT" /> za "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">Automatski popunjene informacije su obrisane iz obrasca</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index eada968..e23874d 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Plegat en Z per a enginyeria</translation>
 <translation id="5992805036496113940">Consulta la informació utilitzada per mostrar-te anuncis</translation>
 <translation id="5995727681868049093">Gestiona la teva informació, privadesa i seguretat al Compte de Google</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> no es pot deixar en blanc</translation>
 <translation id="5997247540087773573">La contrasenya que acabes d'utilitzar s'ha trobat en una violació de les dades. Per protegir els teus comptes, el gestor de contrasenyes de Google recomana que la canviïs ara i que comprovis les contrasenyes desades.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultats per a "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">La informació emplenada automàticament s'ha esborrat del formulari</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index 414affe..e75d7c8c 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -2015,7 +2015,6 @@
 <translation id="5992691462791905444">Technické přeložení do Z</translation>
 <translation id="5992805036496113940">Zobrazit informace používané k zobrazování reklam</translation>
 <translation id="5995727681868049093">Správa údajů, ochrany soukromí a zabezpečení v účtu Google</translation>
-<translation id="5996887213716993070">Pole <ph name="FIELD" /> nesmí být prázdné</translation>
 <translation id="5997247540087773573">Právě použité heslo bylo nalezeno na seznamu hesel uniklých při incidentu porušení zabezpečení údajů. Kvůli zabezpečení vašich účtů Správce hesel Google doporučuje ihned toto heslo změnit a zkontrolovat uložená hesla.</translation>
 <translation id="6000758707621254961">Výsledky pro dotaz <ph name="SEARCH_TEXT" /> (<ph name="RESULT_COUNT" />)</translation>
 <translation id="6005765687956866568">Automaticky vyplněné informace byly z formuláře vymazány</translation>
diff --git a/components/strings/components_strings_cy.xtb b/components/strings/components_strings_cy.xtb
index d5aead1..8fc2c43 100644
--- a/components/strings/components_strings_cy.xtb
+++ b/components/strings/components_strings_cy.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Plyg-Z Peirianneg</translation>
 <translation id="5992805036496113940">Gweld yr wybodaeth a ddefnyddir i ddangos hysbysebion i chi</translation>
 <translation id="5995727681868049093">Rheoli eich gwybodaeth, preifatrwydd, a diogelwch yn eich Cyfrif Google</translation>
-<translation id="5996887213716993070">Ni all <ph name="FIELD" /> fod yn wag</translation>
 <translation id="5997247540087773573">Canfuwyd y cyfrinair rydych newydd ei ddefnyddio mewn achos o dor data. Er mwyn diogelu'ch cyfrifon, mae Rheolwr Cyfrineiriau Google yn argymell eu newid nawr a gwirio'ch cyfrineiriau sydd wedi'u cadw.</translation>
 <translation id="6000758707621254961">Mae <ph name="RESULT_COUNT" /> o ganlyniadau ar gyfer '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">Cliriwyd y wybodaeth a gafodd ei hawtolenwi o'r ffurflen</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 660eff0..11b44f0 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Z-fals med kant foroven</translation>
 <translation id="5992805036496113940">Se de oplysninger, der bruges til at vise dig annoncer</translation>
 <translation id="5995727681868049093">Administrer din konto, dit privatliv og beskyttelsen på din Google-konto</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> skal udfyldes</translation>
 <translation id="5997247540087773573">Den adgangskode, du lige har brugt, er blevet lækket i forbindelse med et brud på datasikkerheden. For at beskytte dine konti anbefaler Google Adgangskodeadministrator, at du ændrer det nu og tjekker dine gemte adgangskoder.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultater for "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">De automatisk udfyldte oplysninger blev fjernet fra formularen</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 8593729..e28dd7c7 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -2016,7 +2016,6 @@
 <translation id="5992691462791905444">Technische Z-Faltung</translation>
 <translation id="5992805036496113940">Informationen ansehen, die zum Anzeigen von Werbung verwendet werden</translation>
 <translation id="5995727681868049093">Daten, Datenschutz- und Sicherheits­einstellungen in deinem Google-Konto verwalten</translation>
-<translation id="5996887213716993070">„<ph name="FIELD" />“ ist ein Pflichtfeld</translation>
 <translation id="5997247540087773573">Das eingegebene Passwort wurde in einer Datenpanne gefunden. Zum besseren Schutz deiner Konten empfiehlt der Google Passwortmanager, das Passwort jetzt zu ändern und deine gespeicherten Passwörter zu prüfen.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> Ergebnisse für "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">Die automatisch ausgefüllten Informationen wurden aus dem Formular entfernt</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index e885477..ec418063 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -2022,7 +2022,6 @@
 <translation id="5992691462791905444">Δίπλωση Ζ τεχνικών εγγράφων</translation>
 <translation id="5992805036496113940">Δείτε πληροφορίες που χρησιμοποιούνται για την εμφάνιση των διαφημίσεων που βλέπετε</translation>
 <translation id="5995727681868049093">Διαχειριστείτε τις πληροφορίες, το απόρρητο και την ασφάλεια στον Λογαριασμό σας Google</translation>
-<translation id="5996887213716993070">Το πεδίο <ph name="FIELD" /> δεν μπορεί να είναι κενό</translation>
 <translation id="5997247540087773573">Ο κωδικός πρόσβασης που μόλις χρησιμοποιήσατε εντοπίστηκε σε μια παραβίαση δεδομένων. Για την ασφάλεια των λογαριασμών σας, ο Διαχειριστής κωδικών πρόσβασης Google συνιστά να αλλάξετε άμεσα τον κωδικό πρόσβασης και να ελέγξετε τους αποθηκευμένους κωδικούς πρόσβασης.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> αποτελέσματα για την αναζήτηση "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">Οι πληροφορίες αυτόματης συμπλήρωσης διαγράφηκαν από τη φόρμα</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index cfe0ce18..6a0aaa96 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">Engineering Z-fold</translation>
 <translation id="5992805036496113940">See info used to show you ads</translation>
 <translation id="5995727681868049093">Manage your info, privacy and security in your Google Account</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> cannot be empty</translation>
 <translation id="5997247540087773573">The password that you just used was found in a data breach. To secure your accounts, Google Password Manager recommends changing it now and checking your saved passwords.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> results for '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">The auto-filled info was cleared from the form</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index c6aa94a..45cec48 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">Plegado en Z para ingeniería</translation>
 <translation id="5992805036496113940">Ver la información que se usa para mostrarte anuncios</translation>
 <translation id="5995727681868049093">Administrar la información, privacidad y seguridad de tu Cuenta de Google</translation>
-<translation id="5996887213716993070">El campo <ph name="FIELD" /> no puede estar vacío</translation>
 <translation id="5997247540087773573">La contraseña que acabas de usar se encontró en una violación de la seguridad de los datos. A fin de proteger tus cuentas, el Administrador de contraseñas de Google te recomienda cambiarla ahora y revisar las contraseñas guardadas.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultados para "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">Se borró la información autocompletada del formulario</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index 85dbeed0..ee000eb 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Plegado en Z asimétrico</translation>
 <translation id="5992805036496113940">Ver información utilizada para mostrarte anuncios</translation>
 <translation id="5995727681868049093">Gestiona tu información, privacidad y seguridad en tu cuenta de Google</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> no puede estar vacío</translation>
 <translation id="5997247540087773573">La contraseña que acabas de usar se ha encontrado en una brecha de seguridad de datos. Para proteger tus cuentas, el Gestor de contraseñas de Google te recomienda que cambies esa contraseña ahora y que compruebes las contraseñas que tengas guardadas.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultados para "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">La información autocompletada se ha borrado del formulario</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index cfaba37..f7bee8ee 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Z-kujuliselt volditud</translation>
 <translation id="5992805036496113940">Vaadake, millist teavet kasutatakse teile reklaamide esitamiseks</translation>
 <translation id="5995727681868049093">Google'i kontol teabe, privaatsuse ja turvalisuse haldamine</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ei saa olla tühi</translation>
 <translation id="5997247540087773573">Äsja kasutatud parool leiti andmetega seotud rikkumisest. Teie kontode turvalisuse kaitsmiseks soovitab Google'i paroolihaldur teil seda parooli kohe muuta ja kontrollida oma salvestatud paroole.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> tulemust otsingule „<ph name="SEARCH_TEXT" />”</translation>
 <translation id="6005765687956866568">Automaatselt sisestatud teave kustutati vormist</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb
index 17b09413..d256c8d 100644
--- a/components/strings/components_strings_eu.xtb
+++ b/components/strings/components_strings_eu.xtb
@@ -2014,7 +2014,6 @@
 <translation id="5992691462791905444">Z-erako tolestura laburra</translation>
 <translation id="5992805036496113940">Ikusi zer informazio erabiltzen den zuri iragarkiak erakusteko</translation>
 <translation id="5995727681868049093">Kudeatu Google-ko kontuko informazioa, pribatutasuna eta segurtasuna</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ezin da hutsik egon</translation>
 <translation id="5997247540087773573">Erabili berri duzun pasahitza datuen isilpekotasunaren urratze batean aurkitu da. Kontuak babesteko, Google-ren Pasahitz-kudeatzailea zerbitzuak pasahitza orain aldatzea gomendatzen du, eta gordeta dauzkazun pasahitzak seguruak direla egiaztatzea.</translation>
 <translation id="6000758707621254961">"<ph name="SEARCH_TEXT" />" bilaketak <ph name="RESULT_COUNT" /> emaitza ditu</translation>
 <translation id="6005765687956866568">Garbitu da inprimakian automatikoki betetako informazioa</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index fb603c9..32d71337 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">‏تاخوردگی Z شکل مهندسی</translation>
 <translation id="5992805036496113940">دیدن اطلاعاتی که برای نمایش آگهی به شما استفاده می‌شود</translation>
 <translation id="5995727681868049093">‏مدیریت اطلاعات، حریم خصوصی، و امنیت در «حساب Google»</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> نباید خالی باشد</translation>
 <translation id="5997247540087773573">‏گذرواژه‌ای که اکنون استفاده کردید در سرقت اطلاعات شبکه پیدا شده است. برای حفظ امنیت حساب‌هایتان، «مدیر گذرواژه Google» توصیه می‌کند گذرواژه‌تان را همین‌حالا تغییر دهید و گذرواژه‌های ذخیره‌شده‌تان را بررسی کنید.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> نتیجه برای «<ph name="SEARCH_TEXT" />»</translation>
 <translation id="6005765687956866568">اطلاعاتی که به‌طور خودکار تکمیل شده بود از فرم پاک شده است</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index 30da9584..1eba9c42 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">Kolmoistaite (engineering)</translation>
 <translation id="5992805036496113940">Näet tietoja, joiden perusteella sinulle näytetään mainoksia</translation>
 <translation id="5995727681868049093">Ylläpidä tietojasi, yksityisyyttäsi ja tietoturvaasi Google-tilillä</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> voi jäädä tyhjäksi</translation>
 <translation id="5997247540087773573">Juuri käyttämäsi salasana löytyi tietosuojaloukkauksesta. Tiliesi suojaamiseksi Googlen Salasanojen ylläpito suosittelee, että vaihdat salasanan heti ja tarkistat tallennetut salasanasi.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> tulosta: <ph name="SEARCH_TEXT" /></translation>
 <translation id="6005765687956866568">Automaattisesti täytetyt tiedot on poistettu lomakkeesta</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 7974683..4222205 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Engineering Z-fold</translation>
 <translation id="5992805036496113940">Tingnan ang impormasyong ginamit para magpakita sa iyo ng mga ad</translation>
 <translation id="5995727681868049093">Pamahalaan ang iyong impormasyon, privacy, at seguridad sa iyong Google Account</translation>
-<translation id="5996887213716993070">Hindi puwedeng walang laman ang <ph name="FIELD" /></translation>
 <translation id="5997247540087773573">Nakita sa isang data breach ang password na kakagamit mo lang. Para ma-secure ang iyong mga account, inirerekomenda ng Google Password Manager na palitan na ito ngayon at tingnan ang mga naka-save mong password.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> (na) resulta para sa '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">Na-clear sa form ang naka-autofill na impormasyon</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index 276e7b1..2720ff3 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 po x 16 po</translation>
 <translation id="1181037720776840403">Supprimer</translation>
 <translation id="1186201132766001848">Vérifier les mots de passe</translation>
+<translation id="1195073053842921378">Cette adresse sera supprimée de cet appareil</translation>
 <translation id="1195558154361252544">Les notifications sont automatiquement bloquées pour tous les sites, sauf ceux que vous autorisez</translation>
 <translation id="1197088940767939838">Orange</translation>
 <translation id="1201402288615127009">Suivant</translation>
@@ -2018,7 +2019,6 @@
 <translation id="5992691462791905444">Technique de pli en Z</translation>
 <translation id="5992805036496113940">Afficher les renseignements utilisés pour la présentation des publicités</translation>
 <translation id="5995727681868049093">Gérer vos renseignements, la confidentialité et la sécurité de votre compte Google</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ne peut être vide</translation>
 <translation id="5997247540087773573">Le mot de passe que vous venez d'utiliser a été trouvé dans un cas de violation de données. Pour sécuriser vos comptes, le gestionnaire de mots de passe de Google vous recommande de le changer maintenant et de vérifier vos mots de passe enregistrés.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> résultats trouvés pour « <ph name="SEARCH_TEXT" /> »</translation>
 <translation id="6005765687956866568">Les renseignements remplis automatiquement ont été effacés du formulaire</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index c42e117..e33ab06 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Technique de pli en Z</translation>
 <translation id="5992805036496113940">Voir les infos utilisées pour vous présenter des annonces</translation>
 <translation id="5995727681868049093">Gérez vos infos, la confidentialité de vos données et votre sécurité dans votre compte Google</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> obligatoire</translation>
 <translation id="5997247540087773573">Le mot de passe que vous venez d'utiliser a été détecté lors d'une violation de données. Pour sécuriser vos comptes, le Gestionnaire de mots de passe de Google vous recommande de le modifier immédiatement et de vérifier vos mots de passe enregistrés.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> résultats pour "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">Les infos de saisie automatique ont été effacées du formulaire</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index 9c6ec028..136792d 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Dobrez en Z para enxeñaría</translation>
 <translation id="5992805036496113940">Ver que información se usa para mostrarche anuncios</translation>
 <translation id="5995727681868049093">Xestionar a información, a privacidade e a seguranza na túa Conta de Google</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> non pode quedar en branco.</translation>
 <translation id="5997247540087773573">O contrasinal que acabas de utilizar viuse implicado nunha violación da seguranza dos datos. Para protexer as túas contas, o xestor de contrasinais de Google recomenda que o cambies de inmediato e que comprobes os contrasinais gardados.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultados para "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">Borrouse do formulario a información completada automaticamente</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index bca17c5..3a5495a 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">એન્જિનિયરિંગ Z-ફોલ્ડ</translation>
 <translation id="5992805036496113940">તમને જાહેરાતો બતાવવા માટે, ઉપયોગમાં લીધેલી માહિતી જુઓ</translation>
 <translation id="5995727681868049093">તમારા Google એકાઉન્ટમાં તમારી માહિતી, પ્રાઇવસી અને સુરક્ષા મેનેજ કરો</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ખાલી રાખી શકાતું નથી</translation>
 <translation id="5997247540087773573">તમે હાલમાં જ ઉપયોગમાં લીધેલો પાસવર્ડ ડેટા ઉલ્લંઘનમાં જોવા મળ્યો છે. તમારા એકાઉન્ટ સુરક્ષિત રાખવા માટે, Google Password Manager હમણાં જ તમારો પાસવર્ડ બદલવાનો અને તમારા સાચવેલા પાસવર્ડને ચેક કરવાનો સુઝાવ આપે છે.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' માટે <ph name="RESULT_COUNT" /> પરિણામ</translation>
 <translation id="6005765687956866568">ફોર્મમાંથી ઑટોમૅટિક રીતે ભરેલી માહિતી સાફ કરવામાં આવી</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index 2b12188..3c1d63b 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 इंच</translation>
 <translation id="1181037720776840403">हटाएं</translation>
 <translation id="1186201132766001848">पासवर्ड जांचें</translation>
+<translation id="1195073053842921378">इस डिवाइस से यह पता मिटा दिया जाएगा</translation>
 <translation id="1195558154361252544">जिन साइट को आप फ़ॉलो करते हैं उन्हें छोड़कर सभी साइट के लिए सूचनाएं अपने आप बंद हो गई हैं</translation>
 <translation id="1197088940767939838">नारंगी</translation>
 <translation id="1201402288615127009">अगला</translation>
@@ -2018,7 +2019,6 @@
 <translation id="5992691462791905444">इंजीनियरिंग ज़ी-फ़ोल्ड</translation>
 <translation id="5992805036496113940">आपको विज्ञापन दिखाने के लिए इस्तेमाल की गई जानकारी देखें</translation>
 <translation id="5995727681868049093">Google खाते में अपनी जानकारी, निजता, और सुरक्षा को मैनेज करें</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> को खाली नहीं छोड़ा जा सकता</translation>
 <translation id="5997247540087773573">आपने अभी जो पासवर्ड इस्तेमाल किया है वह डेटा के गलत इस्तेमाल की वजह से लीक हो चुका है. Google Password Manager आपको यह सुझाव देता है कि आप तुरंत इस पासवर्ड को बदलें और सेव किए गए पासवर्ड की जांच करें. ऐसा करने से, आपके खाते सुरक्षित रहेंगे.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' के लिए <ph name="RESULT_COUNT" /> नतीजे मिले हैं</translation>
 <translation id="6005765687956866568">फ़ॉर्म में ऑटोमैटिक भरी गई जानकारी मिटा दी गई है</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index 1fd97454..1d797a4 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 in</translation>
 <translation id="1181037720776840403">Ukloni</translation>
 <translation id="1186201132766001848">Provjeri zaporke</translation>
+<translation id="1195073053842921378">Ta će se adresa izbrisati s ovog uređaja</translation>
 <translation id="1195558154361252544">Obavijesti su automatski blokirane za sve web-lokacije osim za one koje dopustite</translation>
 <translation id="1197088940767939838">Narančasta</translation>
 <translation id="1201402288615127009">Dalje</translation>
@@ -2017,7 +2018,6 @@
 <translation id="5992691462791905444">Presavijanje u obliku harmonike s dva nabora</translation>
 <translation id="5992805036496113940">Pregled podataka koji se upotrebljavaju za prikazivanje oglasa</translation>
 <translation id="5995727681868049093">Upravljajte podacima, privatnošću i sigurnošću na svojem Google računu</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ne može biti prazno</translation>
 <translation id="5997247540087773573">Zaporka koju ste upravo upotrijebili otkrivena je u povredi podataka. Radi zaštite vaših računa Google upravitelj zaporki preporučuje da je odmah promijenite i provjerite svoje spremljene zaporke.</translation>
 <translation id="6000758707621254961">Rezultata za upit "<ph name="SEARCH_TEXT" />" ima <ph name="RESULT_COUNT" /></translation>
 <translation id="6005765687956866568">Podaci automatskog popunjavanja izbrisani su s obrasca</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 83e07e98..12074b70 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 × 16 hüvelyk</translation>
 <translation id="1181037720776840403">Eltávolítás</translation>
 <translation id="1186201132766001848">Jelszavak ellenőrzése</translation>
+<translation id="1195073053842921378">Ez a cím törlődni fog erről az eszközről.</translation>
 <translation id="1195558154361252544">Az Ön által engedélyezett webhelyek kivételével a böngésző automatikusan letiltja az értesítéseket</translation>
 <translation id="1197088940767939838">Narancssárga</translation>
 <translation id="1201402288615127009">Tovább</translation>
@@ -2016,7 +2017,6 @@
 <translation id="5992691462791905444">Z-hajtás hellyel kötés, lyukasztás és kapcsok számára</translation>
 <translation id="5992805036496113940">Hirdetések megjelenítéséhez használt információk megtekintése</translation>
 <translation id="5995727681868049093">Kezelheti adatait, az adatvédelmet és a biztonságot a Google-fiókjában</translation>
-<translation id="5996887213716993070">A(z) <ph name="FIELD" /> mező nem maradhat üresen</translation>
 <translation id="5997247540087773573">Kiderült, hogy a most használt jelszava adatvédelmi incidensben volt érintett. Fiókjai biztonságának megőrzése érdekében a Google Jelszókezelő a jelszó haladéktalan módosítását, majd a mentett jelszavak ellenőrzését javasolja.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> találat a következőre: <ph name="SEARCH_TEXT" /></translation>
 <translation id="6005765687956866568">Az automatikusan kitöltött adatok törölve lettek az űrlapról</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index ee2e2e0..cd4d7a9 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">Զիգզագաձև ծալում</translation>
 <translation id="5992805036496113940">Տեղեկություններ, որոնց հիման վրա ձեզ գովազդներ են ցուցադրվում</translation>
 <translation id="5995727681868049093">Կառավարել տվյալները, գաղտնիությունն ու անվտանգությունը Google հաշվում</translation>
-<translation id="5996887213716993070">«<ph name="FIELD" />» դաշտը չի կարող դատարկ լինել</translation>
 <translation id="5997247540087773573">Գաղտնաբառը, որը հենց նոր օգտագործեցիք, կոտրվել է տվյալների արտահոսքի պատճառով։ Ձեր հաշիվները պաշտպանելու համար Google գաղտնաբառերի կառավարիչը խորհուրդ է տալիս անհապաղ փոխել այն և ստուգել պահված գաղտնաբառերը։</translation>
 <translation id="6000758707621254961">«<ph name="SEARCH_TEXT" />»-ի որոնման <ph name="RESULT_COUNT" /> արդյունք</translation>
 <translation id="6005765687956866568">Ինքնալրացված տեղեկությունները ջնջվել են ձևից</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index ace687356..ad80405 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -2017,7 +2017,6 @@
 <translation id="5992691462791905444">Lipatan format engineering Z</translation>
 <translation id="5992805036496113940">Lihat info yang digunakan untuk menampilkan iklan kepada Anda</translation>
 <translation id="5995727681868049093">Kelola info, privasi, dan keamanan di Akun Google Anda</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> tidak boleh kosong</translation>
 <translation id="5997247540087773573">Sandi yang baru saja Anda gunakan terekspos dalam pelanggaran data. Untuk mengamankan akun Anda, Pengelola Sandi Google merekomendasikan untuk mengubah sandi tersebut sekarang dan memeriksa sandi tersimpan Anda.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> hasil untuk '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">Info yang diisi otomatis telah dihapus dari formulir</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index 483ec5d..8d66ae66 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Z-brot</translation>
 <translation id="5992805036496113940">Sjá upplýsingar sem eru notaðar til að birta þér auglýsingar</translation>
 <translation id="5995727681868049093">Stjórnaðu upplýsingum, persónuvernd og öryggi á Google reikningnum þínum</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> má ekki vera autt</translation>
 <translation id="5997247540087773573">Aðgangsorðið sem þú varst að nota fannst í öryggisbroti. Aðgangsorðastjórnun Google mælir með að breyta aðgangsorðinu núna og athuga vistuð aðgangsorð til að tryggja öryggi reikninganna þinna.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> niðurstöður fyrir „<ph name="SEARCH_TEXT" />“</translation>
 <translation id="6005765687956866568">Upplýsingar á eyðublaðinu sem voru fylltar út sjálfkrafa voru hreinsaðar</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 713351c..696d495 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -2015,7 +2015,6 @@
 <translation id="5992691462791905444">Piegatura a Z</translation>
 <translation id="5992805036496113940">Visualizza le informazioni usate per mostrarti annunci</translation>
 <translation id="5995727681868049093">Gestisci le tue informazioni, la privacy e la sicurezza nel tuo Account Google</translation>
-<translation id="5996887213716993070">Il campo <ph name="FIELD" /> non può essere vuoto</translation>
 <translation id="5997247540087773573">La password appena usata è stata compromessa nell'ambito di una violazione dei dati. Per proteggere i tuoi account, Gestore delle password di Google consiglia di cambiarla subito e poi di controllare le password salvate.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> risultati per "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">Le informazioni compilate automaticamente sono state cancellate dal modulo</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 42246863..56f1ef59 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -2023,7 +2023,6 @@
 <translation id="5992691462791905444">‏קיפול מסוג Engineering Z</translation>
 <translation id="5992805036496113940">צפייה במידע שמשמש להצגת המודעות</translation>
 <translation id="5995727681868049093">‏ניהול של המידע, הפרטיות והאבטחה בחשבון Google</translation>
-<translation id="5996887213716993070">חובה למלא את <ph name="FIELD" />.</translation>
 <translation id="5997247540087773573">‏הסיסמה שבה השתמשת עכשיו אותרה בפרצה באבטחת מידע. כדי להגן על החשבונות שלך, לפי מנהל הסיסמאות של Google, מומלץ לשנות אותה עכשיו ולבדוק את הסיסמאות השמורות שלך.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> תוצאות בשביל '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">הפרטים שמולאו באופן אוטומטי נוקו מהטופס</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 72c9fdc..51cd81f 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">工学 Z 折り</translation>
 <translation id="5992805036496113940">広告の表示に使用される情報を表示します</translation>
 <translation id="5995727681868049093">Google アカウントで情報、プライバシー、セキュリティを管理します</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> は空欄にできません</translation>
 <translation id="5997247540087773573">たった今使用したパスワードがデータ侵害で検出されました。Google パスワード マネージャーでは、アカウントを保護するために今すぐパスワードを変更して、保存したパスワードを確認することをおすすめします。</translation>
 <translation id="6000758707621254961">「<ph name="SEARCH_TEXT" />」に対する <ph name="RESULT_COUNT" /> 件の検索結果</translation>
 <translation id="6005765687956866568">自動入力された情報をフォームから削除しました</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index 7adaf90a..63416e1 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">საინჟინრო დაკეცვა Z-ის ფორმით</translation>
 <translation id="5992805036496113940">თქვენთვის რეკლამის საჩვენებლად გამოყენებული ინფორმაციის ნახვა</translation>
 <translation id="5995727681868049093">თქვენს Google ანგარიშში თქვენი ინფორმაციის, კონფიდენციალურობისა და უსაფრთხოების მართვა</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ცარიელი არ უნდა იყოს</translation>
 <translation id="5997247540087773573">თქვენ მიერ ახლახან გამოყენებული პაროლი ნაპოვნია გაჟონილ მონაცემებში. თქვენი ანგარიშის დაცვის მიზნით, Google პაროლების მმართველი გირჩევთ, ახლავე შეცვალოთ ის და შეამოწმოთ თქვენი შენახული პაროლები.</translation>
 <translation id="6000758707621254961">მოთხოვნაზე „<ph name="SEARCH_TEXT" />“ მოიძებნა <ph name="RESULT_COUNT" /> შედეგი</translation>
 <translation id="6005765687956866568">ავტომატურად შევსებული ინფორმაცია გასუფთავდა ფორმაში</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
index a29075a..8f9447f2 100644
--- a/components/strings/components_strings_kk.xtb
+++ b/components/strings/components_strings_kk.xtb
@@ -2017,7 +2017,6 @@
 <translation id="5992691462791905444">Z тәрізді етіп жиі бүктеу</translation>
 <translation id="5992805036496113940">Сізге жарнама көрсету үшін пайдаланылған ақпаратты көру</translation>
 <translation id="5995727681868049093">Google аккаунтыңыздағы ақпаратты, құпиялықты және қауіпсіздікті басқару</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> бос болмауы керек.</translation>
 <translation id="5997247540087773573">Сіз жаңа ғана қолданған құпия сөз деректердің қолды болуы салдарынан жария етілді. Аккаунттарыңызды қорғау үшін Google Құпия сөз менеджері оны дереу өзгертуді және сақталған құпия сөздеріңізді тексеруді ұсынады.</translation>
 <translation id="6000758707621254961">"<ph name="SEARCH_TEXT" />" сұрауы бойынша <ph name="RESULT_COUNT" /> нәтиже шықты</translation>
 <translation id="6005765687956866568">Автоматты толтырылған ақпарат үлгіден өшірілді</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index cfe8235..a272918 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -2022,7 +2022,6 @@
 <translation id="5992691462791905444">បត់​ជាអក្សរ Z</translation>
 <translation id="5992805036496113940">មើល​ព័ត៌មាន​ដែលត្រូវ​បានប្រើ ដើម្បីបង្ហាញ​កា​រផ្សាយពាណិជ្ជកម្ម​ដល់​អ្នក</translation>
 <translation id="5995727681868049093">គ្រប់គ្រង​ព័ត៌មាន ឯកជនភាព និង​សុវត្ថិភាព​របស់អ្នក​នៅក្នុង​គណនី Google របស់អ្នក</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> មិន​អាចទទេ​បានទេ</translation>
 <translation id="5997247540087773573">ពាក្យសម្ងាត់ដែលអ្នកទើបតែប្រើត្រូវបានរកឃើញនៅក្នុងការបែកធ្លាយទិន្នន័យ។ ដើម្បីការពារសុវត្ថិភាពគណនីរបស់អ្នក កម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់ Google ណែនាំឱ្យផ្លាស់ប្ដូរពាក្យសម្ងាត់នេះឥឡូវនេះ រួចពិនិត្យមើលពាក្យសម្ងាត់ដែលអ្នកបានរក្សាទុក។</translation>
 <translation id="6000758707621254961">លទ្ធផល <ph name="RESULT_COUNT" /> សម្រាប់ '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">ព័ត៌មានដែល​បាន​​បំពេញដោយស្វ័យប្រវត្តិ ត្រូវ​បាន​សម្អាត​ពី​ទម្រង់បែបបទ</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index cd3b7e0b..d45c49f 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -2014,7 +2014,6 @@
 <translation id="5992691462791905444">ಇಂಜಿನಿಯರಿಂಗ್ ಝೆಡ್ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸಿ</translation>
 <translation id="5992805036496113940">ನಿಮಗೆ ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸಲು ಬಳಸಿದ ಮಾಹಿತಿಯನ್ನು ನೋಡಿ</translation>
 <translation id="5995727681868049093">ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ನಿಮ್ಮ ಮಾಹಿತಿ, ಗೌಪ್ಯತೆ ಮತ್ತು ಸುರಕ್ಷತೆಯನ್ನು ನಿರ್ವಹಿಸಿ</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ಅನ್ನು ಖಾಲಿ ಬಿಡುವಂತಿಲ್ಲ</translation>
 <translation id="5997247540087773573">ನೀವು ಈಗಷ್ಟೇ ಬಳಸಿದ ಪಾಸ್‌ವರ್ಡ್ ಡೇಟಾ ಉಲ್ಲಂಘನೆಯಲ್ಲಿ ಕಂಡುಬಂದಿದೆ. ನಿಮ್ಮ ಖಾತೆಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು, Google ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕವು ಅದನ್ನು ಈಗಲೇ ಬದಲಾಯಿಸಲು ಹಾಗೂ ನಿಮ್ಮ ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' ಗಾಗಿ <ph name="RESULT_COUNT" /> ಫಲಿತಾಂಶಗಳು</translation>
 <translation id="6005765687956866568">ಆಟೋಫಿಲ್ ಮಾಡಿದ ಮಾಹಿತಿಯನ್ನು ಫಾರ್ಮ್‌ನಿಂದ ತೆರವುಗೊಳಿಸಲಾಗಿದೆ</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 563328af..6d170c6 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">엔지니어링 Z 폴드</translation>
 <translation id="5992805036496113940">광고 표시에 사용되는 정보 확인</translation>
 <translation id="5995727681868049093">Google 계정에서 정보, 개인 정보 보호 및 보안 설정 관리</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> 입력란은 비워 둘 수 없습니다.</translation>
 <translation id="5997247540087773573">방금 사용한 비밀번호가 정보 유출로 인해 노출된 것으로 확인됩니다. 계정을 보호하기 위해 Google 비밀번호 관리자에서 지금 바로 비밀번호를 변경하고 저장된 비밀번호를 확인하시기 바랍니다.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' 검색결과 <ph name="RESULT_COUNT" />개</translation>
 <translation id="6005765687956866568">양식에서 자동 완성 정보가 삭제되었습니다</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index ee70d770..66874501 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -2017,7 +2017,6 @@
 <translation id="5992691462791905444">Инженердик Z формасында бүктөө</translation>
 <translation id="5992805036496113940">Жарнамаларды көрсөтүү үчүн колдонулган маалыматты көрүү</translation>
 <translation id="5995727681868049093">Маалыматты, купуялыкты жана коопсуздукту Google аккаунтуңузда башкаруу</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> бош болбошу керек</translation>
 <translation id="5997247540087773573">Жаңы эле колдонгон сырсөзүңүздү кимдир бирөө билип алганы аныкталды. Аккаунттарыңыздын коопсуздугун коргоо үчүн Google'дун Сырсөздөрдү башкаргычы аны азыр өзгөртүп жана башка сакталган сырсөздөрүңүздү текшерүүнү сунуштайт.</translation>
 <translation id="6000758707621254961">"<ph name="SEARCH_TEXT" />" сурамы боюнча <ph name="RESULT_COUNT" /> жыйынтык табылды</translation>
 <translation id="6005765687956866568">Автотолтурулган маалымат формадан өчүрүлдү</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index e5773859..3085d81 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">ພັບທົບແບບ Engineering ຮູບໂຕ Z</translation>
 <translation id="5992805036496113940">ເບິ່ງຂໍ້ມູນທີ່ໃຊ້ເພື່ອສະແດງໂຄສະນາໃຫ້ທ່ານເຫັນ</translation>
 <translation id="5995727681868049093">ຈັດການຂໍ້ມູນ, ຄວາມເປັນສ່ວນຕົວ ແລະ ຄວາມປອດໄພຂອງທ່ານໃນບັນຊີ Google ທ່ານ</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ບໍ່ສາມາດຫວ່າງເປົ່າໄດ້</translation>
 <translation id="5997247540087773573">ພົບລະຫັດຜ່ານທີ່ທ່ານຫາກໍໃຊ້ນັ້ນໃນການຮົ່ວໄຫຼຂໍ້ມູນ. ເພື່ອຮັກສາຄວາມປອດໄພໃຫ້ບັນຊີຂອງທ່ານ, ຕົວຈັດການລະຫັດຜ່ານ Google ແນະນຳໃຫ້ປ່ຽນມັນດຽວນີ້ແລ້ວຈາກນັ້ນກວດສອບລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ຂອງທ່ານ.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> ຜົນການຊອກຫາສຳລັບ '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">ລຶບລ້າງຂໍ້ມູນທີ່ຕື່ມອັດຕະໂນມັດອອກຈາກແບບຟອມແລ້ວ</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 2421022..0831288 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">Neproporcingas Z formos perlenkimas</translation>
 <translation id="5992805036496113940">Peržiūrėkite informaciją, naudojamą skelbimams rodyti</translation>
 <translation id="5995727681868049093">Tvarkykite savo informaciją, privatumo ir saugos nustatymus „Google“ paskyroje</translation>
-<translation id="5996887213716993070">Laukas „<ph name="FIELD" />“ negali būti tuščias</translation>
 <translation id="5997247540087773573">Slaptažodis, kurį ką tik naudojote, buvo atskleistas įvykus duomenų saugos pažeidimui. Siekiant apsaugoti jūsų paskyras, „Google“ slaptažodžių tvarkyklė rekomenduoja pakeisti jį dabar ir patikrinti išsaugotus slaptažodžius.</translation>
 <translation id="6000758707621254961">Rezultatų pagal užklausą „<ph name="SEARCH_TEXT" />“: <ph name="RESULT_COUNT" /></translation>
 <translation id="6005765687956866568">Automatiškai užpildyta informacija išvalyta iš formos</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index d5002b0..b4e17f7 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -2017,7 +2017,6 @@
 <translation id="5992691462791905444">Inženierijas Z-veida locījums</translation>
 <translation id="5992805036496113940">Skatīt reklāmu rādīšanai izmantoto informāciju</translation>
 <translation id="5995727681868049093">Pārvaldiet savu informāciju, konfidencialitāti un drošību savā Google kontā</translation>
-<translation id="5996887213716993070">Lauks “<ph name="FIELD" />” nedrīkst būt tukšs.</translation>
 <translation id="5997247540087773573">Nupat izmantotā parole ir atklāta datu aizsardzības pārkāpuma dēļ. Lai aizsargātu kontus, Google paroļu pārvaldnieks iesaka nekavējoties to nomainīt un pēc tam pārbaudīt saglabātās paroles.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> rezultāti vaicājumam “<ph name="SEARCH_TEXT" />”</translation>
 <translation id="6005765687956866568">Automātiski aizpildītā informācija tika notīrīta no veidlapas</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index 32b975d6..df5ee6b1 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Инженерско Z-превиткување</translation>
 <translation id="5992805036496113940">Видете ги податоците што се користат за да ви се прикажуваат реклами</translation>
 <translation id="5995727681868049093">Управувајте со податоците, приватноста и безбедноста на вашата сметка на Google</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> не може да биде празно</translation>
 <translation id="5997247540087773573">Откриено е дека лозинката која штотуку ја употребивте е меѓу лозинките откриени при упад во податоците. За да ја задржите безбедноста на сметките, Google Password Manager препорачува веднаш да ја промените и да ги проверите зачуваните лозинки.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> резултати за „<ph name="SEARCH_TEXT" />“</translation>
 <translation id="6005765687956866568">Автоматски пополнетите податоци се избришани од формуларот</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index 32b642a0..606ac4c 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -2017,7 +2017,6 @@
 <translation id="5992691462791905444">എഞ്ചിനീയറിംഗ് Z-മടക്ക്</translation>
 <translation id="5992805036496113940">നിങ്ങളെ പരസ്യങ്ങൾ കാണിക്കാൻ ഉപയോഗിക്കുന്ന വിവരങ്ങൾ കാണുക</translation>
 <translation id="5995727681868049093">നിങ്ങളുടെ Google അക്കൗണ്ടിലെ വിവരങ്ങളും സ്വകാര്യതയും സുരക്ഷയും മാനേജ് ചെയ്യുക</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> നൽകാതിരിക്കാനാകില്ല</translation>
 <translation id="5997247540087773573">നിങ്ങൾ ഇപ്പോൾ ഉപയോഗിച്ച പാസ്‌വേഡ് ഡാറ്റാ ലംഘനത്തിൽ കണ്ടെത്തിയിരിക്കുന്നു. നിങ്ങളുടെ അക്കൗണ്ടുകൾ സുരക്ഷിതമാക്കാൻ, ഇപ്പോൾ തന്നെ അവ മാറ്റാനും സംരക്ഷിച്ച പാസ്‌വേഡുകൾ പരിശോധിക്കാനും Google Password Manager നിർദ്ദേശിക്കുന്നു.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' എന്നതിനായി <ph name="RESULT_COUNT" /> ഫലങ്ങള്‍</translation>
 <translation id="6005765687956866568">സ്വയമേവ പൂരിപ്പിച്ച വിവരങ്ങൾ ഫോമിൽ നിന്ന് മായ്‌ച്ചു</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index 56dc215e..663c6200 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">Инженерчлэлийн Z-нугалаа</translation>
 <translation id="5992805036496113940">Танд зар харуулахад ашигладаг мэдээллийг харах</translation>
 <translation id="5995727681868049093">Google Бүртгэлийнхээ мэдээлэл, нууцлал болон аюулгүй байдлыг удирдаарай</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> хоосон байх боломжгүй</translation>
 <translation id="5997247540087773573">Таны дөнгөж сая ашигласан нууц үгийг өгөгдлийн зөрчлөөс оллоо. Таны бүртгэлүүдийг хамгаалахын тулд Google Password Manager үүнийг одоо өөрчлөх болон хадгалсан нууц үгнүүдээ шалгахыг зөвлөж байна.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />'-н <ph name="RESULT_COUNT" /> илэрц</translation>
 <translation id="6005765687956866568">Автоматаар бөглөсөн мэдээллийг маягтаас арилгасан</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index eac70313..6bc1c92 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -2017,7 +2017,6 @@
 <translation id="5992691462791905444">इंजिनीयरिंग Z-फोल्ड</translation>
 <translation id="5992805036496113940">तुम्हाला जाहिराती दाखवण्यासाठी वापरलेली माहिती पहा</translation>
 <translation id="5995727681868049093">तुमच्या Google खाते मध्ये तुमची माहिती, गोपनीयता आणि सुरक्षा व्यवस्थापित करा</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> रिकामे असू शकत नाही</translation>
 <translation id="5997247540087773573">तुम्ही नुकताच वापरलेला पासवर्ड डेटा भंगामध्ये आढळला होता. तुमची खाती सुरक्षित करण्यासाठी, Google Password Manager तो आता बदलण्याची शिफारस करतो आणि तुमचे सेव्ह केलेले पासवर्ड तपासतो.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' साठी <ph name="RESULT_COUNT" /> परिणाम</translation>
 <translation id="6005765687956866568">फॉर्ममधून ऑटोफिल माहिती साफ केली गेली आहे</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index d4c99d1..a6a4c51 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 in</translation>
 <translation id="1181037720776840403">Alih keluar</translation>
 <translation id="1186201132766001848">Semak Kata Laluan</translation>
+<translation id="1195073053842921378">Alamat ini akan dipadamkan daripada peranti ini</translation>
 <translation id="1195558154361252544">Pemberitahuan disekat secara automatik untuk semua tapak kecuali tapak yang anda benarkan</translation>
 <translation id="1197088940767939838">Oren</translation>
 <translation id="1201402288615127009">Seterusnya</translation>
@@ -2019,7 +2020,6 @@
 <translation id="5992691462791905444">Lipatan Z kejuruteraan</translation>
 <translation id="5992805036496113940">Lihat maklumat yang digunakan untuk memaparkan iklan kepada anda</translation>
 <translation id="5995727681868049093">Urus maklumat, privasi dan keselamatan anda dalam Google Account anda</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> tidak boleh dibiarkan kosong</translation>
 <translation id="5997247540087773573">Kata laluan yang baru anda gunakan ditemukan dalam pelanggaran data. Untuk melindungi akaun anda, Google Password Manager mengesyorkan agar anda menukar kata laluan sekarang, kemudian menyemak kata laluan anda yang disimpan.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> hasil carian untuk '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">Maklumat dalam borang yang diisi secara automatik telah dikosongkan</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index 504b0b70..79e27a3 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">၁၂ x ၁၆ လက်မ</translation>
 <translation id="1181037720776840403">ဖယ်ရှားရန်</translation>
 <translation id="1186201132766001848">စကားဝှက်များ စစ်ဆေးရန်</translation>
+<translation id="1195073053842921378">ဤလိပ်စာကို ယခုစက်မှ ဖျက်လိုက်မည်</translation>
 <translation id="1195558154361252544">သင်ခွင့်ပြုထားသည့် ဝဘ်ဆိုက်များအတွက်မှလွဲ၍ အကြောင်းကြားချက်များကို အလိုအလျောက် ပိတ်ထားသည်</translation>
 <translation id="1197088940767939838">လိမ္မော်ရောင်</translation>
 <translation id="1201402288615127009">ရှေ့သို့</translation>
@@ -2019,7 +2020,6 @@
 <translation id="5992691462791905444">အင်ဂျင်နီယာ Z ပုံစံ စာရွက်ခေါက်ရန်</translation>
 <translation id="5992805036496113940">ကြော်ငြာပြရန်အတွက် အသုံးပြုသည့်အချက်အလက်ကို ကြည့်ရန်</translation>
 <translation id="5995727681868049093">သင်၏ Google Account တွင် သင့်အချက်အလက်၊ ပုဂ္ဂိုလ်ရေးနှင့် လုံခြုံရေးဆိုင်ရာများကို စီမံနိုင်သည်</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ကို အလွတ်ထား၍မရပါ</translation>
 <translation id="5997247540087773573">သင်သုံးလိုက်သောစကားဝှက်ကို ဒေတာကျိုးပေါက်မှုတွင် တွေ့ရှိထားသည်။ သင့်အကောင့်များကို လုံခြုံစေရန် ‘Google စကားဝှက်မန်နေဂျာ’ က သင်သိမ်းထားသော စကားဝှက်များကို ယခုပြောင်းရန်နှင့် စစ်ဆေးရန် အကြံပြုပါသည်။</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' အတွက် ရလဒ် <ph name="RESULT_COUNT" /> ခု</translation>
 <translation id="6005765687956866568">အော်တိုဖြည့်အချက်အလက်ကို ဖောင်မှ ဖယ်ရှားထားသည်</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb
index 6a9d217..ef8bf02 100644
--- a/components/strings/components_strings_ne.xtb
+++ b/components/strings/components_strings_ne.xtb
@@ -2015,7 +2015,6 @@
 <translation id="5992691462791905444">इन्जिनियरिङ जेड फोल्ड</translation>
 <translation id="5992805036496113940">तपाईंलाई विज्ञापनहरू देखाउन प्रयोग गरिएका जानकारी हेर्नुहोस्</translation>
 <translation id="5995727681868049093">आफ्नो Google खातामा गई तपाईंको जानकारी, गोपनीयता र सुरक्षाको व्यवस्थापन गर्नुहोस्</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> खाली छाड्न मिल्दैन</translation>
 <translation id="5997247540087773573">तपाईंले भर्खरै प्रयोग गर्नुभएको पासवर्ड चोरी भएको डेटाको सङ्ग्रहमा भेटिएको छ। Google पासवर्ड म्यानेजरले तपाईंका खाता सुरक्षित राख्ने प्रयोजनका लागि अहिले नै यो पासवर्ड बदल्न र तपाईंले सेभ गरेका पासवर्डहरू सुरक्षित छन् कि छैनन् भनी जाँच्न सिफारिस गर्छ।</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' मध्ये <ph name="RESULT_COUNT" /></translation>
 <translation id="6005765687956866568">फाराममा अटोफिल गरिएको जानकारी हटाइएको छ</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 7a2e89ee..eb48966 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -2013,7 +2013,6 @@
 <translation id="5992691462791905444">Zizagvouw 2-slag oneven center</translation>
 <translation id="5992805036496113940">Informatie bekijken die wordt gebruikt om advertenties aan je te laten zien</translation>
 <translation id="5995727681868049093">Je gegevens, privacy en beveiliging beheren in je Google-account</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> mag niet leeg zijn</translation>
 <translation id="5997247540087773573">Het wachtwoord dat je net hebt gebruikt, is gevonden bij een gegevenslek. Google Wachtwoordmanager raadt je aan dit wachtwoord nu te wijzigen en je opgeslagen wachtwoorden te checken om je account te beveiligen.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultaten voor '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">De automatisch ingevulde informatie is verwijderd uit het formulier</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 54747af..3a6e4b4 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">Ingeniør-Z-fals</translation>
 <translation id="5992805036496113940">Se informasjon som brukes for å vise deg annonser</translation>
 <translation id="5995727681868049093">Administrer informasjon, personvern og sikkerhet i Google-kontoen din</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ikke være tomt</translation>
 <translation id="5997247540087773573">Passordet du nettopp brukte, er funnet i et databrudd. For å sikre kontoene dine anbefaler Google Passordlagring at du endrer det nå og sjekker de lagrede passordene dine.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultater for «<ph name="SEARCH_TEXT" />»</translation>
 <translation id="6005765687956866568">Den autoutfylte informasjonen ble fjernet fra skjemaet</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index e6bec775..ce0a006 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -2016,7 +2016,6 @@
 <translation id="5992691462791905444">ଇଞ୍ଜିନିୟରିଂ Z-ଫୋଲ୍ଡ</translation>
 <translation id="5992805036496113940">ଆପଣଙ୍କୁ ବିଜ୍ଞାପନଗୁଡ଼ିକ ଦେଖାଇବା ପାଇଁ ବ୍ୟବହୃତ ହୋଇଥିବା ସୂଚନା ଦେଖନ୍ତୁ</translation>
 <translation id="5995727681868049093">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ଆପଣଙ୍କର ସୂଚନା, ଗୋପନୀୟତା ଏବଂ ସୁରକ୍ଷାକୁ ପରିଚାଳନା କରନ୍ତୁ</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ଖାଲି ରହିପାରିବ ନାହିଁ</translation>
 <translation id="5997247540087773573">ଆପଣ ଏବେ ବ୍ୟବହାର କରିଥିବା ପାସୱାର୍ଡ ଏକ ଡାଟା ଉଲ୍ଲଙ୍ଘନରେ ମିଳିଛି। ଆପଣଙ୍କ ଆକାଉଣ୍ଟଗୁଡ଼ିକୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ, ବର୍ତ୍ତମାନ ଏହି ପାସୱାର୍ଡକୁ ପରିବର୍ତ୍ତନ କରିବାକୁ ଏବଂ ଆପଣଙ୍କ ଦ୍ୱାରା ସେଭ କରାଯାଇଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକର ଯାଞ୍ଚ କରିବାକୁ Google Password Manager ସୁପାରିଶ କରେ।</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' ପାଇଁ <ph name="RESULT_COUNT" />ଟି ପରିଣାମ</translation>
 <translation id="6005765687956866568">ଅଟୋଫିଲ ହୋଇଥିବା ସୂଚନାକୁ ଫର୍ମରୁ ଖାଲି କରାଯାଇଛି</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index 7ae864d..e697ecc3 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -2015,7 +2015,6 @@
 <translation id="5992691462791905444">ਇੰਜੀਨੀਅਰਿੰਗ Z-ਤਹਿ</translation>
 <translation id="5992805036496113940">ਤੁਹਾਨੂੰ ਵਿਗਿਆਪਨ ਦਿਖਾਉਣ ਲਈ ਵਰਤੀ ਜਾਣ ਵਾਲੀ ਜਾਣਕਾਰੀ ਨੂੰ ਦੇਖੋ</translation>
 <translation id="5995727681868049093">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਆਪਣੀ ਜਾਣਕਾਰੀ, ਪਰਦੇਦਾਰੀ ਅਤੇ ਸੁਰੱਖਿਆ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ਨੂੰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ</translation>
 <translation id="5997247540087773573">ਤੁਹਾਡੇ ਵੱਲੋਂ ਹੁਣੇ ਹੀ ਵਰਤਿਆ ਗਿਆ ਪਾਸਵਰਡ ਡਾਟਾ ਉਲੰਘਣਾ ਵਿੱਚ ਮਿਲਿਆ ਸੀ। ਆਪਣੇ ਖਾਤਿਆਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ, Google Password Manager ਇਸਨੂੰ ਹੁਣੇ ਬਦਲਣ ਅਤੇ ਫਿਰ ਤੁਹਾਡੇ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' ਲਈ <ph name="RESULT_COUNT" /> ਨਤੀਜੇ</translation>
 <translation id="6005765687956866568">ਆਟੋਫਿਲ ਜਾਣਕਾਰੀ ਨੂੰ ਫ਼ਾਰਮ ਤੋਂ ਕਲੀਅਰ ਕੀਤਾ ਗਿਆ</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index 7f12349..26cbaeb7 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Składanie typu Z</translation>
 <translation id="5992805036496113940">Zobacz informacje używane do wyświetlania Ci reklam</translation>
 <translation id="5995727681868049093">Zarządzaj swoimi danymi, prywatnością i bezpieczeństwem na koncie Google</translation>
-<translation id="5996887213716993070">Pole <ph name="FIELD" /> nie może być puste.</translation>
 <translation id="5997247540087773573">Znaleźliśmy użyte właśnie hasło wśród ujawnionych w wyniku naruszenia bezpieczeństwa danych. Menedżer haseł Google zaleca natychmiastową zmianę tego hasła oraz sprawdzenie innych zapisanych haseł – pozwoli to zabezpieczyć Twoje konta.</translation>
 <translation id="6000758707621254961">Wyniki wyszukiwania dla zapytania „<ph name="SEARCH_TEXT" />”: <ph name="RESULT_COUNT" /></translation>
 <translation id="6005765687956866568">Informacje autouzupełniania zostały usunięte z formularza</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index 0045b5d..b077e97 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 pol.</translation>
 <translation id="1181037720776840403">Remover</translation>
 <translation id="1186201132766001848">Verificar senhas</translation>
+<translation id="1195073053842921378">O endereço vai ser excluído deste dispositivo</translation>
 <translation id="1195558154361252544">As notificações são bloqueadas automaticamente para todos os sites, exceto para aqueles que têm permissão</translation>
 <translation id="1197088940767939838">Laranja</translation>
 <translation id="1201402288615127009">Próxima</translation>
@@ -2018,7 +2019,6 @@
 <translation id="5992691462791905444">Dobra sanfona</translation>
 <translation id="5992805036496113940">Consultar informações usadas para mostrar anúncios</translation>
 <translation id="5995727681868049093">Gerenciar suas informações, sua privacidade e sua segurança na Conta do Google.</translation>
-<translation id="5996887213716993070">O campo <ph name="FIELD" /> é obrigatório</translation>
 <translation id="5997247540087773573">A senha que você usou foi encontrada em uma violação de dados. Para proteger suas contas, o Gerenciador de senhas do Google recomenda que você a mude e revise as senhas salvas.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultados para "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">As informações preenchidas automaticamente foram removidas do formulário</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index b270a7951a..06aa0fd 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -208,7 +208,7 @@
 <translation id="1430915738399379752">Imprimir</translation>
 <translation id="1432187715652018471">A página quer instalar um controlador de serviço.</translation>
 <translation id="1432581352905426595">Gerir motores de pesquisa</translation>
-<translation id="1435940442311036198">Usar uma chave de acesso num dispositivo diferente</translation>
+<translation id="1435940442311036198">Usar uma token de acesso num dispositivo diferente</translation>
 <translation id="1436185428532214179">Pode solicitar a edição de ficheiros e pastas no seu dispositivo</translation>
 <translation id="1442386063175183758">Dobra simétrica à direita</translation>
 <translation id="1442987760062738829">Perfurar</translation>
@@ -1938,7 +1938,7 @@
 <translation id="5764920692828389743">Enviar para <ph name="EMAIL_ADDRESS" /></translation>
 <translation id="5765072501007116331">Para ver os métodos de fornecimento e os requisitos, selecione um endereço</translation>
 <translation id="57689295674415555">O número do cartão virtual não foi preenchido?</translation>
-<translation id="5772086939108830423">Usar uma chave de acesso num dispositivo diferente</translation>
+<translation id="5772086939108830423">Usar uma token de acesso num dispositivo diferente</translation>
 <translation id="5776313857861697733">Prioridade</translation>
 <translation id="5776574724412881956">Cartão virtual não preenchido? Clique nos detalhes do cartão virtual para os copiar para a área de transferência. <ph name="IDS_AUTOFILL_VIRTUAL_CARD_MANUAL_FALLBACK_BUBBLE_LEARN_MORE_LINK_LABEL" /></translation>
 <translation id="5781136890105823427">Experiência ativada</translation>
@@ -2019,7 +2019,6 @@
 <translation id="5992691462791905444">Dobra em Z vertical com margem superior</translation>
 <translation id="5992805036496113940">Veja as informações usadas para lhe mostrar anúncios</translation>
 <translation id="5995727681868049093">Faça a gestão das suas informações, privacidade e segurança na Conta Google</translation>
-<translation id="5996887213716993070">O campo <ph name="FIELD" /> não pode ficar vazio</translation>
 <translation id="5997247540087773573">A palavra-passe que acabou de usar foi encontrada numa violação de dados. Para proteger as suas contas, o Gestor de Palavras-passe da Google recomenda que a altere agora e verifique as suas palavras-passe guardadas.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultados para "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">As informações preenchidas automaticamente foram limpas do formulário</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 40e79b4..0b3da9c5 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Îndoire în Z pentru inginerie</translation>
 <translation id="5992805036496113940">Vezi informațiile folosite pentru a-ți afișa anunțuri</translation>
 <translation id="5995727681868049093">Gestionează-ți informațiile, confidențialitatea și securitatea Contului Google</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> nu poate fi necompletat</translation>
 <translation id="5997247540087773573">Parola pe care tocmai ai folosit-o a fost găsită într-o încălcare a securității datelor. Pentru a-ți proteja conturile, Managerul de parole Google îți recomandă să schimbi parola acum și să verifici parolele salvate.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> rezultate pentru „<ph name="SEARCH_TEXT" />”</translation>
 <translation id="6005765687956866568">Informațiile completate automat au fost șterse din formular</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index 9ef65969..6db2a9f9 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 дюймов</translation>
 <translation id="1181037720776840403">Удалить</translation>
 <translation id="1186201132766001848">Проверить пароли</translation>
+<translation id="1195073053842921378">Этот адрес будет удален с устройства.</translation>
 <translation id="1195558154361252544">Уведомления от всех сайтов блокируются автоматически – кроме тех, которым вы дали разрешение.</translation>
 <translation id="1197088940767939838">Оранжевый</translation>
 <translation id="1201402288615127009">Далее</translation>
@@ -2017,7 +2018,6 @@
 <translation id="5992691462791905444">Укороченная фальцовка гармошкой</translation>
 <translation id="5992805036496113940">Посмотреть информацию, на основе которой вам показывается реклама</translation>
 <translation id="5995727681868049093">Настроить параметры конфиденциальности и безопасности в аккаунте Google</translation>
-<translation id="5996887213716993070">Поле "<ph name="FIELD" />" должно быть заполнено.</translation>
 <translation id="5997247540087773573">Пароль, который вы только что использовали, был раскрыт в результате утечки данных. Чтобы защитить свои аккаунты, измените его прямо сейчас и проверьте сохраненные пароли в Google Менеджере паролей.</translation>
 <translation id="6000758707621254961">Количество результатов поиска по запросу "<ph name="SEARCH_TEXT" />": <ph name="RESULT_COUNT" /></translation>
 <translation id="6005765687956866568">Автоматически указанные сведения были удалены из формы</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index 401660d..429c45ae 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">ඉංජිනේරු විද්‍යා Z-නැමීම</translation>
 <translation id="5992805036496113940">ඔබට දැන්වීම් පෙන්වීමට භාවිතා කරන තතු බලන්න</translation>
 <translation id="5995727681868049093">ඔබගේ Google ගිණුම තුළ ඔබගේ තොරතුරු, පෞද්ගලිකත්වය සහ ආරක්ෂාව කළමනාකරණය කරන්න</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> හිස් විය නොහැක</translation>
 <translation id="5997247540087773573">ඔබ මේ දැන් භාවිත කළ මුරපදය දත්ත කඩ කිරීමකදී සොයා ගන්නා ලදී. ඔබගේ ගිණුම් සුරක්ෂිත කිරීමට, Google මුරපද කළමනාකරු එය දැන් වෙනස් කර ඔබගේ සුරකින ලද මුරපද පරීක්ෂා කිරීම නිර්දේශ කරයි.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' සඳහා ප්‍රතිඵල <ph name="RESULT_COUNT" />ක්</translation>
 <translation id="6005765687956866568">ස්වයංව පුරවන ලද තතු පෝරමයෙන් හිස් කරන ලදි</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 0ea12de..218b1b0 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -609,7 +609,7 @@
 <translation id="2438874542388153331">Štyri dierky vpravo</translation>
 <translation id="2441854154602066476">Spôsoby platby, ktoré sa dajú vyplniť po klepnutí. Klávesnica je skrytá.</translation>
 <translation id="2448295565072560657">Periférie pripojené k tomuto zariadeniu počas vášho prihlásenia</translation>
-<translation id="2450021089947420533">Journeys</translation>
+<translation id="2450021089947420533">Cesty</translation>
 <translation id="2463739503403862330">Vyplniť</translation>
 <translation id="2465655957518002998">Zvoliť spôsob doručenia</translation>
 <translation id="2465688316154986572">Zošiť spinkou</translation>
@@ -2014,7 +2014,6 @@
 <translation id="5992691462791905444">Inžiniersky záhyb v tvare písmena Z</translation>
 <translation id="5992805036496113940">Zobraziť informácie, pomocou ktorých sa vám zobrazujú reklamy</translation>
 <translation id="5995727681868049093">Spravovať v účte Google informácie, ochranu súkromia a zabezpečenie</translation>
-<translation id="5996887213716993070">Pole <ph name="FIELD" /> nemôže byť prázdne</translation>
 <translation id="5997247540087773573">Heslo, ktoré ste práve použili, bolo nájdené v zozname hesiel odhalených pri porušení ochrany údajov. Ak chcete svoje účty zabezpečiť, Správca hesiel Google odporúča heslo okamžite zmeniť a skontrolovať uložené heslá.</translation>
 <translation id="6000758707621254961">Viacero výsledkov (<ph name="RESULT_COUNT" />) pre hľadaný výraz „<ph name="SEARCH_TEXT" />“</translation>
 <translation id="6005765687956866568">Automaticky doplnené informácie boli z formulára vymazané</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 792b757a..63c60c1 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -2020,7 +2020,6 @@
 <translation id="5992691462791905444">Prepogibanje v obliki harmonike z dvema zgiboma</translation>
 <translation id="5992805036496113940">Oglejte si podatke, ki se uporabljajo za prikazovanje oglasov</translation>
 <translation id="5995727681868049093">Upravljanje podatkov, zasebnosti in varnosti v računu Google</translation>
-<translation id="5996887213716993070">Polje <ph name="FIELD" /> ne sme biti prazno.</translation>
 <translation id="5997247540087773573">Geslo, ki ste ga pravkar uporabili, je bilo najdeno v podatkovni kršitvi. Zaradi zavarovanja računov Google Upravitelj gesel priporoča, da ga spremenite zdaj in preverite shranjena gesla.</translation>
 <translation id="6000758707621254961">Rezultati za »<ph name="SEARCH_TEXT" />« (<ph name="RESULT_COUNT" />)</translation>
 <translation id="6005765687956866568">Samodejno izpolnjeni podatki so bili izbrisani iz obrazca</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb
index 9c75ddc..997ea6a6 100644
--- a/components/strings/components_strings_sq.xtb
+++ b/components/strings/components_strings_sq.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Palosje inxhinierike Z</translation>
 <translation id="5992805036496113940">Shiko informacionet që përdoren për të të shfaqur reklama</translation>
 <translation id="5995727681868049093">Menaxho informacionin, privatësinë dhe sigurinë tënde në "Llogarinë tënde të Google"</translation>
-<translation id="5996887213716993070">Fusha "<ph name="FIELD" />" nuk mund të jetë bosh</translation>
 <translation id="5997247540087773573">Fjalëkalimi që sapo përdore u gjet në një nxjerrje të paautorizuar të të dhënave. Për të mbrojtur llogaritë e tua, "Menaxheri i fjalëkalimeve i Google" rekomandon ta ndryshosh atë tani dhe të kontrollosh fjalëkalimet e ruajtura.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> rezultate për "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6005765687956866568">Informacionet e plotësuara automatikisht u pastruan nga formulari</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index cf47078..58d0a13 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Presavijanje u obliku polu-harmonike</translation>
 <translation id="5992805036496113940">Pogledajte informacije koje se koriste za prikazivanje oglasa</translation>
 <translation id="5995727681868049093">Upravljajte informacijama, privatnošću i bezbednošću na Google nalogu</translation>
-<translation id="5996887213716993070">Polje <ph name="FIELD" /> ne sme da bude prazno</translation>
 <translation id="5997247540087773573">Lozinka koju ste upravo koristili je pronađena pri povredi podataka. Da biste zaštitili naloge, Google menadžer lozinki preporučuje da je odmah promenite i proverite sačuvane lozinke.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> rezultata za „<ph name="SEARCH_TEXT" />“</translation>
 <translation id="6005765687956866568">Automatski popunjene informacije su obrisane iz obrasca</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index d098a549..53d41f9 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Пресавијање у облику полу-хармонике</translation>
 <translation id="5992805036496113940">Погледајте информације које се користе за приказивање огласа</translation>
 <translation id="5995727681868049093">Управљајте информацијама, приватношћу и безбедношћу на Google налогу</translation>
-<translation id="5996887213716993070">Поље <ph name="FIELD" /> не сме да буде празно</translation>
 <translation id="5997247540087773573">Лозинка коју сте управо користили је пронађена при повреди података. Да бисте заштитили налоге, Google менаџер лозинки препоручује да је одмах промените и проверите сачуване лозинке.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> резултата за „<ph name="SEARCH_TEXT" />“</translation>
 <translation id="6005765687956866568">Аутоматски попуњене информације су обрисане из обрасца</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 8de3fea..07b70cdf 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 tum</translation>
 <translation id="1181037720776840403">Ta bort</translation>
 <translation id="1186201132766001848">Kontrollera lösenord</translation>
+<translation id="1195073053842921378">Adressen raderas från enheten</translation>
 <translation id="1195558154361252544">Aviseringar blockeras automatiskt på alla webbplatser utom sådana du tillåter</translation>
 <translation id="1197088940767939838">Orange</translation>
 <translation id="1201402288615127009">Nästa</translation>
@@ -2018,7 +2019,6 @@
 <translation id="5992691462791905444">Förskjuten Z-falsning</translation>
 <translation id="5992805036496113940">Se vilken information som används för att visa annonser</translation>
 <translation id="5995727681868049093">Hantera uppgifter, integritet och säkerhet i Google-kontot</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> måste fyllas i.</translation>
 <translation id="5997247540087773573">Lösenordet som du precis använde har läckt ut vid ett dataintrång. Du rekommenderas av Google Lösenordshantering att byta det nu och se över dina sparade lösenord för att skydda dina konton.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultat för <ph name="SEARCH_TEXT" /></translation>
 <translation id="6005765687956866568">Informationen som fylldes i automatiskt har rensats från formuläret</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index a3e05391..83dfc41 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Mkunjo wa Z wa uhandisi</translation>
 <translation id="5992805036496113940">Angalia taarifa zinazotumika kukuonyesha matangazo</translation>
 <translation id="5995727681868049093">Dhibiti maelezo, faragha na usalama wako katika Akaunti yako ya Google</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ni sharti ijazwe</translation>
 <translation id="5997247540087773573">Nenosiri ulilotumia hivi punde limepatikana kwenye ufichuzi haramu wa data. Ili uimarishe usalama wa akaunti zako, Kidhibiti cha Manenosiri cha Google kinapendekeza ulibadilishe sasa na ukague manenosiri yako yaliyohifadhiwa.</translation>
 <translation id="6000758707621254961">Matokeo <ph name="RESULT_COUNT" /> ya '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">Maelezo yaliyojazwa kiotomatiki yamefutwa kwenye fomu</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 31fe1c0..7a21466 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -2014,7 +2014,6 @@
 <translation id="5992691462791905444">இன்ஜினியரிங் Z-ஃபோல்டு</translation>
 <translation id="5992805036496113940">உங்களுக்கு விளம்பரங்களைக் காட்டப் பயன்படுத்தப்படும் தகவலைக் காட்டும்</translation>
 <translation id="5995727681868049093">உங்கள் Google கணக்கில் உள்ள தகவல்கள், தனியுரிமை, பாதுகாப்பு ஆகியவற்றை நிர்வகிக்கலாம்</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> காலியாக இருக்கக்கூடாது</translation>
 <translation id="5997247540087773573">நீங்கள் தற்போது பயன்படுத்திய கடவுச்சொல், தரவு மீறலுக்கு உள்ளாகியிருப்பதாகக் கண்டறியப்பட்டுள்ளது. உங்கள் கணக்குகளைப் பாதுகாப்பாக வைத்திருக்க, இப்போதே கடவுச்சொல்லை மாற்றும்படியும் சேமித்த கடவுச்சொற்களைச் சரிபார்க்கும்படியும் Google Password Manager பரிந்துரைக்கிறது.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />'க்கு <ph name="RESULT_COUNT" /> முடிவுகள் உள்ளன</translation>
 <translation id="6005765687956866568">தானாக நிரப்பப்பட்ட தகவல், படிவத்தில் இருந்து அழிக்கப்பட்டது</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index 740d5e3..a658f0b 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 అంగుళాలు</translation>
 <translation id="1181037720776840403">తీసివేయండి</translation>
 <translation id="1186201132766001848">పాస్‌వర్డ్‌లను చెక్ చేయండి</translation>
+<translation id="1195073053842921378">ఈ పరికరం నుండి ఈ అడ్రస్ తొలగించబడుతుంది</translation>
 <translation id="1195558154361252544">మీరు అనుమతించినవి మినహా, ఇతర అన్ని సైట్‌లకు నోటిఫికేషన్‌లు ఆటోమేటిక్‌గా బ్లాక్ చేయబడ్డాయి</translation>
 <translation id="1197088940767939838">నారింజ రంగు</translation>
 <translation id="1201402288615127009">తరువాత</translation>
@@ -2020,7 +2021,6 @@
 <translation id="5992691462791905444">ఇంజినీరింగ్ 'Z' ఫోల్డ్</translation>
 <translation id="5992805036496113940">మీకు యాడ్‌లను చూపడం కోసం వినియోగించబడే సమాచారాన్ని చూడండి</translation>
 <translation id="5995727681868049093">మీ Google ఖాతాలో మీ సమాచారం, గోప్యత, ఇంకా భద్రతను మేనేజ్ చేయండి</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> ఖాళీగా ఉండకూడదు</translation>
 <translation id="5997247540087773573">మీరు ఇప్పుడే ఉపయోగించిన పాస్‌వర్డ్, డేటా ఉల్లంఘనలో కనగొనబడింది. మీ ఖాతాలను సురక్షితం చేయడానికి, దానిని ఇప్పుడే మార్చి, మీరు సేవ్ చేసిన పాస్‌వర్డ్‌లను చెక్ చేయమని Google Password Manager సిఫార్సు చేస్తోంది.</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' అనే దానికి <ph name="RESULT_COUNT" /> ఫలితాలు లభించాయి</translation>
 <translation id="6005765687956866568">ఫారమ్ నుండి ఆటోఫిల్ చేసిన సమాచారం క్లియర్ చేయబడింది</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 2cbd983c..255c0be 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">พับทบแบบ Engineering รูปตัว Z</translation>
 <translation id="5992805036496113940">ดูข้อมูลที่ใช้เพื่อแสดงโฆษณาแก่คุณ</translation>
 <translation id="5995727681868049093">จัดการข้อมูล ความเป็นส่วนตัว และการรักษาความปลอดภัยในบัญชี Google ของคุณ</translation>
-<translation id="5996887213716993070">ต้องระบุ <ph name="FIELD" /></translation>
 <translation id="5997247540087773573">ระบบพบว่ารหัสผ่านที่คุณเพิ่งใช้มีการรั่วไหลในการละเมิดข้อมูลครั้งหนึ่ง เพื่อรักษาความปลอดภัยของบัญชี เครื่องมือจัดการรหัสผ่านบน Google แนะนำให้เปลี่ยนรหัสผ่านทันทีและตรวจสอบรหัสผ่านที่บันทึกไว้</translation>
 <translation id="6000758707621254961">มีผลการค้นหา "<ph name="SEARCH_TEXT" />" <ph name="RESULT_COUNT" /> รายการ</translation>
 <translation id="6005765687956866568">ล้างข้อมูลที่ป้อนอัตโนมัติออกจากแบบฟอร์มแล้ว</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index a376278..d13af74 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Yarım Z katlama</translation>
 <translation id="5992805036496113940">Size reklam göstermek için kullanılan bilgilere göz atın</translation>
 <translation id="5995727681868049093">Google Hesabınızda bilgilerinizi, gizliliğinizi ve güvenliğinizi yönetin</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> boş olamaz</translation>
 <translation id="5997247540087773573">Az önce kullandığınız şifrenin bir veri ihlali sonucunda açığa çıktığı anlaşıldı. Google Şifre Yöneticisi, hesaplarınızın güvenliğini sağlamak için bu şifreyi hemen değiştirmenizi ve kayıtlı şifrelerinizi kontrol etmenizi öneriyor.</translation>
 <translation id="6000758707621254961">"<ph name="SEARCH_TEXT" />" için bulunan <ph name="RESULT_COUNT" /> sonuç gösteriliyor</translation>
 <translation id="6005765687956866568">Otomatik doldurulan bilgiler formdan silindi</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index b8cd90d3..f969451 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">Зігнути гармошкою</translation>
 <translation id="5992805036496113940">Перегляньте інформацію, яка використовується для показу оголошень</translation>
 <translation id="5995727681868049093">Керуйте своєю інформацією, конфіденційністю й безпекою в обліковому записі Google</translation>
-<translation id="5996887213716993070">Заповніть поле "<ph name="FIELD" />"</translation>
 <translation id="5997247540087773573">Введений пароль розкрито через порушення безпеки даних. Щоб захистити ваші облікові записи, Менеджер паролів Google радить негайно його змінити й перевірити збережені паролі.</translation>
 <translation id="6000758707621254961">Результатів для запиту "<ph name="SEARCH_TEXT" />": <ph name="RESULT_COUNT" /></translation>
 <translation id="6005765687956866568">Автоматично заповнену інформацію було вилучено з форми</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index 43369d84..995b8479 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -2020,7 +2020,6 @@
 <translation id="5992691462791905444">‏انجینیئرنگ Z-فولڈ</translation>
 <translation id="5992805036496113940">آپ کو اشتہارات دکھانے کے لیے استعمال کردہ معلومات دیکھیں</translation>
 <translation id="5995727681868049093">‏اپنے Google اکاؤنٹ میں اپنی معلومات، رازداری اور سیکیورٹی کا نظم کریں</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> خالی نہیں ہو سکتی</translation>
 <translation id="5997247540087773573">‏آپ نے ابھی جو پاس ورڈ استعمال کیا وہ ڈیٹا کی خلاف ورزی میں پایا گیا۔ اپنے اکاؤنٹس محفوظ کرنے کے لیے، Google پاس ورڈ مینیجر اسے ابھی تبدیل کرنے اور آپ کے محفوظ کردہ پاس ورڈز کو چیک کرنے کی تجویز کرتا ہے۔</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' کے <ph name="RESULT_COUNT" /> نتائج</translation>
 <translation id="6005765687956866568">فارم سے خود کار طریقے سے پُر کی گئی معلومات کو صاف کر دیا گیا تھا</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index 8081c46..bd078fb1 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -2014,7 +2014,6 @@
 <translation id="5992691462791905444">Engineering-Z shaklida taxlash</translation>
 <translation id="5992805036496113940">Reklamalar chiqishida ishlatiladigan axborotlar</translation>
 <translation id="5995727681868049093">Google hisobingizdagi axborotingiz, maxfiylik va xavfsizlik sozlamalarini boshqarish</translation>
-<translation id="5996887213716993070"><ph name="FIELD" /> boʻsh qolishi mumkin emas</translation>
 <translation id="5997247540087773573">Hozirgina siz foydalangan parol oshkor qilingan. Hisoblaringizni himoyalash maqsadida Google Parollar menejeri uni hoziroq almashtirib, saqlangan parollaringizni tekshirishni tavsiya etadi.</translation>
 <translation id="6000758707621254961">“<ph name="SEARCH_TEXT" />” uchun <ph name="RESULT_COUNT" /> ta natija</translation>
 <translation id="6005765687956866568">Shakldagi avtomatik kiritish axboroti tozalandi</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 59f489c..6ee8e3e 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -84,6 +84,7 @@
 <translation id="1178821169867863726">12 x 16 inch</translation>
 <translation id="1181037720776840403">Xóa</translation>
 <translation id="1186201132766001848">Kiểm tra mật khẩu</translation>
+<translation id="1195073053842921378">Địa chỉ này sẽ bị xoá khỏi thiết bị này</translation>
 <translation id="1195558154361252544">Đã tự động chặn thông báo đối với mọi trang web, ngoại trừ những trang web bạn cho phép</translation>
 <translation id="1197088940767939838">Màu cam</translation>
 <translation id="1201402288615127009">Tiếp theo</translation>
@@ -2018,7 +2019,6 @@
 <translation id="5992691462791905444">Gấp kiểu chữ Z kỹ thuật</translation>
 <translation id="5992805036496113940">Xem thông tin được dùng để hiển thị quảng cáo cho bạn</translation>
 <translation id="5995727681868049093">Quản lý thông tin, quyền riêng tư và chế độ bảo mật cho Tài khoản Google của bạn</translation>
-<translation id="5996887213716993070">Không được để trống <ph name="FIELD" /></translation>
 <translation id="5997247540087773573">Mật khẩu bạn vừa sử dụng đã bị lộ trong một sự cố rò rỉ dữ liệu. Để bảo mật tài khoản, Trình quản lý mật khẩu khuyên bạn nên thay đổi mật khẩu này ngay và kiểm tra các mật khẩu bạn đã lưu.</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> kết quả cho '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">Thông tin tự động điền đã bị xoá khỏi biểu mẫu</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index e1b124e..e4e86de 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -2015,7 +2015,6 @@
 <translation id="5992691462791905444">工程 Z 型折</translation>
 <translation id="5992805036496113940">查看向您展示广告时使用的信息</translation>
 <translation id="5995727681868049093">在您的 Google 帐号中管理自己的信息、隐私和安全</translation>
-<translation id="5996887213716993070">“<ph name="FIELD" />”字段不得为空</translation>
 <translation id="5997247540087773573">您刚才使用的密码遭遇了数据泄露。为确保您的帐号安全,Google 密码管理工具建议您立即更改此密码并检查您已保存的所有密码。</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> 个与“<ph name="SEARCH_TEXT" />”相符的搜索结果</translation>
 <translation id="6005765687956866568">已从此表单中清除自动填充的信息</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index c988d8f..596109bf 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -2018,7 +2018,6 @@
 <translation id="5992691462791905444">大小風琴摺</translation>
 <translation id="5992805036496113940">查看系統用於放送廣告的資料</translation>
 <translation id="5995727681868049093">在 Google 帳戶管理您的資料、私隱權和安全設定</translation>
-<translation id="5996887213716993070">「<ph name="FIELD" />」不能留空</translation>
 <translation id="5997247540087773573">系統發現您剛才使用的密碼因資料外洩而被洩露。為確保帳戶安全,「Google 密碼管理工具」建議您立即變更密碼,並檢查已儲存的密碼。</translation>
 <translation id="6000758707621254961">有 <ph name="RESULT_COUNT" /> 個同「<ph name="SEARCH_TEXT" />」相關嘅搜尋結果</translation>
 <translation id="6005765687956866568">已經由表格清除咗自動填入嘅資料</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 027ed0b..39a457ba 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -2017,7 +2017,6 @@
 <translation id="5992691462791905444">大小彈簧摺</translation>
 <translation id="5992805036496113940">查看系統用於放送廣告的資訊</translation>
 <translation id="5995727681868049093">管理 Google 帳戶的資訊、隱私權和安全性</translation>
-<translation id="5996887213716993070">「<ph name="FIELD" />」不得留空</translation>
 <translation id="5997247540087773573">你剛才使用的密碼已在資料侵害事件中遭到外洩。為確保帳戶安全,Google 密碼管理員建議你立即變更這組密碼,並檢查已儲存的密碼。</translation>
 <translation id="6000758707621254961">有 <ph name="RESULT_COUNT" /> 個與「<ph name="SEARCH_TEXT" />」相符的搜尋結果</translation>
 <translation id="6005765687956866568">已清除表單中自動填入的資訊</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index 4e31276..cf054db 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -2015,7 +2015,6 @@
 <translation id="5992691462791905444">I-Engineering Z-fold</translation>
 <translation id="5992805036496113940">Bona ulwazi olusetshenziselwa ukukubonisa izikhangiso</translation>
 <translation id="5995727681868049093">Phatha ulwazi lwakho, ubumfihlo, nokuvikeleka Ku-akhawunti yakho ye-Google</translation>
-<translation id="5996887213716993070">I-<ph name="FIELD" /> ayikwazi ukungabi nalutho</translation>
 <translation id="5997247540087773573">Iphasiwedi osanda kuyisebenzisa itholakele ekwephuleni isivumelwano sedatha. Ukuze uvikele ama-akhawunti akho, Umphathi Wephasiwedi Ye-Google uncoma ukuthi uyishintshe manje futhi uhlole amaphasiwedi akho alondoloziwe.</translation>
 <translation id="6000758707621254961">imiphumela engu-<ph name="RESULT_COUNT" /> ye-'<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6005765687956866568">Ulwazi olugcwaliswe ngokuzenzakalela lusuliwe efomini</translation>
diff --git a/components/sync/driver/glue/sync_engine_impl.h b/components/sync/driver/glue/sync_engine_impl.h
index bdc0a41c..30e9ee6 100644
--- a/components/sync/driver/glue/sync_engine_impl.h
+++ b/components/sync/driver/glue/sync_engine_impl.h
@@ -204,8 +204,7 @@
 
   // The host which we serve (and are owned by). Set in Initialize() and nulled
   // out in StopSyncingForShutdown().
-  // DanglingUntriaged because it is assigned a DanglingUntriaged pointer.
-  raw_ptr<SyncEngineHost, DanglingUntriaged> host_ = nullptr;
+  raw_ptr<SyncEngineHost> host_ = nullptr;
 
   raw_ptr<invalidation::InvalidationService> invalidator_ = nullptr;
   bool invalidation_handler_registered_ = false;
diff --git a/components/sync/test/fake_sync_engine.h b/components/sync/test/fake_sync_engine.h
index 6bf1e85..16cc7f4 100644
--- a/components/sync/test/fake_sync_engine.h
+++ b/components/sync/test/fake_sync_engine.h
@@ -111,8 +111,7 @@
   const bool allow_init_completion_;
   const bool is_first_time_sync_configure_;
   const base::RepeatingClosure sync_transport_data_cleared_cb_;
-  // DanglingUntriaged because it is assigned a DanglingUntriaged pointer.
-  raw_ptr<SyncEngineHost, DanglingUntriaged> host_ = nullptr;
+  raw_ptr<SyncEngineHost> host_ = nullptr;
   bool initialized_ = false;
   const SyncStatus default_sync_status_;
   CoreAccountId authenticated_account_id_;
diff --git a/components/vector_icons/BUILD.gn b/components/vector_icons/BUILD.gn
index 5c30c884..959e1f8b 100644
--- a/components/vector_icons/BUILD.gn
+++ b/components/vector_icons/BUILD.gn
@@ -155,6 +155,7 @@
       "google_chrome/google_sites.icon",
       "google_chrome/google_slides.icon",
       "google_chrome/google_super_g.icon",
+      "google_chrome/page_insights.icon",
     ]
   }
 }
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 89c0f025..326cb4df 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -448,6 +448,7 @@
     "attribution_reporting/attribution_observer.h",
     "attribution_reporting/attribution_observer_types.cc",
     "attribution_reporting/attribution_observer_types.h",
+    "attribution_reporting/attribution_os_level_manager.h",
     "attribution_reporting/attribution_report.cc",
     "attribution_reporting/attribution_report.h",
     "attribution_reporting/attribution_report_network_sender.cc",
diff --git a/content/browser/attribution_reporting/attribution_manager_impl.cc b/content/browser/attribution_reporting/attribution_manager_impl.cc
index 03c7e68..6de8ab3 100644
--- a/content/browser/attribution_reporting/attribution_manager_impl.cc
+++ b/content/browser/attribution_reporting/attribution_manager_impl.cc
@@ -12,6 +12,7 @@
 #include "base/check.h"
 #include "base/check_op.h"
 #include "base/command_line.h"
+#include "base/feature_list.h"
 #include "base/functional/bind.h"
 #include "base/functional/callback.h"
 #include "base/functional/callback_helpers.h"
@@ -30,6 +31,7 @@
 #include "base/threading/thread_restrictions.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
+#include "build/buildflag.h"
 #include "components/attribution_reporting/os_support.mojom.h"
 #include "components/attribution_reporting/source_registration_error.mojom.h"
 #include "components/attribution_reporting/suitable_origin.h"
@@ -46,6 +48,7 @@
 #include "content/browser/attribution_reporting/attribution_metrics.h"
 #include "content/browser/attribution_reporting/attribution_observer.h"
 #include "content/browser/attribution_reporting/attribution_observer_types.h"
+#include "content/browser/attribution_reporting/attribution_os_level_manager.h"
 #include "content/browser/attribution_reporting/attribution_report.h"
 #include "content/browser/attribution_reporting/attribution_report_network_sender.h"
 #include "content/browser/attribution_reporting/attribution_report_sender.h"
@@ -70,6 +73,7 @@
 #include "content/public/common/content_switches.h"
 #include "storage/browser/quota/special_storage_policy.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
+#include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/common/storage_key/storage_key.h"
 #include "url/gurl.h"
 
@@ -485,10 +489,13 @@
   DCHECK(cookie_checker_);
   DCHECK(report_sender_);
 
+  if (base::FeatureList::IsEnabled(
+          blink::features::kAttributionReportingCrossAppWeb)) {
 #if BUILDFLAG(IS_ANDROID)
-  attribution_os_level_manager_ =
-      std::make_unique<AttributionOsLevelManagerAndroid>();
+    attribution_os_level_manager_ =
+        std::make_unique<AttributionOsLevelManagerAndroid>();
 #endif
+  }
 }
 
 AttributionManagerImpl::~AttributionManagerImpl() {
diff --git a/content/browser/attribution_reporting/attribution_manager_impl.h b/content/browser/attribution_reporting/attribution_manager_impl.h
index a51127f9..0f32902 100644
--- a/content/browser/attribution_reporting/attribution_manager_impl.h
+++ b/content/browser/attribution_reporting/attribution_manager_impl.h
@@ -18,7 +18,6 @@
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "base/threading/sequence_bound.h"
-#include "build/build_config.h"
 #include "components/attribution_reporting/os_support.mojom.h"
 #include "components/attribution_reporting/source_registration_error.mojom-forward.h"
 #include "content/browser/aggregation_service/aggregation_service.h"
@@ -53,16 +52,13 @@
 class AttributionCookieChecker;
 class AttributionDataHostManager;
 class AttributionDebugReport;
+class AttributionOsLevelManager;
 class AttributionStorage;
 class AttributionStorageDelegate;
 class CreateReportResult;
 class StoragePartitionImpl;
 class StoredSource;
 
-#if BUILDFLAG(IS_ANDROID)
-class AttributionOsLevelManagerAndroid;
-#endif
-
 struct GlobalRenderFrameHostId;
 struct SendResult;
 
@@ -316,10 +312,7 @@
 
   base::ObserverList<AttributionObserver> observers_;
 
-#if BUILDFLAG(IS_ANDROID)
-  std::unique_ptr<AttributionOsLevelManagerAndroid>
-      attribution_os_level_manager_;
-#endif
+  std::unique_ptr<AttributionOsLevelManager> attribution_os_level_manager_;
 
   base::WeakPtrFactory<AttributionManagerImpl> weak_factory_{this};
 };
diff --git a/content/browser/attribution_reporting/attribution_os_level_manager.h b/content/browser/attribution_reporting/attribution_os_level_manager.h
new file mode 100644
index 0000000..d269059
--- /dev/null
+++ b/content/browser/attribution_reporting/attribution_os_level_manager.h
@@ -0,0 +1,29 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_OS_LEVEL_MANAGER_H_
+#define CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_OS_LEVEL_MANAGER_H_
+
+class GURL;
+
+namespace url {
+class Origin;
+}  // namespace url
+
+namespace content {
+
+// Interface between the browser's Attribution Reporting implementation and the
+// operating system's.
+class AttributionOsLevelManager {
+ public:
+  virtual ~AttributionOsLevelManager() = default;
+
+  virtual void RegisterAttributionSource(const GURL& registration_url,
+                                         const url::Origin& top_level_origin,
+                                         bool is_debug_key_allowed) = 0;
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_OS_LEVEL_MANAGER_H_
diff --git a/content/browser/attribution_reporting/attribution_os_level_manager_android.h b/content/browser/attribution_reporting/attribution_os_level_manager_android.h
index 8ebd8b4..75dfc957 100644
--- a/content/browser/attribution_reporting/attribution_os_level_manager_android.h
+++ b/content/browser/attribution_reporting/attribution_os_level_manager_android.h
@@ -8,6 +8,7 @@
 #include <jni.h>
 
 #include "base/android/jni_android.h"
+#include "content/browser/attribution_reporting/attribution_os_level_manager.h"
 
 class GURL;
 
@@ -19,10 +20,10 @@
 
 // This class is responsible for communicating with java code to handle
 // registering events received on the web with Android.
-class AttributionOsLevelManagerAndroid {
+class AttributionOsLevelManagerAndroid : public AttributionOsLevelManager {
  public:
   AttributionOsLevelManagerAndroid();
-  ~AttributionOsLevelManagerAndroid();
+  ~AttributionOsLevelManagerAndroid() override;
 
   AttributionOsLevelManagerAndroid(const AttributionOsLevelManagerAndroid&) =
       delete;
@@ -35,7 +36,7 @@
 
   void RegisterAttributionSource(const GURL& registration_url,
                                  const url::Origin& top_level_origin,
-                                 bool is_debug_key_allowed);
+                                 bool is_debug_key_allowed) override;
 
  private:
   base::android::ScopedJavaGlobalRef<jobject> jobj_;
diff --git a/content/browser/back_forward_cache_no_store_browsertest.cc b/content/browser/back_forward_cache_no_store_browsertest.cc
index f179ae6..93239cd 100644
--- a/content/browser/back_forward_cache_no_store_browsertest.cc
+++ b/content/browser/back_forward_cache_no_store_browsertest.cc
@@ -11,6 +11,7 @@
 #include "content/browser/renderer_host/render_frame_host_impl.h"
 #include "content/browser/web_contents/web_contents_impl.h"
 #include "content/public/test/browser_test.h"
+#include "content/public/test/browser_test_utils.h"
 #include "content/public/test/content_browser_test_utils.h"
 #include "content/public/test/test_navigation_observer.h"
 #include "content/shell/browser/shell.h"
@@ -115,13 +116,11 @@
 IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTestAllowCacheControlNoStore,
                        PagesWithCacheControlNoStoreEnterBfcacheAndEvicted) {
   net::test_server::ControllableHttpResponse response(embedded_test_server(),
-                                                      "/main_document");
-  net::test_server::ControllableHttpResponse response2(embedded_test_server(),
-                                                       "/main_document");
+                                                      "/title1.html");
   ASSERT_TRUE(embedded_test_server()->Start());
 
-  GURL url_a(embedded_test_server()->GetURL("a.com", "/main_document"));
-  GURL url_b(embedded_test_server()->GetURL("b.com", "/title1.html"));
+  GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html"));
+  GURL url_b(embedded_test_server()->GetURL("b.com", "/title2.html"));
 
   // 1) Load the document and specify no-store for the main resource.
   TestNavigationObserver observer(web_contents());
@@ -138,12 +137,7 @@
   EXPECT_TRUE(rfh_a->IsInBackForwardCache());
 
   // 3) Go back. |rfh_a| should be evicted upon restoration.
-  TestNavigationObserver observer2(web_contents());
-  web_contents()->GetController().GoBack();
-  response2.WaitForRequest();
-  response2.Send(kResponseWithNoCache);
-  response2.Done();
-  observer2.Wait();
+  ASSERT_TRUE(HistoryGoBack(web_contents()));
 
   ExpectNotRestored({NotRestoredReason::kCacheControlNoStore}, {}, {}, {}, {},
                     FROM_HERE);
@@ -169,14 +163,12 @@
     BackForwardCacheBrowserTestAllowCacheControlNoStore,
     MAYBE_PagesWithCacheControlNoStoreCookieModifiedThroughJavaScript) {
   net::test_server::ControllableHttpResponse response(embedded_test_server(),
-                                                      "/main_document");
-  net::test_server::ControllableHttpResponse response2(embedded_test_server(),
-                                                       "/main_document");
+                                                      "/title1.html");
   ASSERT_TRUE(embedded_test_server()->Start());
 
-  GURL url_a(embedded_test_server()->GetURL("a.com", "/main_document"));
-  GURL url_a_2(embedded_test_server()->GetURL("a.com", "/title1.html"));
-  GURL url_b(embedded_test_server()->GetURL("b.com", "/title1.html"));
+  GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(embedded_test_server()->GetURL("a.com", "/title2.html"));
+  GURL url_b(embedded_test_server()->GetURL("b.com", "/title3.html"));
 
   Shell* tab_to_be_bfcached = shell();
   Shell* tab_to_modify_cookie = CreateBrowser();
@@ -207,12 +199,7 @@
   EXPECT_EQ("foo=baz", EvalJs(tab_to_modify_cookie, "document.cookie"));
 
   // 5) Go back. |rfh_a| should be evicted upon restoration.
-  TestNavigationObserver observer2(tab_to_be_bfcached->web_contents());
-  tab_to_be_bfcached->web_contents()->GetController().GoBack();
-  response2.WaitForRequest();
-  response2.Send(kResponseWithNoCache);
-  response2.Done();
-  observer2.Wait();
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
 
   EXPECT_EQ("foo=baz", EvalJs(tab_to_be_bfcached, "document.cookie"));
   ExpectNotRestored({NotRestoredReason::kCacheControlNoStoreCookieModified}, {},
@@ -309,14 +296,12 @@
     BackForwardCacheBrowserTestAllowCacheControlNoStore,
     MAYBE_PagesWithCacheControlNoStoreCookieModifiedThroughJavaScriptOnDifferentDomain) {
   net::test_server::ControllableHttpResponse response(embedded_test_server(),
-                                                      "/main_document");
-  net::test_server::ControllableHttpResponse response2(embedded_test_server(),
-                                                       "/main_document");
+                                                      "/title1.html");
   ASSERT_TRUE(embedded_test_server()->Start());
 
-  GURL url_a(embedded_test_server()->GetURL("a.com", "/main_document"));
-  GURL url_a_2(embedded_test_server()->GetURL("a.com", "/title1.html"));
-  GURL url_b(embedded_test_server()->GetURL("b.com", "/title1.html"));
+  GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(embedded_test_server()->GetURL("a.com", "/title2.html"));
+  GURL url_b(embedded_test_server()->GetURL("b.com", "/title3.html"));
 
   Shell* tab_to_be_bfcached = shell();
   Shell* tab_to_modify_cookie = CreateBrowser();
@@ -331,28 +316,18 @@
   observer.Wait();
   rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
 
-  // 2) Set a normal cookie from JavaScript.
-  EXPECT_TRUE(ExecJs(tab_to_be_bfcached, "document.cookie='foo=bar'"));
-  EXPECT_EQ("foo=bar", EvalJs(tab_to_be_bfcached, "document.cookie"));
-
-  // 3) Navigate away. |rfh_a| should enter bfcache.
+  // 2) Navigate away. |rfh_a| should enter bfcache.
   EXPECT_TRUE(NavigateToURL(tab_to_be_bfcached, url_b));
   EXPECT_TRUE(rfh_a->IsInBackForwardCache());
 
-  // 4) Navigate to b.com in |tab_to_modify_cookie| and modify cookie from
+  // 3) Navigate to b.com in |tab_to_modify_cookie| and modify cookie from
   // JavaScript.
   EXPECT_TRUE(NavigateToURL(tab_to_modify_cookie, url_b));
   EXPECT_TRUE(ExecJs(tab_to_modify_cookie, "document.cookie='foo=baz'"));
   EXPECT_EQ("foo=baz", EvalJs(tab_to_modify_cookie, "document.cookie"));
 
-  // 5) Go back. |rfh_a| should be evicted upon restoration.
-  TestNavigationObserver observer2(tab_to_be_bfcached->web_contents());
-  tab_to_be_bfcached->web_contents()->GetController().GoBack();
-  response2.WaitForRequest();
-  response2.Send(kResponseWithNoCache);
-  response2.Done();
-  observer2.Wait();
-  EXPECT_EQ("foo=bar", EvalJs(tab_to_be_bfcached, "document.cookie"));
+  // 4) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
 
   ExpectNotRestored({NotRestoredReason::kCacheControlNoStore}, {}, {}, {}, {},
                     FROM_HERE);
@@ -498,6 +473,14 @@
     "Cache-Control: no-store\r\n"
     "\r\n"
     "The server speaks HTTP!";
+
+const char kResponseWithNoCacheWithRedirectionWithHTTPOnlyCookie[] =
+    "HTTP/1.1 302 Moved Temporarily\r\n"
+    "Location: /redirected\r\n"
+    "Content-Type: text/html; charset=utf-8\r\n"
+    "Set-Cookie: foo=baz; Secure; HttpOnly;\r\n"
+    "Cache-Control: no-store\r\n"
+    "\r\n";
 }  // namespace
 
 // TODO(crbug.com/1336055): It may be possible to re-enable this test now that
@@ -521,14 +504,12 @@
     BackForwardCacheBrowserTestAllowCacheControlNoStore,
     MAYBE_PagesWithCacheControlNoStoreSetFromResponseHeader) {
   net::test_server::ControllableHttpResponse response(embedded_test_server(),
-                                                      "/main_document");
-  net::test_server::ControllableHttpResponse response2(embedded_test_server(),
-                                                       "/main_document");
+                                                      "/title1.html");
   ASSERT_TRUE(embedded_test_server()->Start());
 
-  GURL url_a(embedded_test_server()->GetURL("a.com", "/main_document"));
-  GURL url_a_2(embedded_test_server()->GetURL("a.com", "/title1.html"));
-  GURL url_b(embedded_test_server()->GetURL("b.com", "/title1.html"));
+  GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(embedded_test_server()->GetURL("a.com", "/title2.html"));
+  GURL url_b(embedded_test_server()->GetURL("b.com", "/title3.html"));
 
   Shell* tab_to_be_bfcached = shell();
   Shell* tab_to_modify_cookie = CreateBrowser();
@@ -556,14 +537,7 @@
   EXPECT_EQ("foo=baz", EvalJs(tab_to_modify_cookie, "document.cookie"));
 
   // 4) Go back. |rfh_a| should be evicted upon restoration.
-  TestNavigationObserver observer2(tab_to_be_bfcached->web_contents());
-  tab_to_be_bfcached->web_contents()->GetController().GoBack();
-  response2.WaitForRequest();
-  // Send the response without the cookie header to avoid overwriting the
-  // cookie.
-  response2.Send(kResponseWithNoCache);
-  response2.Done();
-  observer2.Wait();
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
   EXPECT_EQ("foo=baz", EvalJs(tab_to_be_bfcached, "document.cookie"));
   ExpectNotRestored({NotRestoredReason::kCacheControlNoStoreCookieModified}, {},
                     {}, {}, {}, FROM_HERE);
@@ -593,16 +567,14 @@
   // HTTPOnly cookie can be only set over HTTPS.
   CreateHttpsServer();
   net::test_server::ControllableHttpResponse response(https_server(),
-                                                      "/main_document");
+                                                      "/title1.html");
   net::test_server::ControllableHttpResponse response2(https_server(),
-                                                       "/main_document2");
-  net::test_server::ControllableHttpResponse response3(https_server(),
-                                                       "/main_document");
+                                                       "/title2.html");
   ASSERT_TRUE(https_server()->Start());
 
-  GURL url_a(https_server()->GetURL("a.com", "/main_document"));
-  GURL url_a_2(https_server()->GetURL("a.com", "/main_document2"));
-  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(https_server()->GetURL("a.com", "/title2.html"));
+  GURL url_b(https_server()->GetURL("b.com", "/title3.html"));
 
   Shell* tab_to_be_bfcached = shell();
   Shell* tab_to_modify_cookie = CreateBrowser();
@@ -633,12 +605,7 @@
   observer2.Wait();
 
   // 4) Go back. |rfh_a| should be evicted upon restoration.
-  TestNavigationObserver observer3(tab_to_be_bfcached->web_contents());
-  tab_to_be_bfcached->web_contents()->GetController().GoBack();
-  response3.WaitForRequest();
-  response3.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
-  response3.Done();
-  observer3.Wait();
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
   ExpectNotRestored(
       {NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified}, {}, {},
       {}, {}, FROM_HERE);
@@ -659,18 +626,16 @@
     PagesWithCacheControlNoStoreHTTPOnlyCookieModifiedBackTwice) {
   CreateHttpsServer();
   net::test_server::ControllableHttpResponse response(https_server(),
-                                                      "/main_document");
+                                                      "/title1.html");
   net::test_server::ControllableHttpResponse response2(https_server(),
-                                                       "/main_document2");
+                                                       "/title2.html");
   net::test_server::ControllableHttpResponse response3(https_server(),
-                                                       "/main_document");
-  net::test_server::ControllableHttpResponse response4(https_server(),
-                                                       "/main_document");
+                                                       "/title1.html");
   ASSERT_TRUE(https_server()->Start());
 
-  GURL url_a(https_server()->GetURL("a.com", "/main_document"));
-  GURL url_a_2(https_server()->GetURL("a.com", "/main_document2"));
-  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(https_server()->GetURL("a.com", "/title2.html"));
+  GURL url_b(https_server()->GetURL("b.com", "/title3.html"));
 
   Shell* tab_to_be_bfcached = shell();
   Shell* tab_to_modify_cookie = CreateBrowser();
@@ -725,12 +690,7 @@
 
   // 6) Navigate back to a.com. This time the cookie change has to be reset and
   // gets evicted with a different reason.
-  TestNavigationObserver observer4(tab_to_be_bfcached->web_contents());
-  tab_to_be_bfcached->web_contents()->GetController().GoBack();
-  response4.WaitForRequest();
-  response4.Send(kResponseWithNoCache);
-  response4.Done();
-  observer4.Wait();
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
   ExpectNotRestored({NotRestoredReason::kCacheControlNoStore}, {}, {}, {}, {},
                     FROM_HERE);
   EXPECT_THAT(GetTreeResult()->GetDocumentResult(),
@@ -1036,8 +996,6 @@
     PagesWithCacheControlNoStoreRestoreFromBackForwardCache) {
   net::test_server::ControllableHttpResponse response(embedded_test_server(),
                                                       "/main_document");
-  net::test_server::ControllableHttpResponse response2(embedded_test_server(),
-                                                       "/main_document");
   ASSERT_TRUE(embedded_test_server()->Start());
 
   GURL url_a(embedded_test_server()->GetURL("a.com", "/main_document"));
@@ -1099,13 +1057,11 @@
     BackForwardCacheBrowserTestRestoreCacheControlNoStoreUnlessCookieChange,
     PagesWithCacheControlNoStoreEvictedIfCookieChange) {
   net::test_server::ControllableHttpResponse response(embedded_test_server(),
-                                                      "/main_document");
-  net::test_server::ControllableHttpResponse response2(embedded_test_server(),
-                                                       "/main_document");
+                                                      "/title1.html");
   ASSERT_TRUE(embedded_test_server()->Start());
 
-  GURL url_a(embedded_test_server()->GetURL("a.com", "/main_document"));
-  GURL url_a_2(embedded_test_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(embedded_test_server()->GetURL("a.com", "/title2.html"));
   GURL url_b(embedded_test_server()->GetURL("b.com", "/title1.html"));
 
   Shell* tab_to_be_bfcached = shell();
@@ -1121,28 +1077,18 @@
   observer.Wait();
   rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
 
-  // 2) Set a normal cookie from JavaScript.
-  EXPECT_TRUE(ExecJs(tab_to_be_bfcached, "document.cookie='foo=bar'"));
-  EXPECT_EQ("foo=bar", EvalJs(tab_to_be_bfcached, "document.cookie"));
-
-  // 3) Navigate away. |rfh_a| should enter bfcache.
+  // 2) Navigate away. |rfh_a| should enter bfcache.
   EXPECT_TRUE(NavigateToURL(tab_to_be_bfcached, url_b));
   EXPECT_TRUE(rfh_a->IsInBackForwardCache());
 
-  // 4) Navigate to a.com in |tab_to_modify_cookie| and modify cookie from
+  // 3) Navigate to a.com in |tab_to_modify_cookie| and modify cookie from
   // JavaScript.
   EXPECT_TRUE(NavigateToURL(tab_to_modify_cookie, url_a_2));
-  EXPECT_EQ("foo=bar", EvalJs(tab_to_modify_cookie, "document.cookie"));
   EXPECT_TRUE(ExecJs(tab_to_modify_cookie, "document.cookie='foo=baz'"));
   EXPECT_EQ("foo=baz", EvalJs(tab_to_modify_cookie, "document.cookie"));
 
-  // 5) Go back. |rfh_a| should be evicted upon restoration.
-  TestNavigationObserver observer2(tab_to_be_bfcached->web_contents());
-  tab_to_be_bfcached->web_contents()->GetController().GoBack();
-  response2.WaitForRequest();
-  response2.Send(kResponseWithNoCache);
-  response2.Done();
-  observer2.Wait();
+  // 4) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
 
   EXPECT_EQ("foo=baz", EvalJs(tab_to_be_bfcached, "document.cookie"));
   ExpectNotRestored({NotRestoredReason::kCacheControlNoStoreCookieModified}, {},
@@ -1162,15 +1108,13 @@
     PagesWithCacheControlNoStoreEvictedWithBothCookieReasons) {
   CreateHttpsServer();
   net::test_server::ControllableHttpResponse response(https_server(),
-                                                      "/main_document");
+                                                      "/title1.html");
   net::test_server::ControllableHttpResponse response2(https_server(),
-                                                       "/main_document2");
-  net::test_server::ControllableHttpResponse response3(https_server(),
-                                                       "/main_document");
+                                                       "/title2.html");
   ASSERT_TRUE(https_server()->Start());
 
-  GURL url_a(https_server()->GetURL("a.com", "/main_document"));
-  GURL url_a_2(https_server()->GetURL("a.com", "/main_document2"));
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(https_server()->GetURL("a.com", "/title2.html"));
   GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
 
   Shell* tab_to_be_bfcached = shell();
@@ -1181,7 +1125,7 @@
   tab_to_be_bfcached->LoadURL(url_a);
   RenderFrameHostImplWrapper rfh_a(current_frame_host());
   response.WaitForRequest();
-  response.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
+  response.Send(kResponseWithNoCache);
   response.Done();
   observer.Wait();
   rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
@@ -1202,12 +1146,7 @@
   observer2.Wait();
 
   // 4) Go back. |rfh_a| should be evicted upon restoration.
-  TestNavigationObserver observer3(tab_to_be_bfcached->web_contents());
-  tab_to_be_bfcached->web_contents()->GetController().GoBack();
-  response3.WaitForRequest();
-  response3.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
-  response3.Done();
-  observer3.Wait();
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
   ExpectNotRestored(
       {NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified}, {}, {},
       {}, {}, FROM_HERE);
@@ -1219,6 +1158,276 @@
           BlockListedFeatures()));
 }
 
+// Test that a page with cache-control:no-store gets evicted if a cookie is set
+// when the page is loaded.
+IN_PROC_BROWSER_TEST_F(
+    BackForwardCacheBrowserTestRestoreCacheControlNoStoreUnlessCookieChange,
+    PagesWithCacheControlNoStoreNotBFCachedWithCookieSetInResponse) {
+  CreateHttpsServer();
+  net::test_server::ControllableHttpResponse response(https_server(),
+                                                      "/title1.html");
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+
+  // 1) Load the document and specify no-store for the main resource, the
+  // response also sets a cookie.
+  TestNavigationObserver observer(web_contents());
+  shell()->LoadURL(url_a);
+  RenderFrameHostImplWrapper rfh_a(current_frame_host());
+  response.WaitForRequest();
+  response.Send(kResponseWithNoCacheWithCookie);
+  response.Done();
+  observer.Wait();
+  rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
+
+  // 2) Navigate away. |rfh_a| should enter the bfcache since we only evict
+  // before restoration.
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 3) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(web_contents()));
+  ExpectNotRestored({NotRestoredReason::kCacheControlNoStoreCookieModified}, {},
+                    {}, {}, {}, FROM_HERE);
+  EXPECT_THAT(GetTreeResult()->GetDocumentResult(),
+              MatchesDocumentResult(
+                  NotRestoredReasons(
+                      NotRestoredReason::kCacheControlNoStoreCookieModified),
+                  BlockListedFeatures()));
+}
+
+// Test that a page with `Cache-control: no-store` header gets evicted if some
+// cookie is modified while the server receives the request but has not
+// completed the response yet.
+IN_PROC_BROWSER_TEST_F(
+    BackForwardCacheBrowserTestRestoreCacheControlNoStoreUnlessCookieChange,
+    PagesWithCacheControlNoStoreNotBFCachedWithCookieSetAfterRequestIsMade) {
+  CreateHttpsServer();
+  net::test_server::ControllableHttpResponse response(https_server(),
+                                                      "/title1.html");
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(https_server()->GetURL("a.com", "/title2.html"));
+  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+
+  Shell* tab_to_be_bfcached = shell();
+  Shell* tab_to_modify_cookie = CreateBrowser();
+
+  // 1) Load the document and specify no-store for the main resource.
+  TestNavigationObserver observer(tab_to_be_bfcached->web_contents());
+  tab_to_be_bfcached->LoadURL(url_a);
+  RenderFrameHostImplWrapper rfh_a(current_frame_host());
+
+  // 2) Before the response is sent, set a cookie from another tab.
+  EXPECT_TRUE(NavigateToURL(tab_to_modify_cookie, url_a_2));
+  EXPECT_TRUE(ExecJs(tab_to_modify_cookie, "document.cookie='foo=bar'"));
+
+  response.WaitForRequest();
+  response.Send(kResponseWithNoCache);
+  response.Done();
+  observer.Wait();
+  rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
+  EXPECT_EQ("foo=bar", EvalJs(tab_to_be_bfcached, "document.cookie"));
+
+  // 3) Navigate away. |rfh_a| should enter the bfcache since we only evict
+  // before restoration.
+  EXPECT_TRUE(NavigateToURL(tab_to_be_bfcached, url_b));
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 4) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
+  ExpectNotRestored({NotRestoredReason::kCacheControlNoStoreCookieModified}, {},
+                    {}, {}, {}, FROM_HERE);
+  EXPECT_THAT(GetTreeResult()->GetDocumentResult(),
+              MatchesDocumentResult(
+                  NotRestoredReasons(
+                      NotRestoredReason::kCacheControlNoStoreCookieModified),
+                  BlockListedFeatures()));
+}
+
+// Test that a page with cache-control:no-store gets evicted if some cookie is
+// modified before navigating away.
+IN_PROC_BROWSER_TEST_F(
+    BackForwardCacheBrowserTestRestoreCacheControlNoStoreUnlessCookieChange,
+    PagesWithCacheControlNoStoreNotBFCachedWithCookieSetBeforeNavigateAway) {
+  CreateHttpsServer();
+  net::test_server::ControllableHttpResponse response(https_server(),
+                                                      "/title1.html");
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+
+  // 1) Load the document and specify no-store for the main resource.
+  TestNavigationObserver observer(web_contents());
+  shell()->LoadURL(url_a);
+  RenderFrameHostImplWrapper rfh_a(current_frame_host());
+  response.WaitForRequest();
+  response.Send(kResponseWithNoCache);
+  response.Done();
+  observer.Wait();
+  rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
+
+  // 2) Set a cookie from JavaScript.
+  EXPECT_TRUE(ExecJs(web_contents(), "document.cookie='foo=bar'"));
+  EXPECT_EQ("foo=bar", EvalJs(web_contents(), "document.cookie"));
+
+  // 3) Navigate away. |rfh_a| should enter the bfcache since we only evict
+  // before restoration.
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 4) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(web_contents()));
+  ExpectNotRestored({NotRestoredReason::kCacheControlNoStoreCookieModified}, {},
+                    {}, {}, {}, FROM_HERE);
+  EXPECT_THAT(GetTreeResult()->GetDocumentResult(),
+              MatchesDocumentResult(
+                  NotRestoredReasons(
+                      NotRestoredReason::kCacheControlNoStoreCookieModified),
+                  BlockListedFeatures()));
+}
+
+// Test that a page with cache-control:no-store gets evicted if some cookie is
+// modified from another tab before navigating away.
+IN_PROC_BROWSER_TEST_F(
+    BackForwardCacheBrowserTestRestoreCacheControlNoStoreUnlessCookieChange,
+    PagesWithCacheControlNoStoreNotBFCachedWithCookieSetFromAnotherTabBeforeNavigateAway) {
+  CreateHttpsServer();
+  net::test_server::ControllableHttpResponse response(https_server(),
+                                                      "/title1.html");
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(https_server()->GetURL("a.com", "/title2.html"));
+  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+
+  Shell* tab_to_be_bfcached = shell();
+  Shell* tab_to_modify_cookie = CreateBrowser();
+
+  // 1) Load the document and specify no-store for the main resource.
+  TestNavigationObserver observer(tab_to_be_bfcached->web_contents());
+  tab_to_be_bfcached->LoadURL(url_a);
+  RenderFrameHostImplWrapper rfh_a(current_frame_host());
+  response.WaitForRequest();
+  response.Send(kResponseWithNoCache);
+  response.Done();
+  observer.Wait();
+  rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
+
+  // 2) Set a cookie from another tab.
+  EXPECT_TRUE(NavigateToURL(tab_to_modify_cookie, url_a_2));
+  EXPECT_TRUE(ExecJs(tab_to_modify_cookie, "document.cookie='foo=bar'"));
+  EXPECT_EQ("foo=bar", EvalJs(tab_to_be_bfcached, "document.cookie"));
+
+  // 3) Navigate away. |rfh_a| should enter the bfcache since we only evict
+  // before restoration.
+  EXPECT_TRUE(NavigateToURL(tab_to_be_bfcached, url_b));
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 4) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
+  ExpectNotRestored({NotRestoredReason::kCacheControlNoStoreCookieModified}, {},
+                    {}, {}, {}, FROM_HERE);
+  EXPECT_THAT(GetTreeResult()->GetDocumentResult(),
+              MatchesDocumentResult(
+                  NotRestoredReasons(
+                      NotRestoredReason::kCacheControlNoStoreCookieModified),
+                  BlockListedFeatures()));
+}
+
+// Test that a page with cache-control:no-store gets restored if the cookie is
+// modified by another tab before the navigation completes.
+IN_PROC_BROWSER_TEST_F(
+    BackForwardCacheBrowserTestRestoreCacheControlNoStoreUnlessCookieChange,
+    PagesWithCacheControlNoStoreRestoredIfCookieChangeIsMadeBeforeRedirection) {
+  CreateHttpsServer();
+  net::test_server::ControllableHttpResponse response(https_server(),
+                                                      "/main_document");
+  net::test_server::ControllableHttpResponse response2(https_server(),
+                                                       "/redirected");
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url_a(https_server()->GetURL("a.com", "/main_document"));
+  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+
+  // 1) Load the document that will be redirected to another document.
+  // Both of the documents specify the cache-control:no-store, but only the
+  // document before redirection sets cookie.
+  TestNavigationObserver observer(web_contents());
+  shell()->LoadURL(url_a);
+  RenderFrameHostImplWrapper rfh_a(current_frame_host());
+  response.WaitForRequest();
+  response.Send(kResponseWithNoCacheWithRedirectionWithHTTPOnlyCookie);
+  response.Done();
+  response2.WaitForRequest();
+  response2.Send(kResponseWithNoCache);
+  response2.Done();
+  observer.Wait();
+  rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
+
+  // 2) Navigate away. |rfh_a| should enter bfcache.
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 3) Go back. |rfh_a| should be restored from BFCache.
+  ASSERT_TRUE(HistoryGoBack(web_contents()));
+  ExpectRestored(FROM_HERE);
+}
+
+// Test that the cookie change information is retained after same document
+// navigation.
+IN_PROC_BROWSER_TEST_F(
+    BackForwardCacheBrowserTestRestoreCacheControlNoStoreUnlessCookieChange,
+    PagesWithCacheControlNoStoreNotBFCachedWithCookieSetBeforeSameDocumentNavigation) {
+  CreateHttpsServer();
+  net::test_server::ControllableHttpResponse response(https_server(),
+                                                      "/title1.html");
+
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a2(https_server()->GetURL("a.com", "/title1.html#foo"));
+  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+
+  // 1) Load the document and specify no-store for the main resource.
+  TestNavigationObserver observer(web_contents());
+  shell()->LoadURL(url_a);
+  RenderFrameHostImplWrapper rfh_a(current_frame_host());
+  response.WaitForRequest();
+  response.Send(kResponseWithNoCache);
+  response.Done();
+  observer.Wait();
+  rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
+
+  // 2) Set a cookie from JavaScript, and perform a same document navigation.
+  EXPECT_TRUE(ExecJs(web_contents(), "document.cookie='foo=bar'"));
+  EXPECT_EQ("foo=bar", EvalJs(web_contents(), "document.cookie"));
+  EXPECT_TRUE(ExecJs(shell(), JsReplace("location = $1", url_a2.spec())));
+  EXPECT_TRUE(WaitForLoadStop(web_contents()));
+  EXPECT_EQ(url_a2,
+            web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL());
+  EXPECT_TRUE(rfh_a->IsActive());
+
+  // 3) Navigate away. |rfh_a| should enter the bfcache since we only evict
+  // before restoration.
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 4) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(web_contents()));
+  ExpectNotRestored({NotRestoredReason::kCacheControlNoStoreCookieModified}, {},
+                    {}, {}, {}, FROM_HERE);
+  EXPECT_THAT(GetTreeResult()->GetDocumentResult(),
+              MatchesDocumentResult(
+                  NotRestoredReasons(
+                      NotRestoredReason::kCacheControlNoStoreCookieModified),
+                  BlockListedFeatures()));
+}
+
 class BackForwardCacheBrowserTestRestoreUnlessHTTPOnlyCookieChange
     : public BackForwardCacheBrowserTest {
  protected:
@@ -1283,22 +1492,17 @@
   EXPECT_TRUE(NavigateToURL(tab_to_be_bfcached, url_a));
   RenderFrameHostImplWrapper rfh_a(current_frame_host());
 
-  // 2) Set a normal cookie from JavaScript.
-  EXPECT_TRUE(ExecJs(tab_to_be_bfcached, "document.cookie='foo=bar'"));
-  EXPECT_EQ("foo=bar", EvalJs(tab_to_be_bfcached, "document.cookie"));
-
-  // 3) Navigate away. |rfh_a| should enter bfcache.
+  // 2) Navigate away. |rfh_a| should enter bfcache.
   EXPECT_TRUE(NavigateToURL(tab_to_be_bfcached, url_b));
   EXPECT_TRUE(rfh_a->IsInBackForwardCache());
 
-  // 4) Navigate to a.com in |tab_to_modify_cookie| and modify cookie from
+  // 3) Navigate to a.com in |tab_to_modify_cookie| and modify cookie from
   // JavaScript.
   EXPECT_TRUE(NavigateToURL(tab_to_modify_cookie, url_a));
-  EXPECT_EQ("foo=bar", EvalJs(tab_to_modify_cookie, "document.cookie"));
   EXPECT_TRUE(ExecJs(tab_to_modify_cookie, "document.cookie='foo=baz'"));
   EXPECT_EQ("foo=baz", EvalJs(tab_to_modify_cookie, "document.cookie"));
 
-  // 5) Go back. |rfh_a| should be restored from bfcache.
+  // 4) Go back. |rfh_a| should be restored from bfcache.
   ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
 
   EXPECT_EQ("foo=baz", EvalJs(tab_to_be_bfcached, "document.cookie"));
@@ -1312,15 +1516,13 @@
     PagesWithCacheControlNoStoreEvictedIfHTTPOnlyCookieChange) {
   CreateHttpsServer();
   net::test_server::ControllableHttpResponse response(https_server(),
-                                                      "/main_document");
+                                                      "/title1.html");
   net::test_server::ControllableHttpResponse response2(https_server(),
-                                                       "/main_document2");
-  net::test_server::ControllableHttpResponse response3(https_server(),
-                                                       "/main_document");
+                                                       "/title2.html");
   ASSERT_TRUE(https_server()->Start());
 
-  GURL url_a(https_server()->GetURL("a.com", "/main_document"));
-  GURL url_a_2(https_server()->GetURL("a.com", "/main_document2"));
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(https_server()->GetURL("a.com", "/title2.html"));
   GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
 
   Shell* tab_to_be_bfcached = shell();
@@ -1331,7 +1533,7 @@
   tab_to_be_bfcached->LoadURL(url_a);
   RenderFrameHostImplWrapper rfh_a(current_frame_host());
   response.WaitForRequest();
-  response.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
+  response.Send(kResponseWithNoCache);
   response.Done();
   observer.Wait();
   rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
@@ -1350,12 +1552,7 @@
   observer2.Wait();
 
   // 4) Go back. |rfh_a| should be evicted upon restoration.
-  TestNavigationObserver observer3(tab_to_be_bfcached->web_contents());
-  tab_to_be_bfcached->web_contents()->GetController().GoBack();
-  response3.WaitForRequest();
-  response3.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
-  response3.Done();
-  observer3.Wait();
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
   ExpectNotRestored(
       {NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified}, {}, {},
       {}, {}, FROM_HERE);
@@ -1374,15 +1571,13 @@
     PagesWithCacheControlNoStoreEvictedIfJSAndHTTPOnlyCookieChange) {
   CreateHttpsServer();
   net::test_server::ControllableHttpResponse response(https_server(),
-                                                      "/main_document");
+                                                      "/title1.html");
   net::test_server::ControllableHttpResponse response2(https_server(),
-                                                       "/main_document2");
-  net::test_server::ControllableHttpResponse response3(https_server(),
-                                                       "/main_document");
+                                                       "/title2.html");
   ASSERT_TRUE(https_server()->Start());
 
-  GURL url_a(https_server()->GetURL("a.com", "/main_document"));
-  GURL url_a_2(https_server()->GetURL("a.com", "/main_document2"));
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(https_server()->GetURL("a.com", "/title2.html"));
   GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
 
   Shell* tab_to_be_bfcached = shell();
@@ -1393,7 +1588,7 @@
   tab_to_be_bfcached->LoadURL(url_a);
   RenderFrameHostImplWrapper rfh_a(current_frame_host());
   response.WaitForRequest();
-  response.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
+  response.Send(kResponseWithNoCache);
   response.Done();
   observer.Wait();
   rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
@@ -1414,12 +1609,155 @@
   observer2.Wait();
 
   // 4) Go back. |rfh_a| should be evicted upon restoration.
-  TestNavigationObserver observer3(tab_to_be_bfcached->web_contents());
-  tab_to_be_bfcached->web_contents()->GetController().GoBack();
-  response3.WaitForRequest();
-  response3.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
-  response3.Done();
-  observer3.Wait();
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
+  ExpectNotRestored(
+      {NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified}, {}, {},
+      {}, {}, FROM_HERE);
+  EXPECT_THAT(
+      GetTreeResult()->GetDocumentResult(),
+      MatchesDocumentResult(
+          NotRestoredReasons(
+              NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified),
+          BlockListedFeatures()));
+}
+
+// Test that a page with cache-control:no-store gets evicted if an HTTPOnly
+// cookie is set when the page is loaded.
+IN_PROC_BROWSER_TEST_F(
+    BackForwardCacheBrowserTestRestoreUnlessHTTPOnlyCookieChange,
+    PagesWithCacheControlNoStoreNotBFCachedWithHTTPOnlyCookieSetInResponse) {
+  CreateHttpsServer();
+  net::test_server::ControllableHttpResponse response(https_server(),
+                                                      "/title1.html");
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+
+  // 1) Load the document and specify no-store for the main resource, the
+  // response also sets a cookie.
+  TestNavigationObserver observer(web_contents());
+  shell()->LoadURL(url_a);
+  RenderFrameHostImplWrapper rfh_a(current_frame_host());
+  response.WaitForRequest();
+  response.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
+  response.Done();
+  observer.Wait();
+  rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
+
+  // 2) Navigate away. |rfh_a| should enter the bfcache since we only evict
+  // before restoration.
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 3) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(web_contents()));
+  ExpectNotRestored(
+      {NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified}, {}, {},
+      {}, {}, FROM_HERE);
+  EXPECT_THAT(
+      GetTreeResult()->GetDocumentResult(),
+      MatchesDocumentResult(
+          NotRestoredReasons(
+              NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified),
+          BlockListedFeatures()));
+}
+
+// Test that a page with cache-control:no-store gets evicted if some HTTPOnly
+// cookie is modified from another tab before navigating away.
+IN_PROC_BROWSER_TEST_F(
+    BackForwardCacheBrowserTestRestoreUnlessHTTPOnlyCookieChange,
+    PagesWithCacheControlNoStoreNotBFCachedWithHTTPOnlyCookieSetFromAnotherTabBeforeNavigateAway) {
+  CreateHttpsServer();
+  net::test_server::ControllableHttpResponse response(https_server(),
+                                                      "/title1.html");
+  net::test_server::ControllableHttpResponse response2(https_server(),
+                                                       "/title2.html");
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a_2(https_server()->GetURL("a.com", "/title2.html"));
+  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+
+  Shell* tab_to_be_bfcached = shell();
+  Shell* tab_to_modify_cookie = CreateBrowser();
+
+  // 1) Load the document and specify no-store for the main resource.
+  TestNavigationObserver observer(tab_to_be_bfcached->web_contents());
+  tab_to_be_bfcached->LoadURL(url_a);
+  RenderFrameHostImplWrapper rfh_a(current_frame_host());
+  response.WaitForRequest();
+  response.Send(kResponseWithNoCache);
+  response.Done();
+  observer.Wait();
+  rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
+
+  // 2) Set an HTTPOnly cookie from another tab.
+  TestNavigationObserver observer2(tab_to_modify_cookie->web_contents());
+  tab_to_modify_cookie->LoadURL(url_a_2);
+  response2.WaitForRequest();
+  response2.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
+  response2.Done();
+  observer2.Wait();
+
+  // 3) Navigate away. |rfh_a| should enter the bfcache since we only evict
+  // before restoration.
+  EXPECT_TRUE(NavigateToURL(tab_to_be_bfcached, url_b));
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 4) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(tab_to_be_bfcached->web_contents()));
+  ExpectNotRestored(
+      {NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified}, {}, {},
+      {}, {}, FROM_HERE);
+  EXPECT_THAT(
+      GetTreeResult()->GetDocumentResult(),
+      MatchesDocumentResult(
+          NotRestoredReasons(
+              NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified),
+          BlockListedFeatures()));
+}
+
+// Test that the cookie change information is retained after same document
+// navigation.
+IN_PROC_BROWSER_TEST_F(
+    BackForwardCacheBrowserTestRestoreUnlessHTTPOnlyCookieChange,
+    PagesWithCacheControlNoStoreNotBFCachedWithHTTPOnlyCookieSetBeforeSameDocumentNavigation) {
+  CreateHttpsServer();
+  net::test_server::ControllableHttpResponse response(https_server(),
+                                                      "/title1.html");
+
+  ASSERT_TRUE(https_server()->Start());
+
+  GURL url_a(https_server()->GetURL("a.com", "/title1.html"));
+  GURL url_a2(https_server()->GetURL("a.com", "/title1.html#foo"));
+  GURL url_b(https_server()->GetURL("b.com", "/title1.html"));
+
+  // 1) Load the document and specify no-store for the main resource, the
+  // response also sets a cookie.
+  TestNavigationObserver observer(web_contents());
+  shell()->LoadURL(url_a);
+  RenderFrameHostImplWrapper rfh_a(current_frame_host());
+  response.WaitForRequest();
+  response.Send(kResponseWithNoCacheWithHTTPOnlyCookie);
+  response.Done();
+  observer.Wait();
+  rfh_a->GetBackForwardCacheMetrics()->SetObserverForTesting(this);
+
+  // 2) Perform a same document navigation.
+  EXPECT_TRUE(ExecJs(shell(), JsReplace("location = $1", url_a2.spec())));
+  EXPECT_TRUE(WaitForLoadStop(web_contents()));
+  EXPECT_EQ(url_a2,
+            web_contents()->GetPrimaryMainFrame()->GetLastCommittedURL());
+  EXPECT_TRUE(rfh_a->IsActive());
+
+  // 3) Navigate away. |rfh_a| should enter the bfcache since we only evict
+  // before restoration.
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 4) Go back. |rfh_a| should be evicted upon restoration.
+  ASSERT_TRUE(HistoryGoBack(web_contents()));
   ExpectNotRestored(
       {NotRestoredReason::kCacheControlNoStoreHTTPOnlyCookieModified}, {}, {},
       {}, {}, FROM_HERE);
diff --git a/content/browser/browsing_data/browsing_data_filter_builder_impl.cc b/content/browser/browsing_data/browsing_data_filter_builder_impl.cc
index e6dfcea4..24645658 100644
--- a/content/browser/browsing_data/browsing_data_filter_builder_impl.cc
+++ b/content/browser/browsing_data/browsing_data_filter_builder_impl.cc
@@ -11,6 +11,7 @@
 #include "base/functional/bind.h"
 #include "base/functional/callback.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "third_party/blink/public/common/storage_key/storage_key.h"
 
diff --git a/content/browser/browsing_data/browsing_data_filter_builder_impl_unittest.cc b/content/browser/browsing_data/browsing_data_filter_builder_impl_unittest.cc
index 47d040d..529523e 100644
--- a/content/browser/browsing_data/browsing_data_filter_builder_impl_unittest.cc
+++ b/content/browser/browsing_data/browsing_data_filter_builder_impl_unittest.cc
@@ -14,6 +14,7 @@
 #include "net/cookies/canonical_cookie.h"
 #include "net/cookies/cookie_deletion_info.h"
 #include "services/network/cookie_manager.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/content/browser/browsing_data/browsing_data_remover_impl.cc b/content/browser/browsing_data/browsing_data_remover_impl.cc
index 8a799c3..d10e26d6 100644
--- a/content/browser/browsing_data/browsing_data_remover_impl.cc
+++ b/content/browser/browsing_data/browsing_data_remover_impl.cc
@@ -40,6 +40,7 @@
 #include "content/public/common/content_features.h"
 #include "mojo/public/cpp/bindings/callback_helpers.h"
 #include "services/network/public/cpp/features.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "storage/browser/quota/special_storage_policy.h"
 #include "url/gurl.h"
diff --git a/content/browser/browsing_data/conditional_cache_deletion_helper_browsertest.cc b/content/browser/browsing_data/conditional_cache_deletion_helper_browsertest.cc
index e517768..17de110 100644
--- a/content/browser/browsing_data/conditional_cache_deletion_helper_browsertest.cc
+++ b/content/browser/browsing_data/conditional_cache_deletion_helper_browsertest.cc
@@ -27,6 +27,7 @@
 #include "net/disk_cache/disk_cache.h"
 #include "net/dns/mock_host_resolver.h"
 #include "net/http/http_cache.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 
 namespace content {
diff --git a/content/browser/direct_sockets/direct_sockets_tcp_browsertest.cc b/content/browser/direct_sockets/direct_sockets_tcp_browsertest.cc
index 425cb87d..25ccde33 100644
--- a/content/browser/direct_sockets/direct_sockets_tcp_browsertest.cc
+++ b/content/browser/direct_sockets/direct_sockets_tcp_browsertest.cc
@@ -20,6 +20,7 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/content_client.h"
 #include "content/public/common/content_features.h"
+#include "content/public/common/content_switches.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/content_browser_test.h"
@@ -34,6 +35,7 @@
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/host_resolver.mojom.h"
 #include "services/network/public/mojom/mdns_responder.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
@@ -279,6 +281,13 @@
     ASSERT_TRUE(NavigateToURL(shell(), GetTestPageURL()));
   }
 
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    // For TCPServerSocket support.
+    // TODO(crbug.com/1408140): remove after TCPServerSocket is fully supported.
+    command_line->AppendSwitchASCII(switches::kEnableBlinkFeatures,
+                                    "DirectSocketsExperimental");
+  }
+
   void SetUp() override {
     embedded_test_server()->AddDefaultHandlers(GetTestDataFilePath());
     ASSERT_TRUE(embedded_test_server()->Start());
@@ -610,4 +619,10 @@
               ::testing::HasSubstr("waitForClosedPromise succeeded."));
 }
 
+IN_PROC_BROWSER_TEST_F(DirectSocketsTcpBrowserTest, ExchangeTcpServer) {
+  ASSERT_THAT(EvalJs(shell(), "exchangeSingleTcpPacketBetweenClientAndServer()")
+                  .ExtractString(),
+              testing::HasSubstr("succeeded"));
+}
+
 }  // namespace content
diff --git a/content/browser/direct_sockets/direct_sockets_test_utils.cc b/content/browser/direct_sockets/direct_sockets_test_utils.cc
index 1f256fc..30be8634 100644
--- a/content/browser/direct_sockets/direct_sockets_test_utils.cc
+++ b/content/browser/direct_sockets/direct_sockets_test_utils.cc
@@ -12,6 +12,7 @@
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/web_contents_tester.h"
 #include "net/dns/host_resolver.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/udp_socket.mojom.h"
 #include "third_party/blink/public/common/permissions_policy/origin_with_possible_wildcards.h"
 #include "url/origin.h"
diff --git a/content/browser/network/split_cache_browsertest.cc b/content/browser/network/split_cache_browsertest.cc
index 55044c7..5a013e39 100644
--- a/content/browser/network/split_cache_browsertest.cc
+++ b/content/browser/network/split_cache_browsertest.cc
@@ -995,7 +995,8 @@
   base::test::ScopedFeatureList feature_list;
 };
 
-IN_PROC_BROWSER_TEST_F(ScopeBlinkMemoryCachePerContext, CheckFeature) {
+// TODO(crbug.com/1415276): Flaky on multiple platforms.
+IN_PROC_BROWSER_TEST_F(ScopeBlinkMemoryCachePerContext, DISABLED_CheckFeature) {
   base::HistogramTester histograms;
   EXPECT_TRUE(base::FeatureList::IsEnabled(
       blink::features::kScopeMemoryCachePerContext));
diff --git a/content/browser/picture_in_picture/document_picture_in_picture_window_controller_impl.cc b/content/browser/picture_in_picture/document_picture_in_picture_window_controller_impl.cc
index 632fcbab1..e86494b 100644
--- a/content/browser/picture_in_picture/document_picture_in_picture_window_controller_impl.cc
+++ b/content/browser/picture_in_picture/document_picture_in_picture_window_controller_impl.cc
@@ -11,6 +11,7 @@
 #include "content/browser/media/media_web_contents_observer.h"
 #include "content/browser/media/session/media_session_impl.h"
 #include "content/browser/picture_in_picture/picture_in_picture_session.h"
+#include "content/browser/renderer_host/navigation_request.h"
 #include "content/browser/web_contents/web_contents_impl.h"
 #include "content/public/browser/content_browser_client.h"
 #include "content/public/browser/navigation_handle.h"
@@ -205,20 +206,30 @@
 void DocumentPictureInPictureWindowControllerImpl::ChildContentsObserver::
     DidStartNavigation(NavigationHandle* navigation_handle) {
   // If we've already tried to close the window, then there's nothing to do.
-  if (!force_close_cb_)
+  if (!force_close_cb_) {
     return;
+  }
 
   // Only care if it's the root of the pip window.
-  if (!navigation_handle->IsInPrimaryMainFrame())
+  if (!navigation_handle->IsInPrimaryMainFrame()) {
     return;
+  }
 
   // History / etc. navigations are okay.
-  if (navigation_handle->IsSameDocument())
+  if (navigation_handle->IsSameDocument()) {
     return;
+  }
 
-  // about::blank is okay, since that's what it starts with.
-  if (navigation_handle->GetURL().IsAboutBlank())
+  // We allow the synchronous about:blank commit to succeed, since that is part
+  // of most initial navigations. Subsequent navigations to about:blank are
+  // treated like other navigations and close the window.
+  // `is_synchronous_renderer_commit()` will only be true for the initial
+  // about:blank navigation.
+  if (navigation_handle->GetURL().IsAboutBlank() &&
+      NavigationRequest::From(navigation_handle)
+          ->is_synchronous_renderer_commit()) {
     return;
+  }
 
   // Don't run `force_close_cb` from within the observer, since closing
   // `web_contents` is not allowed during an observer callback.
diff --git a/content/browser/renderer_host/back_forward_cache_impl.cc b/content/browser/renderer_host/back_forward_cache_impl.cc
index 882bed99..5b647c4 100644
--- a/content/browser/renderer_host/back_forward_cache_impl.cc
+++ b/content/browser/renderer_host/back_forward_cache_impl.cc
@@ -482,12 +482,7 @@
 }
 
 BackForwardCacheImpl::Entry::Entry(std::unique_ptr<StoredPage> stored_page)
-    : stored_page_(std::move(stored_page)) {
-  if (BackForwardCacheImpl::AllowStoringPagesWithCacheControlNoStore()) {
-    cookie_modified_ = {/*http_only_cookie_modified*/ false,
-                        /*cookie_modified*/ false};
-  }
-}
+    : stored_page_(std::move(stored_page)) {}
 
 BackForwardCacheImpl::Entry::~Entry() = default;
 
@@ -497,26 +492,6 @@
   dict.Add("render_frame_host", render_frame_host());
 }
 
-void BackForwardCacheImpl::Entry::StartMonitoringCookieChange() {
-  RenderFrameHostImpl* rfh = stored_page_->render_frame_host();
-  StoragePartition* storage_partition = rfh->GetStoragePartition();
-  auto* cookie_manager = storage_partition->GetCookieManagerForBrowserProcess();
-  if (!cookie_listener_receiver_.is_bound()) {
-    // Listening only to the main document's URL, not the documents inside the
-    // subframes.
-    cookie_manager->AddCookieChangeListener(
-        rfh->GetLastCommittedURL(), absl::nullopt,
-        cookie_listener_receiver_.BindNewPipeAndPassRemote());
-  }
-}
-
-void BackForwardCacheImpl::Entry::OnCookieChange(
-    const net::CookieChangeInfo& change) {
-  DCHECK(cookie_modified_.has_value());
-  cookie_modified_->http_only_cookie_modified = change.cookie.IsHttpOnly();
-  cookie_modified_->cookie_modified = true;
-}
-
 void BackForwardCacheImpl::RenderProcessBackgroundedChanged(
     RenderProcessHostImpl* host) {
   EnforceCacheSizeLimit();
@@ -630,20 +605,13 @@
     return;
   }
 
-  auto* matching_entry = FindMatchingEntry(render_frame_host->GetPage());
-  // |matching_entry| can be nullptr for tests because this can be called from
-  // |GetCurrentBackForwardCacheEligibility()|, at which point |rfh| may not
-  // have a matching entry yet.
-  if (!matching_entry)
-    return;
-
   // Note that kCacheControlNoStoreHTTPOnlyCookieModified,
   // kCacheControlNoStoreCookieModified and kCacheControlNoStore are mutually
   // exclusive.
-  if (matching_entry->cookie_modified_->http_only_cookie_modified) {
+  if (render_frame_host->GetCookieChangeInfo().http_only_cookie_modified) {
     result.No(BackForwardCacheMetrics::NotRestoredReason::
                   kCacheControlNoStoreHTTPOnlyCookieModified);
-  } else if (matching_entry->cookie_modified_->cookie_modified) {
+  } else if (render_frame_host->GetCookieChangeInfo().cookie_modified) {
     // JavaScript cookies are modified but not HTTP cookies. Only restore based
     // on the experiment level.
     if (GetCacheControlNoStoreLevel() <=
@@ -1089,14 +1057,6 @@
 #endif
 
   entry->render_frame_host()->DidEnterBackForwardCache();
-  if (AllowStoringPagesWithCacheControlNoStore()) {
-    if (entry->render_frame_host()->GetBackForwardCacheDisablingFeatures().Has(
-            WebSchedulerTrackedFeature::kMainResourceHasCacheControlNoStore)) {
-      // Start monitoring the cookie change only when cache-control:no-store
-      // header is present.
-      entry->StartMonitoringCookieChange();
-    }
-  }
   entry->SetStoredPageDelegate(this);
   entries_.push_front(std::move(entry));
   AddProcessesForEntry(*entries_.front());
@@ -1417,6 +1377,7 @@
   }
 }
 
+// static
 bool BackForwardCacheImpl::AllowStoringPagesWithCacheControlNoStore() {
   return GetCacheControlNoStoreLevel() >
          CacheControlNoStoreExperimentLevel::kDoNotStore;
diff --git a/content/browser/renderer_host/back_forward_cache_impl.h b/content/browser/renderer_host/back_forward_cache_impl.h
index 442ca10d..a3f2b7c 100644
--- a/content/browser/renderer_host/back_forward_cache_impl.h
+++ b/content/browser/renderer_host/back_forward_cache_impl.h
@@ -28,7 +28,6 @@
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/render_process_host_observer.h"
 #include "content/public/browser/site_instance.h"
-#include "content/public/browser/storage_partition.h"
 #include "content/public/common/content_features.h"
 #include "net/cookies/canonical_cookie.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
@@ -139,16 +138,13 @@
   GetChannelAssociatedMessageHandlingPolicy();
 
   // BackForwardCache entry, consisting of the page and associated metadata.
-  class Entry : public ::network::mojom::CookieChangeListener {
+  class Entry {
    public:
     explicit Entry(std::unique_ptr<StoredPage> stored_page);
-    ~Entry() override;
+    ~Entry();
 
     void WriteIntoTrace(perfetto::TracedValue context);
 
-    // Starts monitoring the cookie change in this entry.
-    void StartMonitoringCookieChange();
-
     // Indicates whether or not all the |render_view_hosts| in this entry have
     // received the acknowledgement from renderer that it finished running
     // handlers.
@@ -184,23 +180,6 @@
    private:
     friend class BackForwardCacheImpl;
 
-    // ::network::mojom::CookieChangeListener
-    void OnCookieChange(const net::CookieChangeInfo& change) override;
-
-    mojo::Receiver<::network::mojom::CookieChangeListener>
-        cookie_listener_receiver_{this};
-
-    struct CookieModified {
-      // Indicates whether or not cookie on the bfcache entry has been modified
-      // while the entry is in bfcache.
-      bool cookie_modified = false;
-      // Indicates whether or not HTTPOnly cookie on the bfcache entry
-      // has been modified while the entry is in bfcache.
-      bool http_only_cookie_modified = false;
-    };
-    // Only populated when |AllowStoringPagesWithCacheControlNoStore()| is true.
-    absl::optional<CookieModified> cookie_modified_;
-
     std::unique_ptr<StoredPage> stored_page_;
   };
 
@@ -393,6 +372,10 @@
       RenderFrameHostImpl& rfh,
       BackForwardCacheCanStoreDocumentResult& eviction_reason);
 
+  // Returns true if the flag is on for pages with cache-control:no-store to
+  // get restored from back/forward cache unless cookies change.
+  static bool AllowStoringPagesWithCacheControlNoStore();
+
  private:
   // Destroys all evicted frames in the BackForwardCache.
   void DestroyEvictedFrames();
@@ -456,10 +439,6 @@
   void AddProcessesForEntry(Entry& entry);
   void RemoveProcessesForEntry(Entry& entry);
 
-  // Returns true if the flag is on for pages with cache-control:no-store to
-  // get restored from back/forward cache unless cookies change.
-  static bool AllowStoringPagesWithCacheControlNoStore();
-
   static BlockListedFeatures GetAllowedFeatures(
       RequestedFeatures requested_features);
   static BlockListedFeatures GetDisallowedFeatures(
diff --git a/content/browser/renderer_host/input/mouse_latency_browsertest.cc b/content/browser/renderer_host/input/mouse_latency_browsertest.cc
index bd4a7b7..f6c0698 100644
--- a/content/browser/renderer_host/input/mouse_latency_browsertest.cc
+++ b/content/browser/renderer_host/input/mouse_latency_browsertest.cc
@@ -8,9 +8,9 @@
 #include <vector>
 
 #include "base/functional/bind.h"
-#include "base/json/json_reader.h"
 #include "base/run_loop.h"
 #include "base/test/test_timeouts.h"
+#include "base/test/values_test_util.h"
 #include "build/build_config.h"
 #include "content/browser/renderer_host/input/synthetic_gesture.h"
 #include "content/browser/renderer_host/input/synthetic_gesture_controller.h"
@@ -148,10 +148,7 @@
   }
 
   void OnTraceDataCollected(std::unique_ptr<std::string> trace_data_string) {
-    std::unique_ptr<base::Value> trace_data =
-        base::JSONReader::ReadDeprecated(*trace_data_string);
-    ASSERT_TRUE(trace_data);
-    trace_data_ = trace_data->Clone();
+    trace_data_ = base::test::ParseJson(*trace_data_string);
     runner_->Quit();
   }
 
diff --git a/content/browser/renderer_host/ipc_utils.cc b/content/browser/renderer_host/ipc_utils.cc
index 4d9121f..3a2dab5 100644
--- a/content/browser/renderer_host/ipc_utils.cc
+++ b/content/browser/renderer_host/ipc_utils.cc
@@ -70,6 +70,32 @@
   return true;
 }
 
+bool VerifyHasStorageAccess(
+    const RenderFrameHostImpl& current_rfh,
+    blink::LocalFrameToken* initiator_frame_token,
+    const blink::mojom::CommonNavigationParams& common_params) {
+  if (!common_params.has_storage_access) {
+    return true;
+  }
+
+  // The initiator origin must be provided, and must be same-origin with the
+  // request URL.
+  if (!common_params.initiator_origin.has_value() ||
+      !common_params.initiator_origin.value().IsSameOriginWith(
+          common_params.url)) {
+    return false;
+  }
+
+  // The initiator's frame token must be provided and must be equal to the
+  // current frame token.
+  if (!initiator_frame_token ||
+      *initiator_frame_token != current_rfh.GetFrameToken()) {
+    return false;
+  }
+
+  return true;
+}
+
 }  // namespace
 
 bool VerifyDownloadUrlParams(SiteInstance* site_instance,
@@ -150,7 +176,9 @@
 }
 
 bool VerifyBeginNavigationCommonParams(
+    const RenderFrameHostImpl& current_rfh,
     SiteInstance* site_instance,
+    blink::LocalFrameToken* initiator_frame_token,
     blink::mojom::CommonNavigationParams* common_params) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   DCHECK(site_instance);
@@ -206,6 +234,14 @@
   if (NavigationTypeUtils::IsSameDocument(common_params->navigation_type))
     return false;
 
+  // Verify |has_storage_access|. This corresponds to some of the changes to
+  // "create navigation params by fetching" in the Storage Access API spec:
+  // https://privacycg.github.io/storage-access/#navigation
+  if (!VerifyHasStorageAccess(current_rfh, initiator_frame_token,
+                              *common_params)) {
+    return false;
+  }
+
   // Verification succeeded.
   return true;
 }
diff --git a/content/browser/renderer_host/ipc_utils.h b/content/browser/renderer_host/ipc_utils.h
index 7e1c544..a6021b1 100644
--- a/content/browser/renderer_host/ipc_utils.h
+++ b/content/browser/renderer_host/ipc_utils.h
@@ -59,7 +59,9 @@
 //
 // This function has to be called on the UI thread.
 bool VerifyBeginNavigationCommonParams(
+    const RenderFrameHostImpl& current_rfh,
     SiteInstance* site_instance,
+    blink::LocalFrameToken* initiator_frame_token,
     blink::mojom::CommonNavigationParams* common_params);
 
 // Verify that the initiator frame identified by `initiator_frame_token` and
diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc
index 8c0177e..358540b 100644
--- a/content/browser/renderer_host/navigation_controller_impl.cc
+++ b/content/browser/renderer_host/navigation_controller_impl.cc
@@ -3855,7 +3855,8 @@
           network::mojom::CSPDisposition::CHECK, std::vector<int>(),
           params.href_translate,
           false /* is_history_navigation_in_new_child_frame */,
-          params.input_start, network::mojom::RequestDestination::kEmpty);
+          params.input_start, network::mojom::RequestDestination::kEmpty,
+          /*has_storage_access=*/false);
 
   blink::mojom::CommitNavigationParamsPtr commit_params =
       blink::mojom::CommitNavigationParams::New(
diff --git a/content/browser/renderer_host/navigation_entry_impl.cc b/content/browser/renderer_host/navigation_entry_impl.cc
index 9c6bfd0..56dae18 100644
--- a/content/browser/renderer_host/navigation_entry_impl.cc
+++ b/content/browser/renderer_host/navigation_entry_impl.cc
@@ -861,7 +861,8 @@
       has_user_gesture(), false /* has_text_fragment_token */,
       network::mojom::CSPDisposition::CHECK, std::vector<int>(), std::string(),
       false /* is_history_navigation_in_new_child_frame */, input_start,
-      network::mojom::RequestDestination::kEmpty);
+      network::mojom::RequestDestination::kEmpty,
+      false /* has_storage_access */);
 }
 
 blink::mojom::CommitNavigationParamsPtr
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
index a4dc978..a02a6e4 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -4,6 +4,7 @@
 
 #include "content/browser/renderer_host/navigation_request.h"
 
+#include <memory>
 #include <string>
 #include <utility>
 #include <vector>
@@ -62,6 +63,7 @@
 #include "content/browser/preloading/prerender/prerender_host_registry.h"
 #include "content/browser/process_lock.h"
 #include "content/browser/reduce_accept_language/reduce_accept_language_utils.h"
+#include "content/browser/renderer_host/back_forward_cache_impl.h"
 #include "content/browser/renderer_host/cookie_utils.h"
 #include "content/browser/renderer_host/debug_urls.h"
 #include "content/browser/renderer_host/frame_tree.h"
@@ -1354,7 +1356,8 @@
           std::string() /* href_translate */,
           false /* is_history_navigation_in_new_child_frame */,
           base::TimeTicks::Now() /* input_start */,
-          network::mojom::RequestDestination::kEmpty);
+          network::mojom::RequestDestination::kEmpty,
+          /*has_storage_access=*/false);
   // Note that some params are set to default values (e.g. page_state set to
   // the default blink::PageState()) even if the DidCommit message that came
   // from the renderer contained relevant info that can be used to fill the
@@ -2511,6 +2514,23 @@
   SetState(WAITING_FOR_RENDERER_RESPONSE);
 }
 
+bool NavigationRequest::ShouldAddCookieChangeListener() {
+  // The `CookieChangeListener` will only be set up if all of these are true:
+  // (1) the navigation's protocol is HTTP(s).
+  // (2) we allow a document with `Cache-control: no-store` header to
+  // enter BFCache.
+  // (3) the navigation is neither a same-document navigation nor a page
+  // activation, since in these cases, an existing `RenderFrameHost` will be
+  // used, and it would already have an existing listener, so we should skip the
+  // initialization.
+  // (4) the navigation is a primary main frame navigation, as the cookie
+  // change information will only be used in the inactive document control
+  // logic.
+  return BackForwardCacheImpl::AllowStoringPagesWithCacheControlNoStore() &&
+         !IsPageActivation() && !IsSameDocument() && IsInPrimaryMainFrame() &&
+         common_params_->url.SchemeIsHTTPOrHTTPS();
+}
+
 void NavigationRequest::StartNavigation() {
   DCHECK(frame_tree_node_->navigation_request() == this ||
          is_synchronous_renderer_commit_);
@@ -2529,6 +2549,24 @@
       frame_tree_node->current_frame_host()->GetSiteInstance();
   site_info_ = GetSiteInfoForCommonParamsURL();
 
+  // It's important to start listening to the cookie changes before the network
+  // request of the navigation begins in order to ensure the listener won't miss
+  // any cookie changes that happen after the network request is sent that
+  // potentially modify some cookie values that are used in this request.
+  // The information of cookie modification will be used to determine if the
+  // document that this navigation will load should be eligible for BFCache.
+  // The listener eventually will be transferred over to the committed
+  // `RenderFrameHost`.
+  if (ShouldAddCookieChangeListener()) {
+    // The listener should receive the change events of the cookies from the
+    // the domain of the main-frame navigation url.
+    // If the navigation gets redirected, it will be reset with the new URL when
+    // `NavigationRequest::OnRequestRedirected()` is called.
+    cookie_change_listener_ =
+        std::make_unique<RenderFrameHostImpl::CookieChangeListener>(
+            GetStoragePartitionWithCurrentSiteInfo(), common_params_->url);
+  }
+
   // Compute the redirect chain.
   // TODO(clamy): Try to simplify this and have the redirects be part of
   // CommonNavigationParams.
@@ -3020,6 +3058,9 @@
   did_receive_early_hints_before_cross_origin_redirect_ |=
       did_create_early_hints_manager_params_ && !is_same_origin_redirect;
 
+  common_params_->has_storage_access =
+      common_params_->has_storage_access && is_same_origin_redirect;
+
   commit_params_->redirects.push_back(common_params_->url);
   common_params_->url = redirect_info.new_url;
   common_params_->method = redirect_info.new_method;
@@ -3033,6 +3074,16 @@
   commit_params_->redirect_infos.back().new_referrer =
       common_params_->referrer->url.spec();
 
+  // When the redirection happens, the cookie_change_listener_ should be
+  // re-initialized if needed.
+  if (ShouldAddCookieChangeListener()) {
+    cookie_change_listener_ =
+        std::make_unique<RenderFrameHostImpl::CookieChangeListener>(
+            GetStoragePartitionWithCurrentSiteInfo(), common_params_->url);
+  } else {
+    cookie_change_listener_.reset();
+  }
+
   // Check Content Security Policy before the NavigationThrottles run. This
   // gives CSP a chance to modify requests that NavigationThrottles would
   // otherwise block.
@@ -4443,12 +4494,7 @@
     return;
   }
 
-  // |site_info_|'s StoragePartitionConfig should refer to the correct
-  // StoragePartition for this navigation.
-  BrowserContext* browser_context =
-      frame_tree_node_->navigator().controller().GetBrowserContext();
-  StoragePartition* partition = browser_context->GetStoragePartition(
-      site_info_.storage_partition_config());
+  StoragePartition* partition = GetStoragePartitionWithCurrentSiteInfo();
   DCHECK(partition);
 
   // |loader_| should not exist if the service worker handle
@@ -4600,6 +4646,9 @@
   // Reset the compositor lock before starting the loader.
   compositor_lock_.reset();
 
+  BrowserContext* browser_context =
+      frame_tree_node_->navigator().controller().GetBrowserContext();
+
   loader_ = NavigationURLLoader::Create(
       browser_context, partition,
       std::make_unique<NavigationRequestInfo>(
@@ -8783,4 +8832,13 @@
   DCHECK(!frame_tree_node()->IsFencedFrameRoot());
 }
 
+StoragePartition* NavigationRequest::GetStoragePartitionWithCurrentSiteInfo() {
+  // `site_info_`'s StoragePartitionConfig should refer to the correct
+  // `StoragePartition` for this navigation.
+  return frame_tree_node_->navigator()
+      .controller()
+      .GetBrowserContext()
+      ->GetStoragePartition(site_info_.storage_partition_config());
+}
+
 }  // namespace content
diff --git a/content/browser/renderer_host/navigation_request.h b/content/browser/renderer_host/navigation_request.h
index 11b8fca..3d53578 100644
--- a/content/browser/renderer_host/navigation_request.h
+++ b/content/browser/renderer_host/navigation_request.h
@@ -1124,6 +1124,11 @@
   void AddDeferredSubframeNavigationThrottle(
       base::WeakPtr<SubframeHistoryNavigationThrottle> throttle);
 
+  std::unique_ptr<RenderFrameHostImpl::CookieChangeListener>
+  TakeCookieChangeListener() {
+    return std::move(cookie_change_listener_);
+  }
+
  private:
   friend class NavigationRequestTest;
 
@@ -1767,6 +1772,13 @@
   // IsInMainFrame().
   void UnblockPendingSubframeNavigationRequestsIfNeeded();
 
+  // Returns if we should add/reset the `CookieChangeListener` for the current
+  // navigation.
+  bool ShouldAddCookieChangeListener();
+
+  // Returns the `StoragePartition` based on the config from the `site_info_`.
+  StoragePartition* GetStoragePartitionWithCurrentSiteInfo();
+
   // Never null. The pointee node owns this navigation request instance.
   FrameTreeNode* const frame_tree_node_;
 
@@ -2407,6 +2419,16 @@
   absl::optional<base::UnguessableToken>
       main_frame_same_document_navigation_token_;
 
+  // The listener that receives cookie change events and maintains cookie change
+  // information for the domain of the URL that this `NavigationRequest` is
+  // navigating to. The listener will observe all the cookie changes starting
+  // from the navigation/redirection, and it will be moved to the
+  // `RenderFrameHostImpl` when the navigation is committed and continues
+  // observing until the destruction of the document.
+  // See `RenderFrameHostImpl::CookieChangeListener`.
+  std::unique_ptr<RenderFrameHostImpl::CookieChangeListener>
+      cookie_change_listener_;
+
   base::WeakPtrFactory<NavigationRequest> weak_factory_{this};
 };
 
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 856b55b..b013a547 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -1614,14 +1614,6 @@
       base::BindRepeating(&RenderFrameHostImpl::BeforeUnloadTimeout,
                           weak_ptr_factory_.GetWeakPtr()));
 
-  // Only main frames have the ability to close the whole page, so we don't
-  // need this timer for subframes.
-  if (is_main_frame()) {
-    close_timeout_ = std::make_unique<TimeoutMonitor>(
-        base::BindRepeating(&RenderFrameHostImpl::ClosePageTimeout,
-                            weak_ptr_factory_.GetWeakPtr()));
-  }
-
   // Local roots are:
   // - main frames; or
   // - subframes that use a proxy to talk to their parent.
@@ -5467,7 +5459,7 @@
 
   // If the renderer is telling us to close, it has already run the unload
   // events, and we can take the fast path.
-  ClosePageIgnoringUnloadEvents();
+  ClosePageIgnoringUnloadEvents(ClosePageSource::kRenderer);
 }
 
 bool RenderFrameHostImpl::HasStickyUserActivation() const {
@@ -5501,7 +5493,7 @@
   history_user_activation_state_.Consume();
 }
 
-void RenderFrameHostImpl::ClosePage() {
+void RenderFrameHostImpl::ClosePage(ClosePageSource source) {
   // This path is taken when tab/window close is initiated by either the
   // browser process or via a window.close() call through a proxy. In both
   // cases, we need to tell the main frame's renderer process to run unload
@@ -5509,40 +5501,51 @@
   //
   // This should only be called on outermost main frames. If this
   // RenderFrameHost is no longer a primary main frame (e.g., if it was placed
-  // into back-forward cache just before getting here), we should
-  // not close the active tab, so return early in that case.
+  // into back-forward cache or became pending deletion just before getting
+  // here), we should not close the active tab if the request to close came from
+  // the renderer, so return early in that case. We proceed with closing
+  // regardless if the request came from the browser so that renderers can't
+  // avoid closing via navigation.
   DCHECK(is_main_frame());
   // TODO(crbug.com/1254770): Orphaned portals use this code path. Revisit how
   // portals handle unload when migrating off of inner WebContents.
   DCHECK(IsOutermostMainFrame() || frame_tree()->delegate()->IsPortal());
-  if (!IsInPrimaryMainFrame()) {
+  if (!IsInPrimaryMainFrame() && source == ClosePageSource::kRenderer) {
     return;
   }
 
   page_close_state_ = PageCloseState::kRunningUnloadHandlers;
 
   if (IsRenderFrameLive() && !IsPageReadyToBeClosed()) {
+    close_timeout_ = std::make_unique<TimeoutMonitor>(
+        base::BindRepeating(&RenderFrameHostImpl::ClosePageTimeout,
+                            weak_ptr_factory_.GetWeakPtr(), source));
     close_timeout_->Start(kUnloadTimeout);
 
     GetAssociatedLocalMainFrame()->ClosePage(
         base::BindOnce(&RenderFrameHostImpl::ClosePageIgnoringUnloadEvents,
-                       weak_ptr_factory_.GetWeakPtr()));
+                       weak_ptr_factory_.GetWeakPtr(), source));
   } else {
     // This RenderFrameHost doesn't have a live renderer (or has already run
     // unload handlers), so just skip the close event and close the page.
-    ClosePageIgnoringUnloadEvents();
+    ClosePageIgnoringUnloadEvents(source);
   }
 }
 
-void RenderFrameHostImpl::ClosePageIgnoringUnloadEvents() {
-  close_timeout_->Stop();
+void RenderFrameHostImpl::ClosePageIgnoringUnloadEvents(
+    ClosePageSource source) {
+  if (close_timeout_) {
+    close_timeout_->Stop();
+    close_timeout_.reset();
+  }
 
   // If this RenderFrameHost is no longer the primary main frame (e.g., if it
   // was replaced by another frame while waiting for the ClosePage ACK or
-  // timeout), there's no need to close the active tab.
-  //
-  // TODO(crbug.com/1406023): This behavior may need to change.
-  if (!IsInPrimaryMainFrame()) {
+  // timeout), there's no need to close the active tab if the request to close
+  // came from the renderer, so return early in that case. We proceed with
+  // closing regardless if the request came from the browser so that renderers
+  // can't avoid closing via navigation.
+  if (!IsInPrimaryMainFrame() && source == ClosePageSource::kRenderer) {
     page_close_state_ = PageCloseState::kNotClosing;
     return;
   }
@@ -5560,12 +5563,12 @@
          delegate_->IsJavaScriptDialogShowing() || BeforeUnloadTimedOut();
 }
 
-void RenderFrameHostImpl::ClosePageTimeout() {
+void RenderFrameHostImpl::ClosePageTimeout(ClosePageSource source) {
   if (delegate_->ShouldIgnoreUnresponsiveRenderer()) {
     return;
   }
 
-  ClosePageIgnoringUnloadEvents();
+  ClosePageIgnoringUnloadEvents(source);
 }
 
 void RenderFrameHostImpl::ShowCreatedWindow(
@@ -8216,8 +8219,10 @@
 
   blink::mojom::CommonNavigationParamsPtr validated_common_params =
       unvalidated_common_params.Clone();
-  if (!VerifyBeginNavigationCommonParams(GetSiteInstance(),
-                                         &*validated_common_params)) {
+  if (!VerifyBeginNavigationCommonParams(
+          *this, GetSiteInstance(),
+          base::OptionalToPtr(begin_params->initiator_frame_token),
+          &*validated_common_params)) {
     return;
   }
 
@@ -12177,6 +12182,11 @@
     }
     RecordDocumentCreatedUkmEvent(params->origin, document_ukm_source_id,
                                   ukm_recorder);
+
+    // We only replace the `CookieChangeListener` with the one initialized by
+    // the navigation request when navigating to a new document. Otherwise, the
+    // existing `CookieChangeListener` will be reused.
+    cookie_change_listener_ = navigation_request->TakeCookieChangeListener();
   }
 
   if (!is_same_document_navigation) {
@@ -14697,4 +14707,31 @@
   return subresource_loader_factories_config.cookie_setting_overrides();
 }
 
+RenderFrameHostImpl::CookieChangeListener::CookieChangeListener(
+    StoragePartition* storage_partition,
+    GURL& url) {
+  DCHECK(storage_partition);
+  auto* cookie_manager = storage_partition->GetCookieManagerForBrowserProcess();
+  cookie_manager->AddCookieChangeListener(
+      url, absl::nullopt,
+      cookie_change_listener_receiver_.BindNewPipeAndPassRemote());
+}
+
+RenderFrameHostImpl::CookieChangeListener::~CookieChangeListener() = default;
+
+void RenderFrameHostImpl::CookieChangeListener::OnCookieChange(
+    const net::CookieChangeInfo& change) {
+  // TODO (https://crbug.com/1399741): After adding the invalidation signals
+  // API, we could mark the page as ineligible for BFCache as soon as the cookie
+  // change event is received.
+  cookie_change_info_.http_only_cookie_modified |= change.cookie.IsHttpOnly();
+  cookie_change_info_.cookie_modified = true;
+}
+
+RenderFrameHostImpl::CookieChangeListener::CookieChangeInfo
+RenderFrameHostImpl::GetCookieChangeInfo() {
+  return cookie_change_listener_ ? cookie_change_listener_->cookie_change_info()
+                                 : CookieChangeListener::CookieChangeInfo{};
+}
+
 }  // namespace content
diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h
index 1351752d..baecec5 100644
--- a/content/browser/renderer_host/render_frame_host_impl.h
+++ b/content/browser/renderer_host/render_frame_host_impl.h
@@ -79,6 +79,7 @@
 #include "content/public/browser/global_routing_id.h"
 #include "content/public/browser/javascript_dialog_manager.h"
 #include "content/public/browser/render_frame_host.h"
+#include "content/public/browser/storage_partition.h"
 #include "content/public/browser/web_ui.h"
 #include "content/public/common/content_client.h"
 #include "content/public/common/extra_mojo_js_features.mojom-forward.h"
@@ -1371,6 +1372,38 @@
   // log_level == kError messages.
   void SetWantErrorMessageStackTrace();
 
+  // Listens to the change events of the cookies associated with the domain of
+  // the specified URL during initialization. It also contains the information
+  // of whether any cookie/HTTPOnly cookie had been changed before, which can be
+  // used to determine if a document with Cache-control: no-store header set is
+  // eligible for BFCache.
+  class CookieChangeListener : public network::mojom::CookieChangeListener {
+   public:
+    struct CookieChangeInfo {
+      // Indicates whether any cookie modification has been observed.
+      bool cookie_modified = false;
+      // Indicates whether any HTTPOnly cookie modification has been observed.
+      bool http_only_cookie_modified = false;
+    };
+
+    CookieChangeListener(StoragePartition* storage_partition, GURL& url);
+    ~CookieChangeListener() override;
+    CookieChangeListener(const CookieChangeListener&) = delete;
+    CookieChangeListener& operator=(const CookieChangeListener&) = delete;
+
+    // Returns a copy of the `cookie_change_info_`.
+    CookieChangeInfo cookie_change_info() { return cookie_change_info_; }
+
+   private:
+    // network::mojom::CookieChangeListener
+    void OnCookieChange(const net::CookieChangeInfo& change) override;
+
+    mojo::Receiver<network::mojom::CookieChangeListener>
+        cookie_change_listener_receiver_{this};
+
+    CookieChangeInfo cookie_change_info_;
+  };
+
   // Indicates that a navigation is ready to commit and can be
   // handled by this RenderFrame.
   // |subresource_loader_params| is used in network service land to pass
@@ -2766,10 +2799,18 @@
   bool IsHistoryUserActivationActive() const;
   void ConsumeHistoryUserActivation();
 
+  // Parameter for `ClosePage()` that indicates whether the request comes from
+  // the browser or the renderer. This is used to determine whether navigation
+  // should prevent the page from closing, since navigations should not prevent
+  // the page from closing if the browser is trying to close the page.
+  enum class ClosePageSource { kRenderer, kBrowser };
+
   // Tells the renderer process to run the page's unload handler.
   // A completion callback is invoked by the renderer when the handler
-  // execution completes.
-  void ClosePage();
+  // execution completes. The `source` parameter indicates whether this request
+  // comes from the browser or the renderer. If the request comes from the
+  // renderer, then it may be ignored if a different document commits first.
+  void ClosePage(ClosePageSource source);
 
   // When true, indicates that the unload handlers have already executed (e.g.,
   // after receiving a ClosePage ACK) or that they should be ignored. This is
@@ -2782,6 +2823,10 @@
   // frame. Can only be called on a frame with a committed navigation.
   net::CookieSettingOverrides GetCookieSettingOverrides();
 
+  // Retrieves the information about the cookie changes that are observed on the
+  // last committed document.
+  CookieChangeListener::CookieChangeInfo GetCookieChangeInfo();
+
  protected:
   friend class RenderFrameHostFactory;
 
@@ -2959,6 +3004,11 @@
   FRIEND_TEST_ALL_PREFIXES(SitePerProcessSSLBrowserTest,
                            UnloadHandlersArePowerfulGrandChild);
   FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplTest, ExpectedMainWorldOrigin);
+  FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplTest,
+                           RendererInitiatedCloseIsCancelledIfPageIsntPrimary);
+  FRIEND_TEST_ALL_PREFIXES(
+      RenderFrameHostImplTest,
+      BrowserInitiatedCloseIsNotCancelledIfPageIsntPrimary);
   FRIEND_TEST_ALL_PREFIXES(DocumentUserDataTest, CheckInPendingDeletionState);
   FRIEND_TEST_ALL_PREFIXES(WebContentsImplBrowserTest, FrozenAndUnfrozenIPC);
   FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplBrowserTest,
@@ -3731,12 +3781,17 @@
   // Close the page ignoring whether it has unload events registered. This is
   // called either (1) when the unload events have already run in the renderer
   // and the ACK is received, or (2) when a timeout for running those events
-  // has expired.
-  void ClosePageIgnoringUnloadEvents();
+  // has expired. The `source` parameter indicates whether this request comes
+  // from the browser or the renderer. If the request comes from the renderer,
+  // then it may be ignored if a different document commits first.
+  void ClosePageIgnoringUnloadEvents(ClosePageSource source);
 
   // Called when this frame's page has started closing via ClosePage(), and the
-  // timer for running unload events has expired.
-  void ClosePageTimeout();
+  // timer for running unload events has expired. The `source` parameter
+  // indicates whether this request comes from the browser or the renderer. If
+  // the request comes from the renderer, then it may be ignored if a different
+  // document commits first.
+  void ClosePageTimeout(ClosePageSource source);
 
   // Send an automatic `reserved.top_navigation` beacon if one was registered
   // with the NavigationRequest's initiator frame using the
@@ -4821,6 +4876,13 @@
   mojo::Receiver<blink::mojom::BrowserInterfaceBroker> broker_receiver_{
       &broker_};
 
+  // The listener should be moved from the `NavigationRequest` when committing
+  // a navigation in this `RenderFrameHostImpl`. It will be owned by the
+  // `RenderFrameHostImpl` and continue receiving the cookie change events until
+  // the destruction of the document. See the comments of the
+  // `cookie_change_listener_` in `NavigationRequest`.
+  std::unique_ptr<CookieChangeListener> cookie_change_listener_;
+
   // WeakPtrFactories are the last members, to ensure they are destroyed before
   // all other fields of `this`.
   base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_{this};
diff --git a/content/browser/renderer_host/render_frame_host_impl_unittest.cc b/content/browser/renderer_host/render_frame_host_impl_unittest.cc
index 440fa0cb..3f2fcca 100644
--- a/content/browser/renderer_host/render_frame_host_impl_unittest.cc
+++ b/content/browser/renderer_host/render_frame_host_impl_unittest.cc
@@ -8,6 +8,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/test/scoped_feature_list.h"
 #include "build/buildflag.h"
+#include "content/browser/renderer_host/input/timeout_monitor.h"
 #include "content/browser/renderer_host/navigation_controller_impl.h"
 #include "content/browser/renderer_host/render_frame_host_impl.h"
 #include "content/public/browser/cors_origin_pattern_setter.h"
@@ -1065,4 +1066,72 @@
 }
 #endif
 
+namespace {
+
+class MockWebContentsDelegate : public WebContentsDelegate {
+ public:
+  MOCK_METHOD(void, CloseContents, (WebContents*));
+};
+
+}  // namespace
+
+// Ensure that a close request from the renderer process is ignored if a
+// navigation causes a different RenderFrameHost to commit first. See
+// https://crbug.com/1406023.
+TEST_F(RenderFrameHostImplTest,
+       RendererInitiatedCloseIsCancelledIfPageIsntPrimary) {
+  MockWebContentsDelegate delegate;
+  contents()->SetDelegate(&delegate);
+
+  RenderFrameHostImpl* rfh = main_test_rfh();
+  EXPECT_CALL(delegate, CloseContents(contents())).Times(0);
+
+  // Have the renderer request to close the page.
+  rfh->ClosePage(RenderFrameHostImpl::ClosePageSource::kRenderer);
+
+  // The close timeout should be running.
+  EXPECT_TRUE(rfh->close_timeout_ && rfh->close_timeout_->IsRunning());
+
+  // Simulate the rfh going into the back-forward cache before the close timeout
+  // fires.
+  rfh->lifecycle_state_ =
+      RenderFrameHostImpl::LifecycleStateImpl::kInBackForwardCache;
+
+  // Simulate the close timer firing.
+  rfh->ClosePageTimeout(RenderFrameHostImpl::ClosePageSource::kRenderer);
+
+  // The page should not close since it's no longer the primary page.
+  testing::Mock::VerifyAndClearExpectations(&delegate);
+}
+
+// Ensure that a close request from the browser process cannot be ignored even
+// if a navigation causes a different RenderFrameHost to commit first. See
+// https://crbug.com/1406023.
+TEST_F(RenderFrameHostImplTest,
+       BrowserInitiatedCloseIsNotCancelledIfPageIsntPrimary) {
+  MockWebContentsDelegate delegate;
+  contents()->SetDelegate(&delegate);
+
+  RenderFrameHostImpl* rfh = main_test_rfh();
+  EXPECT_CALL(delegate, CloseContents(contents()));
+
+  // Have the browser request to close the page.
+  rfh->ClosePage(RenderFrameHostImpl::ClosePageSource::kBrowser);
+
+  // The close timeout should be running.
+  EXPECT_TRUE(rfh->close_timeout_ && rfh->close_timeout_->IsRunning());
+
+  // Simulate the rfh going into the back-forward cache before the close timeout
+  // fires.
+  rfh->lifecycle_state_ =
+      RenderFrameHostImpl::LifecycleStateImpl::kInBackForwardCache;
+
+  // Simulate the close timer firing.
+  rfh->ClosePageTimeout(RenderFrameHostImpl::ClosePageSource::kBrowser);
+
+  // The page should close regardless of it not being primary since the browser
+  // requested it.
+  testing::Mock::VerifyAndClearExpectations(&delegate);
+}
+
 }  // namespace content
diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc
index 4629ed7..ddc0a834 100644
--- a/content/browser/renderer_host/render_frame_host_manager.cc
+++ b/content/browser/renderer_host/render_frame_host_manager.cc
@@ -571,11 +571,16 @@
     // If we're about to close the tab and there's a speculative RFH, cancel it.
     // Otherwise, if the navigation in the speculative RFH completes before the
     // close in the current RFH, we'll lose the tab close.
+    // TODO(https://crbug.com/1406023): This condition may no longer be needed.
     if (speculative_render_frame_host_) {
       DiscardSpeculativeRFH(NavigationDiscardReason::kWillRemoveFrame);
     }
 
-    render_frame_host_->ClosePage();
+    // TODO(https://crbug.com/1406023): This is not always browser-initiated, so
+    // we should track whether the close is browser or renderer-initiated and
+    // use that here.
+    render_frame_host_->ClosePage(
+        RenderFrameHostImpl::ClosePageSource::kBrowser);
   }
 }
 
diff --git a/content/browser/renderer_host/render_frame_host_manager_unittest.cc b/content/browser/renderer_host/render_frame_host_manager_unittest.cc
index 9d54f59..1d9367ba 100644
--- a/content/browser/renderer_host/render_frame_host_manager_unittest.cc
+++ b/content/browser/renderer_host/render_frame_host_manager_unittest.cc
@@ -1662,7 +1662,7 @@
   TestRenderFrameHost* rfh1 = contents()->GetPrimaryMainFrame();
 
   // Start to close the tab, but assume it's unresponsive.
-  rfh1->ClosePage();
+  rfh1->ClosePage(RenderFrameHostImpl::ClosePageSource::kBrowser);
   EXPECT_EQ(rfh1->page_close_state_,
             RenderFrameHostImpl::PageCloseState::kRunningUnloadHandlers);
 
@@ -1673,7 +1673,7 @@
   EXPECT_TRUE(contents()->CrossProcessNavigationPending());
 
   // Simulate the unresponsiveness timer.  The tab should close.
-  rfh1->ClosePageTimeout();
+  rfh1->ClosePageTimeout(RenderFrameHostImpl::ClosePageSource::kBrowser);
   EXPECT_TRUE(close_delegate.is_closed());
 }
 
diff --git a/content/browser/renderer_host/render_frame_proxy_host.cc b/content/browser/renderer_host/render_frame_proxy_host.cc
index 1975370..b9ddf05 100644
--- a/content/browser/renderer_host/render_frame_proxy_host.cc
+++ b/content/browser/renderer_host/render_frame_proxy_host.cc
@@ -631,7 +631,7 @@
   // the window containing the active RenderFrameHost.
   if (site_instance_group()->IsRelatedSiteInstanceGroup(
           rfh->GetSiteInstance()->group())) {
-    rfh->ClosePage();
+    rfh->ClosePage(RenderFrameHostImpl::ClosePageSource::kRenderer);
   }
 }
 
diff --git a/content/browser/security_exploit_browsertest.cc b/content/browser/security_exploit_browsertest.cc
index 18b3d593..e8d9a9c4 100644
--- a/content/browser/security_exploit_browsertest.cc
+++ b/content/browser/security_exploit_browsertest.cc
@@ -1518,7 +1518,8 @@
           std::string() /* href_translate */,
           false /* is_history_navigation_in_new_child_frame */,
           base::TimeTicks() /* input_start */,
-          network::mojom::RequestDestination::kDocument);
+          network::mojom::RequestDestination::kDocument,
+          false /* has_storage_access */);
   blink::mojom::BeginNavigationParamsPtr begin_params =
       blink::mojom::BeginNavigationParams::New(
           absl::nullopt /* initiator_frame_token */,
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index d655ab1..478e8db 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -10968,7 +10968,8 @@
     RenderFrameHostImpl* rfh =
         static_cast<RenderFrameHostImpl*>(render_frame_host);
     EXPECT_TRUE(rfh->render_view_host()->is_active());
-    rfh->GetMainFrame()->ClosePage();
+    rfh->GetMainFrame()->ClosePage(
+        RenderFrameHostImpl::ClosePageSource::kBrowser);
     if (run_loop_)
       run_loop_->Quit();
     return true;
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index f3815af..c63d282 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -1635,7 +1635,8 @@
 
 void WebContentsImpl::ClosePage() {
   OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::ClosePage");
-  GetPrimaryMainFrame()->ClosePage();
+  GetPrimaryMainFrame()->ClosePage(
+      RenderFrameHostImpl::ClosePageSource::kBrowser);
 }
 
 RenderWidgetHostView* WebContentsImpl::GetRenderWidgetHostView() {
diff --git a/content/public/browser/browsing_data_filter_builder.h b/content/public/browser/browsing_data_filter_builder.h
index 0c31b896..18024cfd 100644
--- a/content/public/browser/browsing_data_filter_builder.h
+++ b/content/public/browser/browsing_data_filter_builder.h
@@ -12,6 +12,7 @@
 #include "content/common/content_export.h"
 #include "content/public/browser/storage_partition.h"
 #include "net/cookies/cookie_partition_key_collection.h"
+#include "services/network/public/mojom/clear_data_filter.mojom-forward.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "services/network/public/mojom/network_service.mojom.h"
 #include "third_party/blink/public/common/storage_key/storage_key.h"
diff --git a/content/public/test/render_view_test.cc b/content/public/test/render_view_test.cc
index 2c203a0..949f31e 100644
--- a/content/public/test/render_view_test.cc
+++ b/content/public/test/render_view_test.cc
@@ -693,7 +693,8 @@
       network::mojom::CSPDisposition::CHECK, std::vector<int>(), std::string(),
       false /* is_history_navigation_in_new_child_frame */,
       base::TimeTicks() /* input_start */,
-      network::mojom::RequestDestination::kDocument);
+      network::mojom::RequestDestination::kDocument,
+      false /* has_storage_access */);
   auto commit_params = blink::CreateCommitNavigationParams();
   TestRenderFrame* frame = static_cast<TestRenderFrame*>(GetMainRenderFrame());
   FrameLoadWaiter waiter(frame);
@@ -825,7 +826,8 @@
       network::mojom::CSPDisposition::CHECK, std::vector<int>(), std::string(),
       false /* is_history_navigation_in_new_child_frame */,
       base::TimeTicks() /* input_start */,
-      network::mojom::RequestDestination::kDocument);
+      network::mojom::RequestDestination::kDocument,
+      false /* has_storage_access */);
   auto commit_params = blink::CreateCommitNavigationParams();
   commit_params->page_state = state.ToEncodedData();
   commit_params->nav_entry_id = pending_offset + 1;
diff --git a/content/renderer/browser_render_view_browsertest.cc b/content/renderer/browser_render_view_browsertest.cc
index 21d1f925..0d619ce 100644
--- a/content/renderer/browser_render_view_browsertest.cc
+++ b/content/renderer/browser_render_view_browsertest.cc
@@ -35,6 +35,7 @@
 #include "net/disk_cache/disk_cache.h"
 #include "net/http/http_cache.h"
 #include "services/network/public/cpp/features.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/platform/web_url_error.h"
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index a1d8df2..0569890 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -599,7 +599,7 @@
       info->should_check_main_world_content_security_policy,
       initiator_origin_trial_features, info->href_translate.Latin1(),
       is_history_navigation_in_new_child_frame, info->input_start,
-      request_destination);
+      request_destination, info->has_storage_access);
 }
 
 WebFrameLoadType NavigationTypeToLoadType(
@@ -2777,6 +2777,8 @@
   navigation_params->frame_load_type = load_type;
   navigation_params->history_item = item_for_history_navigation;
 
+  navigation_params->has_storage_access = common_params->has_storage_access;
+
   if (!container_info) {
     // An empty network provider will always be created since it is expected in
     // a certain number of places.
diff --git a/content/test/data/direct_sockets/tcp.js b/content/test/data/direct_sockets/tcp.js
index f9b0af6..a5942675 100644
--- a/content/test/data/direct_sockets/tcp.js
+++ b/content/test/data/direct_sockets/tcp.js
@@ -1,5 +1,11 @@
 'use strict';
 
+const assertEq = (actual, expected) => {
+  if (actual !== expected) {
+    throw `Expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`;
+  }
+};
+
 async function writeLoop(writer, requiredBytes) {
   if (!(writer instanceof WritableStreamDefaultWriter))
     return 'write failed: writer is not a WritableStreamDefaultWriter';
@@ -213,3 +219,65 @@
     return 'waitForClosedPromise failed: ' + error;
   }
 }
+
+async function exchangeSingleTcpPacketBetweenClientAndServer() {
+  const kPacket = "I'm a TCP packet. Meow-meow!";
+
+  try {
+    // |localPort| is intentionally omitted so that the OS will pick one itself.
+    const serverSocket = new TCPServerSocket('127.0.0.1');
+    const { localPort: serverSocketPort } = await serverSocket.opened;
+
+    // Connect a client to the server.
+    const clientSocket = new TCPSocket('127.0.0.1', serverSocketPort);
+
+    async function acceptOnce() {
+      const { readable } = await serverSocket.opened;
+      const reader = readable.getReader();
+      const { value: acceptedSocket, done } = await reader.read();
+      assertEq(done, false);
+      reader.releaseLock();
+      return acceptedSocket;
+    };
+
+    const acceptedSocket = await acceptOnce();
+    await clientSocket.opened;
+
+    const encoder = new TextEncoder();
+    const decoder = new TextDecoder();
+
+    async function acceptedSocketSend() {
+      const { writable } = await acceptedSocket.opened;
+      const writer = writable.getWriter();
+
+      await writer.ready;
+      await writer.write(encoder.encode(kPacket));
+
+      writer.releaseLock();
+    }
+
+    async function clientSocketReceive() {
+      const { readable } = await clientSocket.opened;
+      const reader = readable.getReader();
+      let result = "";
+      while (result.length < kPacket.length) {
+        const { value, done } = await reader.read();
+        assertEq(done, false);
+        result += decoder.decode(value);
+      }
+      reader.releaseLock();
+      assertEq(result, kPacket);
+    }
+
+    acceptedSocketSend();
+    await clientSocketReceive();
+
+    await clientSocket.close();
+    await acceptedSocket.close();
+    // TODO(crbug.com/1408140): await serverSocket.close();
+
+    return "exchangeSingleTcpPacketBetweenClientAndServer succeeded.";
+  } catch (error) {
+    return "exchangeSingleTcpPacketBetweenClientAndServer failed: " + error;
+  }
+}
diff --git a/content/web_test/browser/web_test_control_host.cc b/content/web_test/browser/web_test_control_host.cc
index 118e85b1..7f77d104 100644
--- a/content/web_test/browser/web_test_control_host.cc
+++ b/content/web_test/browser/web_test_control_host.cc
@@ -86,6 +86,7 @@
 #include "ipc/ipc_channel_proxy.h"
 #include "mojo/public/cpp/bindings/sync_call_restrictions.h"
 #include "services/network/public/cpp/features.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "services/network/public/mojom/network_service.mojom.h"
 #include "storage/browser/database/database_tracker.h"
diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc
index 82bb9889..1d1652b 100644
--- a/extensions/browser/api/management/management_api.cc
+++ b/extensions/browser/api/management/management_api.cc
@@ -447,15 +447,12 @@
           *target_extension, browser_context())) {
     // Either ask for parent permission or notify the child that their parent
     // has disabled this action.
-    auto parent_permission_callback = base::BindOnce(
-        &ManagementSetEnabledFunction::OnParentPermissionDialogDone, this);
-    auto error_callback = base::BindOnce(
-        &ManagementSetEnabledFunction::OnBlockedByParentDialogDone, this);
-    AddRef();  // Matched in OnParentPermissionDialogDone() or
-               // OnBlockedByParentDialogDone().
+    auto extension_approval_callback = base::BindOnce(
+        &ManagementSetEnabledFunction::OnExtensionApprovalDone, this);
+    AddRef();  // Matched in OnExtensionApprovalDone().
     supervised_user_extensions_delegate->PromptForParentPermissionOrShowError(
         *target_extension, browser_context(), GetSenderWebContents(),
-        std::move(parent_permission_callback), std::move(error_callback));
+        std::move(extension_approval_callback));
     return RespondLater();
   }
 #endif  // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_CHROMEOS_ASH)
@@ -537,14 +534,13 @@
   }
 }
 
-void ManagementSetEnabledFunction::OnParentPermissionDialogDone(
-    SupervisedUserExtensionsDelegate::ParentPermissionDialogResult result) {
+void ManagementSetEnabledFunction::OnExtensionApprovalDone(
+    SupervisedUserExtensionsDelegate::ExtensionApprovalResult result) {
 // TODO(crbug.com/1320442): Investigate whether ENABLE_SUPERVISED_USERS can
 // be ported to //extensions.
 #if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_CHROMEOS_ASH)
   switch (result) {
-    case SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-        kParentPermissionReceived: {
+    case SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kApproved: {
       const ManagementAPIDelegate* delegate =
           ManagementAPI::GetFactoryInstance()
               ->Get(browser_context())
@@ -554,26 +550,21 @@
       break;
     }
 
-    case SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-        kParentPermissionCanceled: {
+    case SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kCanceled: {
       Respond(Error(keys::kUserDidNotReEnableError));
       break;
     }
 
-    case SupervisedUserExtensionsDelegate::ParentPermissionDialogResult::
-        kParentPermissionFailed: {
+    case SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kFailed: {
       Respond(Error(keys::kParentPermissionFailedError));
       break;
     }
-  }
-  // Matches the AddRef in Run().
-  Release();
-#endif  // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_CHROMEOS_ASH)
-}
 
-void ManagementSetEnabledFunction::OnBlockedByParentDialogDone() {
-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_CHROMEOS_ASH)
-  Respond(Error(keys::kUserCantModifyError, extension_id_));
+    case SupervisedUserExtensionsDelegate::ExtensionApprovalResult::kBlocked: {
+      Respond(Error(keys::kUserCantModifyError, extension_id_));
+      break;
+    }
+  }
   // Matches the AddRef in Run().
   Release();
 #endif  // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/extensions/browser/api/management/management_api.h b/extensions/browser/api/management/management_api.h
index 8d79ccb..31cb3f2 100644
--- a/extensions/browser/api/management/management_api.h
+++ b/extensions/browser/api/management/management_api.h
@@ -118,13 +118,9 @@
 
   void OnRequirementsChecked(const PreloadCheck::Errors& errors);
 
-  // Called when the user dismisses the Parent Permission Dialog.
-  void OnParentPermissionDialogDone(
-      SupervisedUserExtensionsDelegate::ParentPermissionDialogResult result);
-
-  // Called when the user dismisses the Extension Install Blocked By Parent
-  // Dialog.
-  void OnBlockedByParentDialogDone();
+  // Called when the extension approval flow is completed.
+  void OnExtensionApprovalDone(
+      SupervisedUserExtensionsDelegate::ExtensionApprovalResult result);
 
   std::string extension_id_;
 
diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc
index 4a3fdfe..ffa0620 100644
--- a/extensions/browser/guest_view/web_view/web_view_guest.cc
+++ b/extensions/browser/guest_view/web_view/web_view_guest.cc
@@ -69,6 +69,7 @@
 #include "ipc/ipc_message_macros.h"
 #include "net/base/net_errors.h"
 #include "net/cookies/canonical_cookie.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "third_party/blink/public/common/logging/logging_utils.h"
 #include "third_party/blink/public/common/mediastream/media_stream_request.h"
 #include "third_party/blink/public/common/page/page_zoom.h"
diff --git a/extensions/browser/supervised_user_extensions_delegate.h b/extensions/browser/supervised_user_extensions_delegate.h
index 6aa02b7..b936711 100644
--- a/extensions/browser/supervised_user_extensions_delegate.h
+++ b/extensions/browser/supervised_user_extensions_delegate.h
@@ -17,15 +17,16 @@
 
 class SupervisedUserExtensionsDelegate {
  public:
-  // Result of the parent permission dialog invocation.
-  enum class ParentPermissionDialogResult {
-    kParentPermissionReceived,
-    kParentPermissionCanceled,
-    kParentPermissionFailed,
+  // Result of the extension approval flow.
+  enum class ExtensionApprovalResult {
+    kApproved,  // Extension installation was approved.
+    kCanceled,  // Extension approval flow was canceled.
+    kFailed,    // Extension approval failed due to an error.
+    kBlocked,   // Extension installation has been blocked by a parent.
   };
 
-  using ParentPermissionDialogDoneCallback =
-      base::OnceCallback<void(ParentPermissionDialogResult)>;
+  using ExtensionApprovalDoneCallback =
+      base::OnceCallback<void(ExtensionApprovalResult)>;
 
   virtual ~SupervisedUserExtensionsDelegate() = default;
 
@@ -39,16 +40,14 @@
 
   // If the current user is a child, the child user has a custodian/parent, and
   // the parent has enabled the "Permissions for sites, apps and extensions"
-  // toggle, then display the Parent Permission Dialog and call
-  // |parent_permission_callback|. Otherwise, display the Extension Install
-  // Blocked by Parent Dialog and call |error_callback|. The two paths are
-  // mutually exclusive.
+  // toggle, then display the Parent Permission Dialog. If the setting is
+  // disabled, the extension install blocked dialog is shown. When the flow is
+  // complete call |extension_approval_callback|.
   virtual void PromptForParentPermissionOrShowError(
       const extensions::Extension& extension,
       content::BrowserContext* browser_context,
       content::WebContents* web_contents,
-      ParentPermissionDialogDoneCallback parent_permission_callback,
-      base::OnceClosure error_callback) = 0;
+      ExtensionApprovalDoneCallback extension_approval_callback) = 0;
 };
 
 }  // namespace extensions
diff --git a/google_apis/BUILD.gn b/google_apis/BUILD.gn
index cb48db2..04ef849a 100644
--- a/google_apis/BUILD.gn
+++ b/google_apis/BUILD.gn
@@ -213,7 +213,6 @@
 static_library("test_support") {
   testonly = true
   sources = [
-    "gaia/core_account_id_for_testing.cc",
     "gaia/fake_gaia.cc",
     "gaia/fake_gaia.h",
     "gaia/fake_oauth2_access_token_manager.cc",
diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
index ebbd43c2..ae75a8f 100644
--- a/google_apis/gaia/core_account_id.h
+++ b/google_apis/gaia/core_account_id.h
@@ -77,16 +77,19 @@
 
   // --------------------------------------------------------------------------
   // -------------------- ONLY FOR TESTING ------------------------------------
-  // The following constructors are only used for testing. Their implementation
-  // is defined in core_account_id_for_testing.cc and is not linked in the
-  // production code. The reason for this is that they are currently being
-  // removed, but they are extensively used by the testing code.
+#if defined(UNIT_TEST)
+  // The following constructors are only used for testing. The reason for this
+  // is that they are currently being removed, but they are extensively used by
+  // the testing code.
   //
   // TODO(crbug.com/1028578): Update the tests to use one of FromEmail(),
   // FromGaia() or FromString() methods above.
-  explicit CoreAccountId(const char* id);
-  explicit CoreAccountId(std::string&& id);
-  explicit CoreAccountId(const std::string& id);
+  explicit CoreAccountId(const char* id) : id_(id) {}
+
+  explicit CoreAccountId(std::string&& id) : id_(std::move(id)) {}
+
+  explicit CoreAccountId(const std::string& id) : id_(id) {}
+#endif  // defined(UNIT_TEST)
   // --------------------------------------------------------------------------
 
  private:
diff --git a/google_apis/gaia/core_account_id_for_testing.cc b/google_apis/gaia/core_account_id_for_testing.cc
deleted file mode 100644
index 5c68e65..0000000
--- a/google_apis/gaia/core_account_id_for_testing.cc
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "google_apis/gaia/core_account_id.h"
-
-CoreAccountId::CoreAccountId(const char* id) : id_(id) {}
-
-CoreAccountId::CoreAccountId(std::string&& id) : id_(std::move(id)) {}
-
-CoreAccountId::CoreAccountId(const std::string& id) : id_(id) {}
diff --git a/gpu/command_buffer/client/query_tracker.h b/gpu/command_buffer/client/query_tracker.h
index 4d5e74a8..41d4df0d 100644
--- a/gpu/command_buffer/client/query_tracker.h
+++ b/gpu/command_buffer/client/query_tracker.h
@@ -61,8 +61,7 @@
     uint32_t index() const { return sync - bucket->syncs.get(); }
 
     raw_ptr<Bucket, DanglingUntriaged> bucket = nullptr;
-    // AllowPtrArithmetic because it is assigned an AllowPtrArithmetic pointer.
-    raw_ptr<QuerySync, DanglingUntriaged | AllowPtrArithmetic> sync = nullptr;
+    raw_ptr<QuerySync, DanglingUntriaged> sync = nullptr;
     int32_t submit_count = 0;
   };
 
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd
index 98a184b..8496681 100644
--- a/ios/chrome/app/strings/ios_strings.grd
+++ b/ios/chrome/app/strings/ios_strings.grd
@@ -1774,6 +1774,24 @@
       <message name="IDS_IOS_OPTIONS_PRIVACY_GOOGLE_SERVICES_FOOTER" desc="Footer to invite the user to open the Sync and Google Services settings.">
         For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">BEGIN_LINK</ph>Sync and Google Services<ph name="END_LINK">END_LINK</ph>.
       </message>
+      <message name="IDS_IOS_PARTIAL_TRANSLATE_ACTION_TRANSLATE_FULL_PAGE" desc="The action button to translate the full page (Title Case).">
+        Translate Full Page
+      </message>
+      <message name="IDS_IOS_PARTIAL_TRANSLATE_EDIT_MENU_ENTRY" desc="Action displayed in Edit Menu to trigger Partial Translate. As an action, it should be an infinitive verb, but should also respect the 'Google Translate' branding. Possible variations are 'Google Translate' or 'Translate with Google' are acceptable to meet those criteria [MAX_LENGTH=25em].">
+        Google Translate
+      </message>
+      <message name="IDS_IOS_PARTIAL_TRANSLATE_ERROR_GENERIC" desc="Error message when when the process failed (unknown reason).">
+        Partial translation failed.
+      </message>
+      <message name="IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_EMPTY" desc="Error message when the string is empty.">
+        The selected text is empty.
+      </message>
+      <message name="IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_TOO_LONG_ERROR" desc="Error message when the string is too long.">
+        The selected text is too large for partial translation.
+      </message>
+      <message name="IDS_IOS_PARTIAL_TRANSLATE_SWITCH_FULL_PAGE_TRANSLATION" desc="Title of the alert proposing to switch to full page translation if partial translate fails.">
+        Switch to Full Page Translation
+      </message>
       <message name="IDS_IOS_PRICE_NOTIFICATIONS_PRICE_TRACK_PERMISSION_REDIRECT_ALERT_CANCEL" desc="The label for the alert's cancel button">
           Cancel
       </message>
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ACTION_TRANSLATE_FULL_PAGE.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ACTION_TRANSLATE_FULL_PAGE.png.sha1
new file mode 100644
index 0000000..e9a2a52
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ACTION_TRANSLATE_FULL_PAGE.png.sha1
@@ -0,0 +1 @@
+782bebc952417de130e64f6e438f681a1943ae41
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_EDIT_MENU_ENTRY.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_EDIT_MENU_ENTRY.png.sha1
new file mode 100644
index 0000000..f2d8f32
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_EDIT_MENU_ENTRY.png.sha1
@@ -0,0 +1 @@
+71ce1af2b892c6c849ff7d0236616d7acd959458
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ERROR_GENERIC.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ERROR_GENERIC.png.sha1
new file mode 100644
index 0000000..e9a2a52
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ERROR_GENERIC.png.sha1
@@ -0,0 +1 @@
+782bebc952417de130e64f6e438f681a1943ae41
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_EMPTY.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_EMPTY.png.sha1
new file mode 100644
index 0000000..9ef0429
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_EMPTY.png.sha1
@@ -0,0 +1 @@
+5cebb18d6012e9f16ec91e1ac65d677835eb3a7c
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_TOO_LONG_ERROR.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_TOO_LONG_ERROR.png.sha1
new file mode 100644
index 0000000..de511867
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_TOO_LONG_ERROR.png.sha1
@@ -0,0 +1 @@
+405dee71616d30a367b6c179123c14ab173c0b0c
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_SWITCH_FULL_PAGE_TRANSLATION.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_SWITCH_FULL_PAGE_TRANSLATION.png.sha1
new file mode 100644
index 0000000..e9a2a52
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PARTIAL_TRANSLATE_SWITCH_FULL_PAGE_TRANSLATION.png.sha1
@@ -0,0 +1 @@
+782bebc952417de130e64f6e438f681a1943ae41
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb
index f6db6dba..f205d91 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Chromiumን ይምረጡ</translation>
 <translation id="1091252999271033193">ይህ ማለት Chromium የተንቀሳቃሽ ስልክ ጣቢያውን በእያንዳንዱ ጊዜ ይጠይቃል ማለት ነው።</translation>
 <translation id="1185134272377778587">ስለChromium</translation>
+<translation id="1256849392437386613">«የዋጋ ትራክ»ን ለማብራት በመሣሪያ ቅንብሮች ውስጥ የChromium ማሳወቂያዎችን ይፍቀዱ</translation>
 <translation id="1257458525759135959">ምስሎችን ለማስቀመጥ፣ Chromium ወደ የእርስዎ ፎቶዎች ማከል እንዲችል ለማድረግ ቅንብሮች ላይ መታ ያድርጉ</translation>
 <translation id="1289216811211435351">ወደ Chromium ይቀየር?</translation>
 <translation id="1361748954329991663">Chromium ጊዜው አልፎበታል። በ<ph name="BEGIN_LINK" />App Store<ph name="END_LINK" /> ውስጥ ምንም ዝማኔ ከሌለ የእርስዎ መሣሪያ አዲስ የChromium ስሪቶችን ከእንግዲህ ላይደግፍ ይችላል።</translation>
@@ -70,6 +71,7 @@
 <translation id="5573014823074921752">የChromium ጠቃሚ ምክር። ተጨማሪ የትር አማራጮችን ለማግኘት በመሣሪያ አሞሌው ውስጥ የትሮችን አሳይ አዝራሩን ነክተው ይያዙ፣ ይህ በማያ ገጽዎ አናት ወይም ግርጌ ላይ ነው ያለው።</translation>
 <translation id="5700709190537129682">Chromium የእርስዎን የይለፍ ቃላት መፈተሽ አይችልም</translation>
 <translation id="5777187867430702742">የChromium ገጽ</translation>
+<translation id="5918064849477363478">በመሣሪያዎ ቅንብሮች ውስጥ የChromium ማሳወቂያዎች ጠፍተዋል። በመጀመሪያ ማሳወቂያዎችን መፍቀድ ያስፈልግዎታል።</translation>
 <translation id="5945387852661427312">በ<ph name="DOMAIN" /> ከሚተዳደር መለያ ዘግተው እየወጡና ለአስተዳዳሪው ሙሉውን በChromium ውሂብዎ ቁጥጥር እየሰጡ ነው። የእርስዎ ውሂብ እስከመጨረሻው ከዚህ መለያ ጋር ይተሳሰራል። ከChromium ዘግቶ መውጣት ውሂብዎን ከዚህ መሣሪያ ይሰርዘዋል፣ ነገር ግን በእርስዎ Google መለያ ላይ እንደተከማቸ ይቆያል።</translation>
 <translation id="5983312940147103417">Chromiumን የተሻለ ያድርጉት</translation>
 <translation id="6062449165341879460">በዚህ መለያ ውስጥ ለሚያከማቿቸው የእርስዎ የChromium ውሂብ፣ እልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች ድርጅትዎ <ph name="DOMAIN" /> መዳረሻ ይኖረዋል። ዘግተው በሚወጡበት ጊዜ፣ ውሂብዎ ከዚህ መሣሪያ ላይ ይጸዳል።  ሆኖም፣ ውሂብዎ በሚተዳደር የGoogle መለያዎ እንደተከማቸ የሚቆይ እና ለድርጅትዎ የሚገኝ ይሆናል። እንዲሁም ድርጅትዎ ለዚያ መለያ የChromium ባህሪን ሊቀይሩ የሚችሉ የተወሰኑ የተጠቃሚ መመሪያዎችን ማቀናበር ይችላል።</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_az.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_az.xtb
index d68cd4f..7e64ea0 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_az.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Chromium seçin</translation>
 <translation id="1091252999271033193">Yəni, Chromium hər dəfə mobil saytı tələb edəcək.</translation>
 <translation id="1185134272377778587">Chromium haqqında</translation>
+<translation id="1256849392437386613">"Qiyməti izləyin" seçimini aktiv etmək üçün cihaz ayarlarında Chromium bildirişlərinə icazə verin</translation>
 <translation id="1257458525759135959">Şəkilləri yadda saxlamaq üçün, Ayarlara toxunaraq Chromium'a fotolarınıza əlavə etmək icazəsi verin</translation>
 <translation id="1289216811211435351">Chromium'a keçin</translation>
 <translation id="1361748954329991663">Chromium köhnəlib. <ph name="BEGIN_LINK" />App Store'da<ph name="END_LINK" /> əlçatan güncəlləmə yoxdursa, ola bilər ki, cihazınız artıq Chromium'un yeni versiyalarını dəstəkləmir.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromium məsləhəti. Daha çox tab seçimləri üçün ekranın aşağısında və ya yuxarısında yerləşən alət panelində "Tabları Göstərin" düyməsinə basıb saxlayın.</translation>
 <translation id="5700709190537129682">Chromium parollarınızı yoxlaya bilmir</translation>
 <translation id="5777187867430702742">Chromium Səhifəsi</translation>
+<translation id="5918064849477363478">Chromium bildirişləri cihaz ayarlarında deaktiv edilib. Əvvəlcə bildirişlərə icazə verməli olacaqsınız.</translation>
 <translation id="5945387852661427312"><ph name="DOMAIN" /> tərəfindən idarə olunan hesab ilə daxil olursunuz və onun administratoruna Chromium datanız üzərində nəzarəti verirsiniz. Datanız həmişəlik bu hesab ilə əlaqələndiriləcək. Chromium'dan çıxmaq datanızı bu cihazdan siləcək, lakin data Google Hesabında qalacaq.</translation>
 <translation id="5983312940147103417">Chromium'u yaxşılaşdırın</translation>
 <translation id="6062449165341879460">Təşkilatınızın (<ph name="DOMAIN" />) bu hesabda saxladığınız Chromium datası, əlfəcinlər, tarixçələr, parollar və digər ayarlara girişi olacaq. Hesabdan çıxdığınız zaman datanız bu cihazdan silinəcək.  Bununla belə, datanız idarə olunan Google Hesabınızda saxlanacaq və təşkilatınız üçün əlçatan olacaq. Təşkilatınız həmçinin Chromium'un davranışını dəyişə bilən hesab üçün xüsusi istifadəçi siyasətləri təyin edə bilər.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb
index 8ada14a0..772047f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Выберыце Chromium.</translation>
 <translation id="1091252999271033193">Гэта азначае, што Chromium будзе кожны раз запытваць версію сайта для мабільных прылад.</translation>
 <translation id="1185134272377778587">Пра Chromium</translation>
+<translation id="1256849392437386613">Каб уключыць функцыю "Адсочванне цаны", дазвольце апавяшчэнні Chromium у наладах прылады</translation>
 <translation id="1257458525759135959">Каб магчы захоўваць відарысы, націсніце "Налады" і дазвольце Chromium дадаваць вашы фота</translation>
 <translation id="1289216811211435351">Пераходзьце на Chromium</translation>
 <translation id="1361748954329991663">Ваша версія Chromium састарэла. Калі ў <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" /> абнаўленняў няма, магчыма, прылада больш не падтрымлівае новыя версіі Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Падказка Chromium. Каб адкрыць больш параметраў укладкі, націсніце і ўтрымлівайце кнопку "Паказваць укладкі" на панэлі інструментаў, якая знаходзіцца ўнізе або ўверсе экрана.</translation>
 <translation id="5700709190537129682">Браўзеру Chromium не ўдаецца праверыць паролі</translation>
 <translation id="5777187867430702742">Старонка Chromium</translation>
+<translation id="5918064849477363478">Спачатку ўключыце апавяшчэнні Chromium у наладах прылады.</translation>
 <translation id="5945387852661427312">Вы ўваходзіце праз уліковы запіс, які кіруецца даменам <ph name="DOMAIN" />, што дае адміністратару кантроль над вашымі данымі з браўзера Chromium. Вашы даныя будуць назаўсёды прывязаны да гэтага ўліковага запісу. Калі выйсці з браўзера Chromium, вашы даныя будуць выдалены з гэтай прылады, але застануцца ва Уліковым запісе Google.</translation>
 <translation id="5983312940147103417">Зрабіце браўзер Chromium лепшым</translation>
 <translation id="6062449165341879460">Ваша арганізацыя <ph name="DOMAIN" /> будзе мець доступ да даных, закладак, гісторыі і пароляў Chromium, а таксама іншых параметраў гэтага ўліковага запісу. Пасля выхаду з уліковага запісу ўсе вашы даныя будуць выдалены з гэтай прылады.  Пры гэтым яны застануцца ва Уліковым запісе Google пад кіраваннем, і ваша арганізацыя будзе мець да іх доступ. Арганізацыя таксама можа задаваць палітыкі для карыстальнікаў – яны будуць дзейнічаць у дачыненні да ўліковага запісу пад кіраваннем і могуць змяняць работу Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb
index 1e04f41..5e0b219b 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Chromium বেছে নিন</translation>
 <translation id="1091252999271033193">এর মানে Chromium প্রতিবার মোবাইল সাইটের অনুরোধ করবে।</translation>
 <translation id="1185134272377778587">Chromium সম্পর্কে</translation>
+<translation id="1256849392437386613">'দাম ট্র্যাক করুন' বিকল্প চালু করতে ডিভাইস সেটিংসে Chromium বিজ্ঞপ্তিগুলিকে অনুমতি দিন</translation>
 <translation id="1257458525759135959">ছবি সেভ করতে, সেটিংসে ট্যাপ করুন যাতে Chromium আপনার ফটো যোগ করতে পারে</translation>
 <translation id="1289216811211435351">Chromium-এ পাল্টান</translation>
 <translation id="1361748954329991663">Chromium-এর এই ভার্সন পুরনো হয়ে গেছে। যদি <ph name="BEGIN_LINK" />অ্যাপ স্টোরে<ph name="END_LINK" /> কোনও আপডেট উপলভ্য না থাকে, তাহলে এমন হতে পারে যে আপনার ডিভাইস Chromium-এর নতুন ভার্সনের সাথে আর কাজ করতে পারবে না।</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromium সংক্রান্ত পরামর্শ। আরও ট্যাবের বিকল্প দেখতে আপনার স্ক্রিনের নিচে অথবা উপরের দিকে থাকা টুলবারে 'ট্যাব দেখান' বিকল্পটি টাচ করে ধরে থাকুন।</translation>
 <translation id="5700709190537129682">Chromium আপনার পাসওয়ার্ড চেক করতে পারছে না</translation>
 <translation id="5777187867430702742">Chromium পৃষ্ঠা</translation>
+<translation id="5918064849477363478">আপনার ডিভাইস সেটিংসে Chromium বিজ্ঞপ্তিগুলি বন্ধ করা আছে। প্রথমেই বিজ্ঞপ্তিকে অনুমতি দিতে হবে।</translation>
 <translation id="5945387852661427312">আপনি <ph name="DOMAIN" /> পরিচালিত একটি অ্যাকাউন্টের মাধ্যমে সাইন-ইন করছেন এবং এর অ্যাডমিনিস্ট্রেটরকে আপনার Chromium ডেটা নিয়ন্ত্রণ করতে দিচ্ছেন৷ আপনার ডেটা এই অ্যাকাউন্টের সাথে স্থায়ীভাবে আবদ্ধ হবে৷ Chromium থেকে সাইন-আউট করলে এই ডিভাইস থেকে আপনার ডেটা মুছে ফেলা হবে, কিন্তু এটি আপনার Google অ্যাকাউন্টে সঞ্চিত থাকবে।</translation>
 <translation id="5983312940147103417">Chromium আরও উন্নত করতে সাহায্য করুন</translation>
 <translation id="6062449165341879460">আপনার সংস্থা <ph name="DOMAIN" />-এর কাছে আপনার Chromium ডেটা, বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং এই অ্যাকাউন্টে আপনার স্টোর করা অন্যান্য সেটিংসে অ্যাক্সেস রয়েছে। সাইন-আউট করার সময় এই ডিভাইস থেকে আপনার ডেটা মুছে ফেলা হবে।  যাইহোক, আপনার ম্যানেজ করা Google অ্যাকাউন্টে ডেটা স্টোর করা থাকবে এবং আপনার সংস্থা সেটি অ্যাক্সেস করতে পারবে। আপনার সংস্থা সেই অ্যাকাউন্টে ব্যবহারকারী নীতিও সেট করতে পারে যা Chromium-এর আচরণ পরিবর্তন করে।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb
index c0ae584..f4619f30 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Selecciona Chromium.</translation>
 <translation id="1091252999271033193">Això vol dir que Chromium sol·licitarà el lloc web per a mòbils cada vegada.</translation>
 <translation id="1185134272377778587">Quant a Chromium</translation>
+<translation id="1256849392437386613">Per activar l'opció Seguiment de preus, permet les notificacions de Chromium a la configuració del dispositiu</translation>
 <translation id="1257458525759135959">Si vols desar imatges, toca Configuració per permetre que Chromium les afegeixi a les teves fotos</translation>
 <translation id="1289216811211435351">Canvia a Chromium</translation>
 <translation id="1361748954329991663">Chromium no està actualitzat. Si no hi ha cap actualització disponible a l'<ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, pot ser que el teu dispositiu ja no admeti les versions noves de Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Consell de Chromium. Per accedir a més opcions de pestanyes, mantén premut el botó Mostra pestanyes a la barra d'eines, que és a la part inferior o superior de la pantalla.</translation>
 <translation id="5700709190537129682">Chromium no pot comprovar les teves contrasenyes</translation>
 <translation id="5777187867430702742">Pàgina de Chromium</translation>
+<translation id="5918064849477363478">Les notificacions de Chromium estan desactivades a la configuració del dispositiu. Primer les has de permetre.</translation>
 <translation id="5945387852661427312">Estàs iniciant la sessió amb un compte gestionat per <ph name="DOMAIN" /> i estàs donant a l'administrador el control de les teves dades de Chromium. Les dades passaran a estar vinculades a aquest compte permanentment. Si tanques la sessió de Chromium, se suprimiran les teves dades d'aquest dispositiu, però continuaran emmagatzemades al teu compte de Google.</translation>
 <translation id="5983312940147103417">Millora Chromium</translation>
 <translation id="6062449165341879460">La teva organització (<ph name="DOMAIN" />) tindrà accés a les teves dades, les adreces d'interès, l'historial, les contrasenyes i altres opcions de configuració de Chromium que emmagatzemis en aquest compte. Quan tanquis la sessió, les teves dades s'esborraran d'aquest dispositiu,  però continuaran emmagatzemades al teu Compte de Google gestionat i estaran disponibles per a la teva organització. L'organització també pot definir polítiques dels usuaris específiques del compte que poden canviar el comportament de Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_cy.xtb
index 7fd4b48..ce6efa8 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_cy.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Dewiswch Chromium</translation>
 <translation id="1091252999271033193">Mae hyn yn golygu y bydd Chromium yn gofyn am y wefan symudol bob tro.</translation>
 <translation id="1185134272377778587">Ynghylch Chromium</translation>
+<translation id="1256849392437386613">I droi `Olrhain Pris` ymlaen Caniatewch Hysbysiadau Chromium yng Ngosodiadau'r Ddyfais</translation>
 <translation id="1257458525759135959">I gadw lluniau, tapiwch ar Gosodiadau i ganiatáu i Chromium ychwanegu at eich lluniau</translation>
 <translation id="1289216811211435351">Newid i Chromium</translation>
 <translation id="1361748954329991663">Mae Chromium yn hen. Os nad oes diweddariad ar gael yn <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, mae'n bosib nad yw'ch dyfais yn cefnogi fersiynau newydd o Chromium mwyach.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Awgrym Chromium. Am ragor o opsiynau tabiau, cyffyrddwch a daliwch y botwm Dangos Tabiau yn y bar offer, sydd ar waelod neu ar frig eich sgrîn.</translation>
 <translation id="5700709190537129682">Ni all Chromium wirio'ch cyfrineiriau</translation>
 <translation id="5777187867430702742">Tudalen Chromium</translation>
+<translation id="5918064849477363478">Mae hysbysiadau Chromium wedi'u diffodd yng ngosodiadau eich dyfais. Bydd angen i chi ganiatáu hysbysiadau yn gyntaf.</translation>
 <translation id="5945387852661427312">Rydych yn mewngofnodi gyda chyfrif a reolir gan <ph name="DOMAIN" /> ac yn rhoi rheolaeth dros eich data Chromium i'w weinyddwr. Bydd eich data yn cael eu cysylltu'n barhaol i'r cyfrif hwn. Bydd allgofnodi o Chromium yn dileu eich data o'r ddyfais hon, ond bydd yn parhau i gael ei storio yn eich Cyfrif Google.</translation>
 <translation id="5983312940147103417">Gwella Chromium</translation>
 <translation id="6062449165341879460">Bydd gan <ph name="DOMAIN" /> eich sefydliad fynediad at eich data Chromium, nodau tudalen, hanes, cyfrineiriau a gosodiadau eraill rydych yn eu storio yn y cyfrif hwn. Pan fyddwch yn allgofnodi, bydd eich data yn cael eu clirio o'r ddyfais hon.  Fodd bynnag, bydd eich data yn parhau i gael ei storio yn eich Cyfrif Google a reolir a bydd ar gael i'ch sefydliad. Gall eich sefydliad hefyd osod polisïau defnyddwyr sy'n benodol i'r cyfrif hwnnw a all newid ymddygiad Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
index be02a69..bb9886c6 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Vælg Chromium</translation>
 <translation id="1091252999271033193">Det betyder, at Chromium anmoder om mobilwebsitet hver gang.</translation>
 <translation id="1185134272377778587">Om Chromium</translation>
+<translation id="1256849392437386613">Hvis du vil aktivere "Hold øje med prisudviklingen", skal du tillade Chromium-notifikationer i enhedsindstillingerne</translation>
 <translation id="1257458525759135959">Hvis du vil gemme billeder, skal du trykke på Indstillinger for at give Chromium tilladelse til at føje billeder til din mappe</translation>
 <translation id="1289216811211435351">Skift til Chromium</translation>
 <translation id="1361748954329991663">Chromium er forældet. Hvis der ikke er en tilgængelig opdatering i <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, kan det skyldes, at din enhed ikke længere understøtter nye Chromium-versioner.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromium-tip. Hvis du vil se flere faneindstillinger, skal du trykke på knappen Vis faner på værktøjslinjen og holde fingeren nede. Du finder knappen nederst eller øverst på skærmen.</translation>
 <translation id="5700709190537129682">Chromium kan ikke tjekke dine adgangskoder</translation>
 <translation id="5777187867430702742">Chromium-side</translation>
+<translation id="5918064849477363478">Chromium-notifikationer er deaktiveret i enhedsindstillingerne. Du skal først tillade notifikationer.</translation>
 <translation id="5945387852661427312">Du er ved at logge ind med en konto, der administreres af <ph name="DOMAIN" />, hvilket giver administratoren kontrol over dine Chromium-data. Dine data tilknyttes denne konto permanent. Hvis du logger ud af Chromium, slettes dine data fra denne enhed, men de forbliver gemt på din Google-konto.</translation>
 <translation id="5983312940147103417">Gør Chromium bedre</translation>
 <translation id="6062449165341879460">Din organisation <ph name="DOMAIN" /> får adgang til din Chromium-historik samt dine Chromium-data, -bogmærker, -adgangskoder og andre indstillinger, som du har gemt på denne konto. Når du logger ud, ryddes dine data fra denne enhed.  Dine data vil dog fortsat være gemt på din managerstyrede Google-konto, og de vil fortsat være tilgængelige for din organisation. Din organisation kan også konfigurere brugerpolitikker, der gælder specifikt for den pågældende konto, og som kan ændre Chromiums adfærd.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb
index cdb5d38c..cea800f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Wähle Chromium aus</translation>
 <translation id="1091252999271033193">Das bedeutet, dass Chromium immer die mobile Website anfordert.</translation>
 <translation id="1185134272377778587">Über Chromium</translation>
+<translation id="1256849392437386613">Zum Aktivieren von „Preis beobachten“ Chromium-Benachrichtigungen in den Geräteeinstellungen zulassen</translation>
 <translation id="1257458525759135959">Um Bilder zu speichern, gib Chromium unter „Einstellungen“ die Berechtigung zum Hinzufügen von Fotos</translation>
 <translation id="1289216811211435351">Zu Chromium wechseln</translation>
 <translation id="1361748954329991663">Chromium ist veraltet. Wenn im <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" /> kein Update verfügbar ist, unterstützt dein Gerät neuere Versionen von Chromium möglicherweise nicht mehr.</translation>
@@ -70,6 +71,7 @@
 <translation id="5573014823074921752">Chromium-Tipp: Wenn du weitere Tab-Optionen sehen möchtest, berühre und halte die Schaltfläche "Tabs anzeigen" in der Symbolleiste. Diese befindet sich unten oder oben auf dem Bildschirm.</translation>
 <translation id="5700709190537129682">Chromium kann deine Passwörter nicht prüfen</translation>
 <translation id="5777187867430702742">Chromium-Seite</translation>
+<translation id="5918064849477363478">Chromium-Benachrichtigungen sind in den Geräteeinstellungen deaktiviert. Du musst sie zuerst zulassen.</translation>
 <translation id="5945387852661427312">Du meldest dich mit einem von <ph name="DOMAIN" /> verwalteten Konto an und gibst dem Administrator der Domain Kontrolle über deine Chromium-Daten. Die Daten werden diesem Konto dauerhaft zugeordnet. Wenn du dich von Chromium abmeldest, werden deine Daten auf dem Gerät gelöscht, bleiben jedoch in deinem Google-Konto erhalten.</translation>
 <translation id="5983312940147103417">Chromium verbessern</translation>
 <translation id="6062449165341879460">Deine Organisation <ph name="DOMAIN" /> hat Zugriff auf deine Daten, Lesezeichen, Passwörter und deinen Verlauf in Chromium sowie auf andere Einstellungen, die du in diesem Konto speicherst. Wenn du dich abmeldest, werden deine Daten von diesem Gerät gelöscht.  Die Daten bleiben jedoch in deinem verwalteten Google-Konto gespeichert und können von deiner Organisation abgerufen werden. Deine Organisation kann auch spezifische Nutzerrichtlinien für dieses Konto festlegen, die das Verhalten von Chromium verändern können.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb
index fb2e27d..d495822c 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Valige Chromium</translation>
 <translation id="1091252999271033193">See tähendab, et Chromium taotleb iga kord mobiilisaiti.</translation>
 <translation id="1185134272377778587">Teave Chromiumi kohta</translation>
+<translation id="1256849392437386613">Hindade jälgimise sisselülitamiseks lubage seadme seadetes Chromiumi märguanded</translation>
 <translation id="1257458525759135959">Piltide salvestamiseks puudutage valikut Seaded, et lubada Chromiumil fotode lisamine</translation>
 <translation id="1289216811211435351">Lülituge Chromiumile</translation>
 <translation id="1361748954329991663">Chromium on aegunud. Kui <ph name="BEGIN_LINK" />App Store'is<ph name="END_LINK" /> pole värskendust saadaval, on võimalik, et teie seade ei toeta enam Chromiumi uuemaid versioone.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromiumi nõuanne. Vahelehtede lisavalikute nägemiseks puudutage ja hoidke all ekraanikuva üla- või alaosas tööriistaribal olevat nuppu Kuva vahelehed.</translation>
 <translation id="5700709190537129682">Chromiumil ei õnnestu teie paroole kontrollida</translation>
 <translation id="5777187867430702742">Chromiumi leht</translation>
+<translation id="5918064849477363478">Chromiumi märguanded on teie seadme seadetes välja lülitatud. Peate esmalt märguanded lubama.</translation>
 <translation id="5945387852661427312">Logite sisse kontoga, mida haldab <ph name="DOMAIN" />, ja annate selle administraatorile üle Chromiumi andmete juhtimise. Teie andmed seotakse jäädavalt selle kontoga. Chromiumist väljalogimisel kustutatakse teie andmed sellest seadmest, kuid need jäävad alles teie Google'i kontole.</translation>
 <translation id="5983312940147103417">Chromiumi täiustamine</translation>
 <translation id="6062449165341879460">Teie organisatsioon <ph name="DOMAIN" /> saab juurdepääsu teie Chromiumi andmetele, järjehoidjatele, ajaloole, paroolidele ja muudele seadetele, mille sellele kontole salvestate. Kui välja logite, kustutatakse teie andmed sellest seadmest.  Teie andmed jäävad teie hallatud Google'i kontole siiski alles ja need on teie organisatsiooni jaoks saadaval. Teie organisatsioon saab määrata ka konto kasutajareegleid, millega saab Chromiumi käitumist muuta.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
index 83a3977..cddf9f0 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">‏Chromium را انتخاب کنید</translation>
 <translation id="1091252999271033193">‏به این معنی که Chromium هربار سایت ویژه تلفن همراه را درخواست خواهد کرد.</translation>
 <translation id="1185134272377778587">‏درباره Chromium</translation>
+<translation id="1256849392437386613">‏برای روشن کردن «ردیابی قیمت»، اعلان‌های Chromium را در تنظیمات دستگاه مجاز کنید</translation>
 <translation id="1257458525759135959">‏برای ذخیره کردن تصاویر، روی «تنظیمات» ضربه بزنید و به Chromium اجازه دهید آن‌ها را به عکس‌ها اضافه کند</translation>
 <translation id="1289216811211435351">‏رفتن به Chromium</translation>
 <translation id="1361748954329991663">‏نسخه Chromium قدیمی است. اگر به‌روزرسانی‌ای در <ph name="BEGIN_LINK" />فروشگاه برنامه<ph name="END_LINK" /> دردسترس نیست، احتمالاً دستگاهتان نسخه‌های جدید Chromium را دیگر پشتیبانی نمی‌کند.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">‏نکته Chromium. برای دیدن گزینه‌های بیشتر برگه، دکمه «نمایش برگه‌ها» را در نوارابزار (واقع در پایین یا بالای صفحه) لمس کنید و نگه دارید.</translation>
 <translation id="5700709190537129682">‏Chromium نمی‌تواند گذرواژه‌هایتان را بررسی کند</translation>
 <translation id="5777187867430702742">‏صفحه Chromium</translation>
+<translation id="5918064849477363478">‏اعلان‌های Chromium در تنظیمات دستگاهتان خاموش است. ابتدا باید اعلان‌ها را مجاز کنید.</translation>
 <translation id="5945387852661427312">‏هم‌اکنون درحال ورود به سیستم با حسابی مدیریت‌شده توسط <ph name="DOMAIN" /> و دادن کنترل داده‌های Chromium خود به سرپرست این حساب هستید. داده‌هایتان به‌طور دائم به این حساب مرتبط می‌شوند. با خروج از Chrome، داده‌هایتان از این دستگاه حذف می‌شوند اما همچنان در حساب Google شما باقی می‌ماند.</translation>
 <translation id="5983312940147103417">‏بهتر کردن Chromium</translation>
 <translation id="6062449165341879460">‏سازمانتان (<ph name="DOMAIN" />) به داده‌های Chromium، نشانک‌ها، سابقه، گذرواژه‌ها، و دیگر تنظیماتی که در حسابتان ذخیره می‌کنید دسترسی خواهد داشت. وقتی از سیستم خارج می‌شوید، داده‌هایتان از این دستگاه پاک خواهد شد.  اما داده‌هایتان در «حساب Google» مدیریت‌شده شما باقی خواهد ماند و برای سازمانتان دردسترس خواهد بود. سازمانتان همچنین می‌تواند خط‌مشی‌های کاربر مختص آن حساب را تنظیم کند که می‌تواند رفتار Chromium را تغییر دهید.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb
index fbb6d86..82d3640 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Piliin ang Chromium</translation>
 <translation id="1091252999271033193">Nangangahulugan itong hihilingin ng Chromium ang pang-mobile na site sa lahat ng pagkakataon.</translation>
 <translation id="1185134272377778587">Tungkol sa Chromium</translation>
+<translation id="1256849392437386613">Para I-on ang `Subaybayan ang Presyo,` Payagan ang Mga Notification sa Chromium sa Mga Setting ng Device</translation>
 <translation id="1257458525759135959">Para makapag-save ng mga larawan, mag-tap sa Mga Setting para payagan ang Chromium na magdagdag sa iyong mga larawan</translation>
 <translation id="1289216811211435351">Lumipat sa Chromium</translation>
 <translation id="1361748954329991663">Luma na ang Chromium. Kung walang available na update sa <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, posibleng hindi na sinusuportahan ng iyong device ang mga bagong bersyon ng Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Tip sa Chromium. Para sa higit pang opsyon sa tab, pindutin nang matagal ang button na Ipakita ang Mga Tab sa toolbar, na nasa ibaba o itaas ng iyong screen.</translation>
 <translation id="5700709190537129682">Hindi masuri ng Chromium ang iyong mga password</translation>
 <translation id="5777187867430702742">Page ng Chromium</translation>
+<translation id="5918064849477363478">Naka-off ang mga notification sa Chromium sa mga setting ng iyong device. Kakailanganin mo munang payagan ang mga notification.</translation>
 <translation id="5945387852661427312">Nag-sign in ka gamit ang account na pinamamahalaan ng <ph name="DOMAIN" /> at binibigyan mo ang administrator nito ng kontrol sa iyong data sa Chromium. Permanenteng mauugnay ang data mo sa account na ito. Made-delete ang data mo sa device na ito kapag nag-sign out ka sa Chromium, ngunit mananatili itong naka-store sa Google Account mo.</translation>
 <translation id="5983312940147103417">Pahusayin ang Chromium</translation>
 <translation id="6062449165341879460">Magkakaroon ng access ang <ph name="DOMAIN" /> ng iyong organisasyon sa data, mga bookmark, history, mga password, at iba mo pang setting sa Chromium na iso-store mo sa account na ito. Kapag nag-sign out ka, maki-clear ang iyong data sa device na ito.  Gayunpaman, mananatiling naka-store ang iyong data sa pinapamahalaang Google Account mo at magiging available ito sa iyong organisasyon. Puwede ring magtakda ang iyong organisasyon ng mga patakaran ng user na partikular sa account na iyon na puwedeng makabago sa gawi ng Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fr-CA.xtb
index 7071040..ba29aab 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fr-CA.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Sélectionnez Chromium</translation>
 <translation id="1091252999271033193">Cela signifie que Chromium demandera toujours la version mobile du site.</translation>
 <translation id="1185134272377778587">À propos de Chromium</translation>
+<translation id="1256849392437386613">Pour activer l'option « Suivre le prix », autorisez les notifications de Chromium dans les paramètres de l'appareil</translation>
 <translation id="1257458525759135959">Pour enregistrer des images, touchez Paramètres et autorisez Chromium à les ajouter à vos photos</translation>
 <translation id="1289216811211435351">Passer à Chromium</translation>
 <translation id="1361748954329991663">Chromium n'est pas à jour. Si aucune mise à jour n'est offerte dans l'<ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, il est possible que votre appareil ne prenne plus en charge les nouvelles versions de Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Astuce pour Chromium. Pour afficher plus d'options d'onglets, maintenez le doigt sur le bouton Afficher les onglets dans la barre d'outils, qui se trouve dans le bas ou le haut de votre écran.</translation>
 <translation id="5700709190537129682">Chromium ne peut pas vérifier vos mots de passe</translation>
 <translation id="5777187867430702742">Page Chromium</translation>
+<translation id="5918064849477363478">Les notifications de Chromium sont désactivées dans les paramètres de votre appareil. Vous devrez d'abord activer les notifications.</translation>
 <translation id="5945387852661427312">Vous vous connectez avec un compte géré par <ph name="DOMAIN" />, et son administrateur pourra contrôler vos données Chromium. Celles-ci seront définitivement liées à votre compte. En vous déconnectant de Chromium, vous supprimerez vos données sur cet appareil, mais celles-ci resteront stockées dans votre compte Google.</translation>
 <translation id="5983312940147103417">Contribuez à améliorer Chromium</translation>
 <translation id="6062449165341879460">Votre organisation <ph name="DOMAIN" /> aura accès à vos données, favoris, historique, mots de passe et autres paramètres Chromium que vous stockez dans ce compte. Lorsque vous vous déconnectez, vos données sont effacées de cet appareil.  Cependant, vos données restent stockées dans votre compte Google géré et sont disponibles pour votre organisation. Votre organisation peut également définir des politiques relatives aux utilisateurs propres à ce compte, lesquelles peuvent modifier le comportement de Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb
index ae28d3b61..1ec78a8 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Selecciona Chromium</translation>
 <translation id="1091252999271033193">En consecuencia, Chromium sempre solicitará abrir o sitio para móbiles.</translation>
 <translation id="1185134272377778587">Acerca de Chromium</translation>
+<translation id="1256849392437386613">Para activar a opción Facer seguimento do prezo, vai á configuración do dispositivo e permite as notificacións de Chromium</translation>
 <translation id="1257458525759135959">Se queres gardar imaxes, para que Chromium poida engadir as túas fotos, toca Configuración</translation>
 <translation id="1289216811211435351">Pásate a Chromium</translation>
 <translation id="1361748954329991663">Chromium está desactualizado. Se non hai dispoñible ningunha actualización na <ph name="BEGIN_LINK" />tenda de aplicacións<ph name="END_LINK" />, é posible que o teu dispositivo xa non sexa compatible coas novas versións de Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Consello sobre Chromium: Para ver máis opcións relacionadas coas pestanas, mantén premido o botón Mostrar pestanas. Atoparalo na barra de ferramentas, situada na parte inferior ou superior da pantalla.</translation>
 <translation id="5700709190537129682">Chromium non puido comprobar os teus contrasinais</translation>
 <translation id="5777187867430702742">Páxina de Chromium</translation>
+<translation id="5918064849477363478">As notificacións de Chromium están desactivadas na configuración do dispositivo. Primeiro debes permitilas.</translation>
 <translation id="5945387852661427312">Estás iniciando sesión cunha conta xestionada por <ph name="DOMAIN" /> e proporcionándolle ao seu administrador o control dos teus datos de Chromium, que quedarán ligados permanentemente a esta conta. Se pechas sesión en Chromium, eliminaranse os teus datos deste dispositivo, pero seguirán almacenados na túa conta de Google.</translation>
 <translation id="5983312940147103417">Mellora Chromium</translation>
 <translation id="6062449165341879460">A túa organización (<ph name="DOMAIN" />) terá acceso aos teus datos de Chromium, así como aos marcadores, ao historial, aos contrasinais e a outras opcións de configuración que almacenes nesta conta. Cando peches sesión, os datos borraranse deste dispositivo.  Non obstante, permanecerán almacenados na túa Conta de Google xestionada e estarán dispoñibles para a túa organización. Esta tamén pode definir políticas de usuario específicas para esa conta que poden modificar o comportamento de Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb
index c1b8002..b6aa033 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Chromium चुनें</translation>
 <translation id="1091252999271033193">इसका मतलब है कि Chromium हर बार, साइट के मोबाइल वर्शन का अनुरोध करेगा.</translation>
 <translation id="1185134272377778587">क्रोमियम के बारे में</translation>
+<translation id="1256849392437386613">`कीमत ट्रैक करें` को चालू करने के लिए, डिवाइस की सेटिंग में Chromium को सूचनाएं भेजने की अनुमति दें</translation>
 <translation id="1257458525759135959">इमेज सेव करने के लिए, सेटिंग पर टैप करके क्रोमियम को अनुमति दें कि वह आपके फ़ोटो सेक्शन में इमेज जोड़ सके.</translation>
 <translation id="1289216811211435351">Chromium पर स्विच करें</translation>
 <translation id="1361748954329991663">क्रोमियम का यह वर्शन पुराना हो गया है. अगर <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" /> में कोई अपडेट उपलब्ध नहीं है, तो हो सकता है कि आपका डिवाइस अब क्रोमियम के नए वर्शन के साथ काम नहीं करता.</translation>
@@ -70,6 +71,7 @@
 <translation id="5573014823074921752">'क्रोमियम' इस्तेमाल करने के लिए सलाह. ज़्यादा टैब विकल्पोंं के लिए टूलबार में 'टैब दिखाएं' बटन को दबाकर रखें. यह बटन आपकी स्क्रीन में सबसे नीचे या सबसे ऊपर होगा.</translation>
 <translation id="5700709190537129682">क्रोमियम आपके पासवर्ड की जांच नहीं कर सकता</translation>
 <translation id="5777187867430702742">क्रोमियम पेज</translation>
+<translation id="5918064849477363478">आपके डिवाइस की सेटिंग में, Chromium की सूचनाएं भेजने की सुविधा बंद है. आपको पहले सूचनाएं भेजने की अनुमति देनी होगी.</translation>
 <translation id="5945387852661427312">आप <ph name="DOMAIN" /> से प्रबंधित खाते में साइन इन कर रहे हैं और उसके एडमिन को अपने क्रोमियम डेटा पर नियंत्रण दे रहे हैं. आपका डेटा इस खाते से स्थायी रूप से जुड़ जाएगा. क्रोमियम से साइन आउट करने से आपका डेटा इस डिवाइस से मिट जाएगा, लेकिन वह आपके Google खाते में बना रहेगा.</translation>
 <translation id="5983312940147103417">Chromium को बेहतर बनाएं</translation>
 <translation id="6062449165341879460">आपके संगठन <ph name="DOMAIN" /> के पास, आपके Chromium डेटा, बुकमार्क, इतिहास, पासवर्ड, और इस खाते में स्टोर की जाने वाली अन्य सेटिंग का ऐक्सेस होगा. साइन आउट करने पर, आपका डेटा इस डिवाइस से मिटा दिया जाएगा.  हालांकि, आपका डेटा, मैनेज किए जा रहे आपके Google खाते में सेव रहेगा और आपके संगठन के लिए उपलब्ध रहेगा. आपका संगठन उस खाते के लिए खास उपयोगकर्ता नीतियां भी सेट कर सकता है. इन नीतियों से, Chromium के काम करने के तरीके में बदलाव आ सकता है.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
index c9f582a..1fc134a 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Odaberite Chromium</translation>
 <translation id="1091252999271033193">To znači da će Chromium svaki put zahtijevati web-lokaciju za mobilne uređaje.</translation>
 <translation id="1185134272377778587">O pregledniku Chromium</translation>
+<translation id="1256849392437386613">Da biste uključili opciju Praćenje cijene, u postavkama uređaja dopustite obavijesti Chromiuma</translation>
 <translation id="1257458525759135959">Da bi se slike spremale, dodirnite Postavke kako biste dopustili Chromiumu da dodaje vašim fotografijama</translation>
 <translation id="1289216811211435351">Prelazak na Chromium</translation>
 <translation id="1361748954329991663">Chromium je zastario. Ako u <ph name="BEGIN_LINK" />trgovini aplikacija<ph name="END_LINK" /> nema dostupnih ažuriranja, postoji mogućnost da vaš uređaj više ne podržava nove verzije Chromiuma.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Savjet za Chromium. Za više opcija za kartice dodirnite i držite gumb Prikaži kartice na alatnoj traci pri dnu ili vrhu zaslona.</translation>
 <translation id="5700709190537129682">Chromium ne može provjeriti vaše zaporke</translation>
 <translation id="5777187867430702742">Chromiumova stranica</translation>
+<translation id="5918064849477363478">Obavijesti Chromiuma isključene su u postavkama uređaja. Najprije morate omogućiti obavijesti.</translation>
 <translation id="5945387852661427312">Prijavljujete se računom kojim upravlja <ph name="DOMAIN" /> i njegovom administratoru dajete kontrolu nad svojim podacima u Chromiumu. Vaši će se podaci trajno povezati s tim računom. Ako se odjavite s Chromiuma, vaši će se podaci izbrisati s ovog uređaja, no ostat će pohranjeni na vašem Google računu.</translation>
 <translation id="5983312940147103417">Poboljšavanje Chromiuma</translation>
 <translation id="6062449165341879460">Vaša organizacija <ph name="DOMAIN" /> imat će pristup vašim podacima, oznakama, povijesti, zaporkama i drugim postavkama Chromiuma koje pohranjujete na ovom računu. Kad se odjavite, vaši će se podaci izbrisati s ovog uređaja.  No vaši će podaci ostati pohranjeni na vašem upravljanom Google računu i bit će dostupni vašoj organizaciji. Vaša organizacija može postaviti i korisnička pravila koja se odnose na taj račun i koja mogu promijeniti Chromiumovo ponašanje.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
index 161bde2..9c7aa3d7 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Válassza ki a Chromium böngészőt.</translation>
 <translation id="1091252999271033193">Ez azt jelenti, hogy a Chromium mindig a mobilwebhelyet kéri majd.</translation>
 <translation id="1185134272377778587">A Chromium névjegye</translation>
+<translation id="1256849392437386613">Az „Árfigyelés” funkció bekapcsolásához engedélyezze a Chromium-értesítéseket az eszköz beállításaiban</translation>
 <translation id="1257458525759135959">A képek mentéséhez koppintson a Beállítások lehetőségre, hogy a Chromium hozzáadhassa őket a fotóihoz.</translation>
 <translation id="1289216811211435351">Váltás Chromiumra</translation>
 <translation id="1361748954329991663">A Chromium elavult. Ha nem áll rendelkezésre frissítés az <ph name="BEGIN_LINK" />App Store-ban<ph name="END_LINK" />, akkor lehet, hogy az eszköz már nem támogatja a Chromium újabb verzióit.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Tipp a Chromium használatához. A további lapbeállításokhoz érintse meg és tartsa lenyomva az eszköztárban lévő Lapok megjelenítése gombot, amely a képernyő alsó vagy felső részén található.</translation>
 <translation id="5700709190537129682">A Chromium nem tudja ellenőrizni a jelszavakat</translation>
 <translation id="5777187867430702742">A Chromium oldala</translation>
+<translation id="5918064849477363478">A Chromium-értesítések ki vannak kapcsolva az eszköz beállításaiban. Először engedélyeznie kell az értesítéseket.</translation>
 <translation id="5945387852661427312">Egy <ph name="DOMAIN" /> által felügyelt fiókkal jelentkezik be, és engedélyezi az adminisztrátor számára a Chromium-adatok kezelését. Adatai állandó jelleggel ehhez a fiókhoz lesznek társítva. A Chromiumból való kijelentkezéssel törli adatait erről az eszközről, de azok továbbra is megmaradnak Google-fiókjában.</translation>
 <translation id="5983312940147103417">A Chromium fejlesztése</translation>
 <translation id="6062449165341879460">Szervezete (<ph name="DOMAIN" />) hozzáfér majd az Ön Chromium-adataihoz, -könyvjelzőihez, -előzményeihez, -jelszavaihoz és az ebben a fiókban tárolt egyéb beállításaihoz. Kijelentkezéskor az adatai törlődnek erről az eszközről.  Az adatok azonban továbbra is megmaradnak a felügyelt Google-fiókban, és hozzáférhetők lesznek szervezete számára. Szervezete felhasználói házirendeket is beállíthat erre a fiókra vonatkozóan, amelyek módosíthatják a Chromium viselkedését.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb
index c175f76..f6161d31 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Seleziona Chromium</translation>
 <translation id="1091252999271033193">Ciò significa che Chromium richiederà ogni volta il sito per dispositivi mobili.</translation>
 <translation id="1185134272377778587">Informazioni su Chromium</translation>
+<translation id="1256849392437386613">Per attivare "Monitora prezzo" consenti le notifiche di Chromium nelle impostazioni del dispositivo</translation>
 <translation id="1257458525759135959">Per salvare le immagini, tocca Impostazioni e consenti a Chromium di aggiungere le tue foto</translation>
 <translation id="1289216811211435351">Passa a Chromium</translation>
 <translation id="1361748954329991663">Chromium non è aggiornato. Se non sono disponibili aggiornamenti nell'<ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, è possibile che il dispositivo non supporti più le nuove versioni di Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Suggerimento per Chromium. Per vedere più opzioni sulla scheda, tocca e tieni premuto il pulsante Mostra schede della barra degli strumenti, che si trova nella parte inferiore o superiore della schermata.</translation>
 <translation id="5700709190537129682">Chromium non può controllare le tue password</translation>
 <translation id="5777187867430702742">Pagina di Chromium</translation>
+<translation id="5918064849477363478">Le notifiche di Chromium sono disattivate nelle impostazioni del dispositivo. Prima dovrai consentire le notifiche.</translation>
 <translation id="5945387852661427312">Stai per eseguire l'accesso con un account gestito da <ph name="DOMAIN" /> e consentire al relativo amministratore di avere il controllo dei tuoi dati di Chromium. I tuoi dati verranno associati definitivamente a questo account. Se esci da Chromium, i dati verranno eliminati da questo dispositivo, ma rimarranno memorizzati nel tuo Account Google.</translation>
 <translation id="5983312940147103417">Migliora Chromium</translation>
 <translation id="6062449165341879460">La tua organizzazione <ph name="DOMAIN" /> avrà accesso ai dati, ai preferiti, alla cronologia, alle password e ad altre impostazioni di Chromium che hai memorizzato in questo account. Quando esci, i dati verranno cancellati da questo dispositivo.  Tuttavia, i tuoi dati rimarranno memorizzati nel tuo Account Google gestito e saranno disponibili per la tua organizzazione. La tua organizzazione può anche impostare criteri specifici per l'account in grado di modificare il comportamento di Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb
index 55ebc958..3af4099ff 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Chromium을 선택합니다.</translation>
 <translation id="1091252999271033193">Chromium에서 모바일 사이트를 매번 요청함을 의미합니다</translation>
 <translation id="1185134272377778587">Chromium 정보</translation>
+<translation id="1256849392437386613">'가격 추적'을 사용 설정하려면 기기 설정에서 Chromium 알림을 허용하세요</translation>
 <translation id="1257458525759135959">이미지를 저장하려면 '설정'을 탭하여 Chromium에 사진 추가 권한을 부여하세요.</translation>
 <translation id="1289216811211435351">Chromium으로 전환</translation>
 <translation id="1361748954329991663">Chromium이 이전 버전입니다. <ph name="BEGIN_LINK" />앱 스토어<ph name="END_LINK" />에 사용 가능한 업데이트가 없으면 기기에서 더 이상 Chromium의 새 버전을 지원하지 않는 것일 수 있습니다.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromium 도움말. 더 많은 탭 옵션을 보려면 화면 하단이나 상단에 있는 툴바에서 탭 표시 버튼을 길게 터치하세요.</translation>
 <translation id="5700709190537129682">Chromium에서 비밀번호를 확인할 수 없습니다.</translation>
 <translation id="5777187867430702742">Chromium 페이지</translation>
+<translation id="5918064849477363478">기기 설정에서 Chromium 알림이 사용 중지되어 있습니다. 먼저 알림을 허용해야 합니다.</translation>
 <translation id="5945387852661427312"><ph name="DOMAIN" />에서 관리하는 계정으로 로그인합니다. 계정 관리자가 내 Chromium 데이터를 관리하게 되며 데이터는 이 계정에 영구적으로 연결됩니다. Chromium에서 로그아웃하면 데이터가 기기에서 삭제되지만 Google 계정에는 그대로 유지됩니다.</translation>
 <translation id="5983312940147103417">Chromium 개선에 참여</translation>
 <translation id="6062449165341879460"><ph name="DOMAIN" /> 조직에서 이 계정에 저장하는 Chromium 데이터, 북마크, 방문 기록, 비밀번호, 기타 설정에 액세스할 수 있습니다. 로그아웃하면 데이터가 기기에서 삭제됩니다.  하지만 데이터는 관리 Google 계정에 계속 저장되어 조직에서 사용할 수 있습니다. 조직에서 관련 계정에 적용되는 사용자 정책을 설정하여 Chromium의 동작을 변경할 수도 있습니다.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
index 6844fd2..d70caf47 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">ເລືອກ Chromium</translation>
 <translation id="1091252999271033193">ນີ້ໝາຍຄວາມວ່າ Chromium ຈະຮ້ອງຂໍເວັບໄຊມືຖືທຸກເທື່ອ.</translation>
 <translation id="1185134272377778587">ກ່ຽວ​ກັບ Chromium</translation>
+<translation id="1256849392437386613">ເພື່ອເປີດ `ຕິດຕາມລາຄາ` ໃຫ້ອະນຸຍາດການແຈ້ງເຕືອນ Chromium ໃນການຕັ້ງຄ່າອຸປະກອນ</translation>
 <translation id="1257458525759135959">ເພື່ອບັນທຶກຮູບພາບ, ກະລຸນາແຕະໃສ່ການຕັ້ງຄ່າເພື່ອອະນຸຍາດໃຫ້ Chromium ເພີ່ມໃສ່ຮູບພາບຂອງທ່ານ</translation>
 <translation id="1289216811211435351">ປ່ຽນເປັນ Chromium</translation>
 <translation id="1361748954329991663">Chromium ເກົ່າແລ້ວ ຖ້າບໍ່ມີການອັບເດດໃນ <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, ມັນເປັນໄປໄດ້ວ່າອຸປະກອນຂອງທ່ານບໍ່ຮອງຮັບ Chromium ເວີຊັນໃໝ່ອີກຕໍ່ໄປ.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">ເຄັດລັບກ່ຽວກັບ Chromium. ສຳລັບຕົວເລືອກແຖບເພີ່ມເຕີມ, ກະລຸນາແຕະປຸ່ມສະແດງແຖບໃນແຖບເຄື່ອງມືຄ້າງໄວ້ ເຊິ່ງຢູ່ລຸ່ມສຸດ ຫຼື ເທິງສຸດຂອງໜ້າຈໍຂອງທ່ານ.</translation>
 <translation id="5700709190537129682">Chromium ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້</translation>
 <translation id="5777187867430702742">ໜ້າ Chromium</translation>
+<translation id="5918064849477363478">ການແຈ້ງເຕືອນ Chromium ປິດຢູ່ໃນການຕັ້ງຄ່າອຸປະກອນຂອງທ່ານ. ທ່ານຈະຕ້ອງອະນຸຍາດການແຈ້ງເຕືອນກ່ອນ.</translation>
 <translation id="5945387852661427312">ທ່ານກຳລັງເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີທີ່ຖືກຈັດການໂດຍ <ph name="DOMAIN" /> ແລະ ກຳລັງໃຫ້ການຄວບຄຸມຂໍ້ມູນ Chromium ຂອງທ່ານແກ່ຜູ້ເບິ່ງແຍງລະບົບຂອງມັນ. ຂໍ້ມູນຂອງທ່ານຈະຖືກເຊື່ອມໂຍງຢ່າງຖາວອນກັບບັນຊີນີ້. ການອອກຈາກລະບົບ Chromium ຈະລຶບຂໍ້ມູນຂອງທ່ານອອກຈາກອຸປະກອນນີ້, ແຕ່ຂໍ້ມູນຈະຍັງຄົງຖືກຮັກສາໄວ້ຢູ່ໃນບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="5983312940147103417">ເຮັດໃຫ້ Chromium ດີຂຶ້ນ</translation>
 <translation id="6062449165341879460">ອົງການຂອງທ່ານ <ph name="DOMAIN" /> ຈະມີສິດເຂົ້າເຖິງດາຕາ Chromium, ບຸກມາກ, ປະຫວັດ, ລະຫັດຜ່ານ ແລະ ການຕັ້ງຄ່າອື່ນໆຂອງທ່ານທີ່ທ່ານເກັບໄວ້ຢູ່ໃນບັນຊີນີ້. ເມື່ອທ່ານອອກຈາກລະບົບ, ຂໍ້ມູນຂອງທ່ານຈະຖືກລຶບລ້າງອອກຈາກອຸປະກອນນີ້.  ແນວໃດກໍຕາມ, ຂໍ້ມູນຂອງທ່ານຈະຍັງຄົງຖືກເກັບມ້ຽນຢູ່ໃນບັນຊີ Google ທີ່ມີການຈັດການຂອງທ່ານ ແລະ ມີໃຫ້ສຳລັບອົງການຂອງທ່ານ. ອົງການຂອງທ່ານຍັງສາມາດຕັ້ງນະໂຍບາຍສຳລັບຜູ້ໃຊ້ເພື່ອກຳນົດສະເພາະໃຫ້ແກ່ບັນຊີທີ່ສາມາດປ່ຽນແປງການປະພຶດຂອງ Chromium ໄດ້ນຳອີກ.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb
index ee67f42..81a68ffa5 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Pilih Chromium</translation>
 <translation id="1091252999271033193">Ini bermakna Chromium akan meminta laman mudah alih setiap masa.</translation>
 <translation id="1185134272377778587">Mengenai Chromium</translation>
+<translation id="1256849392437386613">Untuk Menghidupkan `Jejaki Harga`, Benarkan Makluman Chromium dalam Tetapan Peranti</translation>
 <translation id="1257458525759135959">Untuk menyimpan imej, ketik Tetapan untuk membolehkan Chromium membuat penambahan pada foto anda.</translation>
 <translation id="1289216811211435351">Beralih kepada Chromium</translation>
 <translation id="1361748954329991663">Chromium sudah lapuk. Jika tiada kemas kini yang tersedia dalam <ph name="BEGIN_LINK" />Gedung Apl<ph name="END_LINK" />, mungkin peranti anda sudah tidak menyokong versi baharu Chromium lagi.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Petua Chromium. Untuk melihat lebih banyak pilihan tab, sentuh &amp; tahan butang Tunjukkan Tab dalam bar alat, yang terletak di bahagian bawah atau atas skrin anda.</translation>
 <translation id="5700709190537129682">Chromium tidak dapat menyemak kata laluan anda</translation>
 <translation id="5777187867430702742">Halaman Chromium</translation>
+<translation id="5918064849477363478">Pemberitahuan Chromium dimatikan dalam tetapan peranti anda. Anda perlu membenarkan pemberitahuan dahulu.</translation>
 <translation id="5945387852661427312">Anda mengelog masuk dengan akaun yang diurus oleh <ph name="DOMAIN" /> dan memberi kawalan terhadap data Chromium anda kepada pentadbirnya. Data anda akan terikat secara kekal kepada akaun ini. Tindakan mengelog keluar daripada Chromium akan memadamkan data anda daripada peranti ini, tetapi data itu akan kekal disimpan dalam Akaun Google anda.</translation>
 <translation id="5983312940147103417">Jadikan Chromium Lebih Baik</translation>
 <translation id="6062449165341879460">Organisasi <ph name="DOMAIN" /> anda akan mempunyai akses kepada data Chromium, penanda halaman, sejarah, kata laluan dan tetapan lain yang anda simpan dalam akaun ini. Apabila anda log keluar, data anda akan dikosongkan daripada peranti ini.  Namun begitu, data anda akan terus disimpan dalam Google Account terurus anda dan akan tersedia di organisasi anda. Organisasi anda juga boleh menetapkan dasar pengguna khusus untuk akaun tersebut yang boleh mengubah gelagat Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_my.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_my.xtb
index 5fe70475..f06733f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_my.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Chromium ကိုရွေးပါ</translation>
 <translation id="1091252999271033193">Chromium က မိုဘိုင်းဝဘ်ဆိုက်ကို အမြဲတောင်းမည်ဟု ဆိုလိုခြင်းဖြစ်သည်။</translation>
 <translation id="1185134272377778587">Chromium အကြောင်း</translation>
+<translation id="1256849392437386613">‘ဈေးနှုန်းစောင့်ကြည့်ခြင်း’ ဖွင့်ရန် စက်ဆက်တင်များတွင် Chromium အကြောင်းကြားချက်များကို ခွင့်ပြုပါ</translation>
 <translation id="1257458525759135959">ပုံများသိမ်းရန်အတွက် Chromium က သင့်ဓာတ်ပုံများတွင် ထည့်သွင်းနိုင်ရန် 'ဆက်တင်များ' ကို တို့ပါ</translation>
 <translation id="1289216811211435351">Chromium သို့ ပြောင်းပါ</translation>
 <translation id="1361748954329991663">Chromium သည် ဟောင်းနေပါပြီ။ သင့်စက်သည် Chromium ဗားရှင်းအသစ်များကို မပံ့ပိုးတော့သည့်အတွက် <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" /> တွင် အပ်ဒိတ်တစ်ခုမျှ မရခြင်းဖြစ်နိုင်သည်။</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromium အကြံပြုချက်။ နောက်ထပ် တဘ်ရွေးချယ်စရာများအတွက် ဖန်သားပြင်၏ အောက်ခြေ သို့မဟုတ် ထိပ်ဘက်ရှိ ကိရိယာဘားအတွင်း 'တဘ်ကို ပြရန်' ခလုတ်ကို တို့၍ဖိထားပါ။</translation>
 <translation id="5700709190537129682">Chromium က သင့်စကားဝှက်များကို စစ်ဆေး၍မရပါ</translation>
 <translation id="5777187867430702742">Chromium စာမျက်နှာ</translation>
+<translation id="5918064849477363478">သင့်စက်ဆက်တင်များတွင် Chromium အကြောင်းကြားချက်များကို ပိတ်ထားသည်။ အကြောင်းကြားချက်များကို ဦးစွာ ခွင့်ပြုရမည်။</translation>
 <translation id="5945387852661427312">သင်သည် <ph name="DOMAIN" /> က စီမံထားသည့် အကောင့်ဖြင့် လက်မှတ်ထိုးဝင်နေပြီး ၎င်း၏စီမံခန့်ခွဲသူကို သင့် Chrome ဒေတာများအား ထိန်းချုပ်ခွင့်ပေးထားပါသည်။ သင့်ဒေတာများသည် ဤအကောင့်နှင့် အပြီးအပိုင် ချိတ်ဆက်ထားပါမည်။ Chromium မှ ထွက်လိုက်ခြင်းဖြင့် ဤစက်ပစ္စည်းပေါ်ရှိ ဒေတာများကို ဖျက်လိုက်မည် ဖြစ်သော်လည်း ၎င်းတို့သည် သင့် Google အကောင့်တွင် ကျန်ရှိနေဦးမည် ဖြစ်သည်။</translation>
 <translation id="5983312940147103417">Chromium ပိုကောင်းအောင်လုပ်ခြင်း</translation>
 <translation id="6062449165341879460">သင့်အဖွဲ့အစည်း <ph name="DOMAIN" /> က ဤအကောင့်တွင် သိမ်းထားသော သင်၏ Chromium ဒေတာ၊ လိပ်စာများ၊ မှတ်တမ်း၊ စကားဝှက်များနှင့် အခြားဆက်တင်များကို သုံးနိုင်မည်။ အကောင့်မှထွက်လိုက်ပါက သင့်ဒေတာကို ဤစက်မှ ရှင်းထုတ်ပါမည်။  သို့သော် စီမံထားသော Google Account တွင် သင့်ဒေတာကို ဆက်သိမ်းထားပြီး သင့်အဖွဲ့အစည်းက သုံးနိုင်ပါမည်။ Chromium ၏ လုပ်ဆောင်ပုံကို ပြောင်းလဲနိုင်သည့် ဤအကောင့်သီးသန့်အတွက် အသုံးပြုသူလိုက်နာရမည့် မူဝါဒများကိုလည်း သင့်အဖွဲ့အစည်းက သတ်မှတ်နိုင်သည်။</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ne.xtb
index 3bf9ebe3..2407215 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ne.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Chromium चयन गर्नुहोस्</translation>
 <translation id="1091252999271033193">यसको अर्थ Chromium ले हरेक पटक साइटको मोबाइल संस्करण प्रयोग गर्न अनुरोध गर्ने छ।</translation>
 <translation id="1185134272377778587">Chromium का बारेमा</translation>
+<translation id="1256849392437386613">तपाईं `मूल्य ट्रयाक गर्नुहोस्` अन गर्न चाहनुहुन्छ भने डिभाइसका सेटिङमा गई Chromium सम्बन्धी सूचना प्राप्त गर्ने सुविधा अन गर्नुहोस्</translation>
 <translation id="1257458525759135959">फोटोहरू सुरक्षित गर्न सेटिङमा ट्याप गर्नुहोस् र Chromium लाई आफ्ना फोटोहरूको फोल्डरमा फोटो हाल्न दिनुहोस्</translation>
 <translation id="1289216811211435351">Chromium चलाउन थाल्नुहोस्</translation>
 <translation id="1361748954329991663">Chromium पुरानो भइसकेको छ। <ph name="BEGIN_LINK" />एप स्टोर<ph name="END_LINK" />मा कुनै पनि अपडेट उपलब्ध छैन भने तपाईंको डिभाइसमा अब उप्रान्त Chromium का नयाँ संस्करण प्रयोग गर्न नमिल्न सक्छ।</translation>
@@ -70,6 +71,7 @@
 <translation id="5573014823074921752">Chromium सम्बन्धी सुझाव। ट्याबसम्बन्धी थप विकल्पहरू हेर्न तपाईंको स्क्रिनको सिरान वा पुछारमा रहेको उपकरणपट्टीमा ट्याबहरू देखाउनुहोस् नामक बटनमा टच एण्ड होल्ड गर्नुहोस्।</translation>
 <translation id="5700709190537129682">Chromium ले तपाईंका पासवर्डहरू जाँच्न सकेन</translation>
 <translation id="5777187867430702742">Chromium को पृष्ठ</translation>
+<translation id="5918064849477363478">तपाईंको डिभाइसका सेटिङमा Chromium सम्बन्धी सूचना प्राप्त गर्ने सुविधा अफ गरिएको छ। तपाईंले सर्वप्रथम सूचना प्राप्त गर्ने सुविधा अन गर्नु पर्ने हुन्छ।</translation>
 <translation id="5945387852661427312">तपाईं <ph name="DOMAIN" /> द्वारा व्यवस्थापन गरिएको खाता मार्फत साइन इन गर्दै हुनुहुन्छ र त्यसका प्रशासकलाई तपाईंको Chromium को डेटामाथि नियन्त्रण गर्न दिँदै हुनुहुन्छ। तपाईंको डेटा सदाका लागि यस खातामा जोडिनेछ। Chromium बाट साइन आउट गर्नुले तपाईंको डेटा यस डिभाइसबाट मेटिनेछ तर यो तपाईंको Google खातामा भण्डारण गरिएको अवस्थामा रहनेछ।</translation>
 <translation id="5983312940147103417">Chromium को गुणस्तर अझ राम्रो बनाउनुहोस्</translation>
 <translation id="6062449165341879460">तपाईंको सङ्गठन <ph name="DOMAIN" /> ले Chromium मा भएका तपाईंका डेटा, बुकमार्क, इतिहास, पासवर्ड र तपाईंले यो खातामा सेभ गर्ने अन्य सेटिङ हेर्न तथा प्रयोग गर्न सक्ने छ। तपाईंले साइन आउट गरेपछि यो डिभाइसबाट तपाईंको डेटा मेटाइने छ।  तर तपाईंको डेटा तपाईंको व्यवस्थापन गरिएको Google खातामा सेभ भइरहने छ र तपाईंको सङ्गठनले उक्त डेटा हेर्न तथा प्रयोग गर्न सक्ने छ। तपाईंको सङ्गठनले उक्त खातामा लागू हुने प्रयोगकर्तासम्बन्धी नीतिहरू तय गर्न पनि सक्छ र ती नीतिहरूले Chromium ले काम गर्ने तरिकामा प्रभाव पार्न सक्छ।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
index cf6cc1a9..9bfe33a7 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Selecteer Chromium</translation>
 <translation id="1091252999271033193">Dit betekent dat Chromium altijd de mobiele site opvraagt.</translation>
 <translation id="1185134272377778587">Over Chromium</translation>
+<translation id="1256849392437386613">Als je Prijs volgen wilt aanzetten, sta je Chromium-meldingen toe in de apparaatinstellingen</translation>
 <translation id="1257458525759135959">Als je afbeeldingen wilt opslaan, tik je op Instellingen om ze door Chromium aan je foto's te laten toevoegen</translation>
 <translation id="1289216811211435351">Overschakelen naar Chromium</translation>
 <translation id="1361748954329991663">Chromium is verouderd. Als er geen update beschikbaar is in de <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, ondersteunt je apparaat nieuwe versies van Chromium mogelijk niet.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromium-tip. Voor meer tabbladopties tik je in de werkbalk onder- of bovenaan het scherm op de knop Tabbladen bekijken en houd je deze vast.</translation>
 <translation id="5700709190537129682">Chromium kan je wachtwoorden niet checken</translation>
 <translation id="5777187867430702742">Chromium-pagina</translation>
+<translation id="5918064849477363478">Chromium-meldingen staan uit in je apparaatinstellingen. Je moet eerst meldingen toestaan.</translation>
 <translation id="5945387852661427312">Je logt in met een account dat wordt beheerd door <ph name="DOMAIN" />, waarmee je de eigenaar beheer geeft over je Chromium-gegevens. Je gegevens worden permanent gekoppeld aan dit account. Als je uitlogt van Chromium, worden je gegevens van dit apparaat verwijderd. Ze blijven echter opgeslagen in je Google-account.</translation>
 <translation id="5983312940147103417">Chromium verbeteren</translation>
 <translation id="6062449165341879460">Je organisatie <ph name="DOMAIN" /> heeft toegang tot je Chromium-gegevens, bookmarks, geschiedenis, wachtwoorden en andere instellingen die je in dit account opslaat. Als je uitlogt, worden je gegevens van dit apparaat gewist.  De gegevens blijven wel opgeslagen in je beheerde Google-account en zijn nog steeds beschikbaar voor je organisatie. Je organisatie kan ook specifiek voor dat account gebruikersbeleid instellen waarmee het gedrag van Chromium kan worden gewijzigd.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb
index d51fceed..c97efb77 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Velg Chromium</translation>
 <translation id="1091252999271033193">Dette betyr at Chromium kommer til å forespørre mobilnettstedet hver gang.</translation>
 <translation id="1185134272377778587">Om Chromium</translation>
+<translation id="1256849392437386613">For å slå på «Spor prisen», tillat Chromium-varsler i enhetsinnstillingene</translation>
 <translation id="1257458525759135959">For å lagre bilder, trykk på Innstillinger for å la Chromium legge dem til i bildene dine</translation>
 <translation id="1289216811211435351">Bytt til Chromium</translation>
 <translation id="1361748954329991663">Chromium er utdatert. Hvis ingen oppdatering er tilgjengelig i <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, kan det hende at enheten din ikke støtter nye versjoner av Chromium lenger.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromium-tips. For flere fanealternativer, trykk og hold inne Vis faner-knappen på verktøylinjen, som du finner nederst eller øverst på skjermen.</translation>
 <translation id="5700709190537129682">Chromium kan ikke sjekke passordene dine</translation>
 <translation id="5777187867430702742">Chromium-side</translation>
+<translation id="5918064849477363478">Chromium-varsler er slått av i enhetsinnstillingene. Du må først gi tillatelse til at varsler kan vises.</translation>
 <translation id="5945387852661427312">Du logger på med en konto som administreres av <ph name="DOMAIN" />, og du gir dermed administratoren for dette domenet kontroll over Chromium-dataene dine. Dataene dine blir knyttet til denne kontoen permanent. Når du logger av Chromium, slettes dataene dine fra denne enheten, men de er fortsatt lagret i Google-kontoen din.</translation>
 <translation id="5983312940147103417">Gjør Chromium bedre</translation>
 <translation id="6062449165341879460">Organisasjonen din, <ph name="DOMAIN" />, får tilgang til data, bokmerker, logg, passord og andre innstillinger for Chromium som du lagrer i denne kontoen. Når du logger av, slettes dataene dine fra denne enheten.  Dataene forblir imidlertid lagret i den administrerte Google-kontoen og er tilgjengelige for organisasjonen din. Organisasjonen din kan også angi spesifikke brukerinnstillinger for den aktuelle kontoen. Disse kan endre virkemåten til Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_pt-BR.xtb
index 5294ffe..bc2d976 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_pt-BR.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Selecione o Chromium</translation>
 <translation id="1091252999271033193">Isso significa que o Chromium vai solicitar sempre o site para dispositivo móvel.</translation>
 <translation id="1185134272377778587">Sobre o Chromium</translation>
+<translation id="1256849392437386613">Para ativar "Monitorar preço", permita as notificações do Chromium nas configurações do dispositivo.</translation>
 <translation id="1257458525759135959">Para salvar imagens, toque em "Configurações" e permita que o Chromium adicione às suas fotos</translation>
 <translation id="1289216811211435351">Mudar para o Chromium</translation>
 <translation id="1361748954329991663">O Chromium está desatualizado. Se nenhuma atualização está disponível na <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, é possível que seu dispositivo não seja compatível com novas versões do Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Dica do Chromium. Para ver mais opções de guia, toque no botão "Mostrar guias" na barra de ferramentas localizada na parte superior ou inferior da tela e mantenha-o pressionado.</translation>
 <translation id="5700709190537129682">Não é possível verificar suas senhas com o Chromium</translation>
 <translation id="5777187867430702742">Página do Chromium</translation>
+<translation id="5918064849477363478">As notificações do Chromium estão desativadas nas configurações do dispositivo. Permita as notificações primeiro.</translation>
 <translation id="5945387852661427312">Você está fazendo login com uma conta gerenciada por <ph name="DOMAIN" /> e dando ao administrador dela o controle sobre seus dados do Chromium, os quais ficarão permanentemente vinculados a essa conta. Se você sair do Chromium, seus dados serão excluídos deste dispositivo, mas permanecerão armazenados na sua Conta do Google.</translation>
 <translation id="5983312940147103417">Melhorar o Chromium</translation>
 <translation id="6062449165341879460">A organização <ph name="DOMAIN" /> vai ter acesso aos dados, favoritos, histórico, senhas e outras configurações do Chromium que você armazenar nessa conta. Quando você sair, seus dados vão ser apagados deste dispositivo.  No entanto, os dados continuarão armazenados na sua Conta do Google gerenciada e vão ficar disponíveis para sua organização. A organização também pode definir políticas do usuário específicas para a conta, e elas podem mudar o comportamento do Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb
index c9d1384..aaaa148 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Выберите Chromium.</translation>
 <translation id="1091252999271033193">Chromium всегда будет запрашивать мобильный сайт.</translation>
 <translation id="1185134272377778587">О Chromium</translation>
+<translation id="1256849392437386613">Чтобы включить отслеживание цен, разрешите уведомления Chromium</translation>
 <translation id="1257458525759135959">Чтобы сохранять изображения, нажмите "Настройки" и предоставьте Chromium доступ к вашим фото.</translation>
 <translation id="1289216811211435351">Переходите на Chromium</translation>
 <translation id="1361748954329991663">Версия Chromium устарела. Если в <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" /> нет обновлений, возможно, ваше устройство не поддерживает новые версии Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Совет для Chromium. Чтобы открыть список дополнительных действий с вкладками, нажмите и удерживайте кнопку "Показать вкладки" на панели инструментов в нижней или верхней части экрана.</translation>
 <translation id="5700709190537129682">Не удается проверить пароли в Chromium.</translation>
 <translation id="5777187867430702742">Страница Chromium</translation>
+<translation id="5918064849477363478">Сначала включите уведомления Chromium в настройках устройства.</translation>
 <translation id="5945387852661427312">Вы входите в аккаунт, которым управляет администратор домена <ph name="DOMAIN" />. Он может контролировать ваши данные Chromium, которые теперь будут связаны с управляемым аккаунтом. При выходе из системы все данные Chromium, хранящиеся на этом устройстве, будут удалены, но останутся в вашем аккаунте Google.</translation>
 <translation id="5983312940147103417">Сделайте браузер Chromium лучше</translation>
 <translation id="6062449165341879460">Ваша организация <ph name="DOMAIN" /> получит доступ к данным, закладкам, истории и паролям Chromium, а также другим параметрам этого аккаунта. После выхода из аккаунта с этого устройства будут удалены все данные.  При этом они сохранятся в вашем управляемом аккаунте Google и будут доступны вашей организации. Она также может устанавливать правила для пользователей, применимые к указанному аккаунту и способные изменять работу Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb
index 54ca8e9..30b8657 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Vyberte Chromium</translation>
 <translation id="1091252999271033193">Znamená to, že Chromium bude zakaždým žiadať o mobilný web.</translation>
 <translation id="1185134272377778587">Informácie o prehliadači Chromium</translation>
+<translation id="1256849392437386613">Ak chcete zapnúť možnosť Sledovať cenu, povoľte upozornenia prehliadača Chromium v Nastaveniach zariadenia</translation>
 <translation id="1257458525759135959">Ak chcete ukladať obrázky, klepnutím na Nastavenia povoľte prehliadaču Chromium pridávať do vašich fotiek</translation>
 <translation id="1289216811211435351">Prejdite na Chromium</translation>
 <translation id="1361748954329991663">Prehliadač Chromium je zastaraný. Ak v <ph name="BEGIN_LINK" />obchode s aplikáciami<ph name="END_LINK" /> nie je dostupná aktualizácia, je možné, že vaše zariadenie už nepodporuje nové verzie prehliadača Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Tip pre Chromium: ďalšie možnosti karty získate pridržaním tlačidla „Zobraziť karty“ na paneli s nástrojmi, ktorý sa nachádza v dolnej alebo hornej časti obrazovky.</translation>
 <translation id="5700709190537129682">Chromium nemôže skontrolovať heslá</translation>
 <translation id="5777187867430702742">Stránka prehliadača Chromium</translation>
+<translation id="5918064849477363478">Upozornenia prehliadača Chromium sú v nastaveniach zariadenia vypnuté. Najprv ich musíte povoliť.</translation>
 <translation id="5945387852661427312">Prihlasujete sa pomocou účtu spravovaného doménou <ph name="DOMAIN" /> a jej správcovi tým dávate kontrolu nad vašimi údajmi prehliadača Chromium. Vaše údaje budú natrvalo prepojené s týmto účtom. Odhlásením z prehliadača Chromium odstránite údaje z príslušného zariadenia, avšak naďalej zostanú uložené vo vašom účte Google.</translation>
 <translation id="5983312940147103417">Zlepšujte Chromium</translation>
 <translation id="6062449165341879460">Vaša organizácia <ph name="DOMAIN" /> bude mať prístup k údajom, záložkám, histórii, heslám a ďalším nastaveniam prehliadača Chromium, ktoré uložíte v tomto účte. Keď sa odhlásite, vaše údaje budú z tohto zariadenia vymazané.  Údaje však zostanú uložené vo vašom spravovanom účte Google a budú k dispozícii vašej organizácii. Vaša organizácia môže nastaviť aj pravidlá pre používateľov špecifické pre daný účet, ktoré môžu zmeniť správanie prehliadača Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sr-Latn.xtb
index 4106913..eba821b 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sr-Latn.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Izaberite Chromium</translation>
 <translation id="1091252999271033193">To znači da će Chromium svaki put zahtevati mobilni sajt.</translation>
 <translation id="1185134272377778587">O Chromium-u</translation>
+<translation id="1256849392437386613">Da biste uključili opciju Prati cenu, dozvolite Chromium obaveštenja u podešavanjima uređaja</translation>
 <translation id="1257458525759135959">Da biste sačuvali slike, dodirnite Podešavanja da biste omogućili Chromium-u da dodaje slike</translation>
 <translation id="1289216811211435351">Pređite na Chromium</translation>
 <translation id="1361748954329991663">Chromium je zastareo. Ako ažuriranje nije dostupno u <ph name="BEGIN_LINK" />App Store-u<ph name="END_LINK" />, uređaj možda ne podržava nove verzije Chromium-a.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Savet za Chromium. Ako želite više opcija za kartice, dodirnite i zadržite dugme Prikaži kartice na traci s alatkama, koja se nalazi u dnu ili vrhu ekrana.</translation>
 <translation id="5700709190537129682">Chromium ne može da vam proverava lozinke</translation>
 <translation id="5777187867430702742">Chromium stranica</translation>
+<translation id="5918064849477363478">Chromium obaveštenja su isključena u podešavanjima uređaja. Prvo treba da dozvolite obaveštenja.</translation>
 <translation id="5945387852661427312">Prijavljujete se pomoću naloga kojim upravlja <ph name="DOMAIN" /> i dajete njegovom administratoru kontrolu nad svojim Chromium podacima. Podaci će postati trajno povezani sa tim nalogom. Odjavljivanjem iz Chromium-a ćete izbrisati podatke sa ovog uređaja, ali će oni ostati sačuvani na Google nalogu.</translation>
 <translation id="5983312940147103417">Poboljšajte Chromium</translation>
 <translation id="6062449165341879460">Organizacija <ph name="DOMAIN" /> će imati pristup Chromium podacima, obeleživačima, istoriji, lozinkama i drugim podešavanjima koja čuvate na ovom nalogu. Kada se odjavite, podaci će se obrisati sa ovog uređaja.  Međutim, podaci će se i dalje čuvati na Google nalogu kojim se upravlja i biće dostupni vašoj organizaciji. Organizacija može da podešava posebne smernice za korisnike za taj nalog koje mogu da promene ponašanje Chromium-a.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
index 5b41a374..9e7a252 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Изаберите Chromium</translation>
 <translation id="1091252999271033193">То значи да ће Chromium сваки пут захтевати мобилни сајт.</translation>
 <translation id="1185134272377778587">О Chromium-у</translation>
+<translation id="1256849392437386613">Да бисте укључили опцију Прати цену, дозволите Chromium обавештења у подешавањима уређаја</translation>
 <translation id="1257458525759135959">Да бисте сачували слике, додирните Подешавања да бисте омогућили Chromium-у да додаје слике</translation>
 <translation id="1289216811211435351">Пређите на Chromium</translation>
 <translation id="1361748954329991663">Chromium је застарео. Ако ажурирање није доступно у <ph name="BEGIN_LINK" />App Store-у<ph name="END_LINK" />, уређај можда не подржава нове верзије Chromium-а.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Савет за Chromium. Ако желите више опција за картице, додирните и задржите дугме Прикажи картице на траци с алаткама, која се налази у дну или врху екрана.</translation>
 <translation id="5700709190537129682">Chromium не може да вам проверава лозинке</translation>
 <translation id="5777187867430702742">Chromium страница</translation>
+<translation id="5918064849477363478">Chromium обавештења су искључена у подешавањима уређаја. Прво треба да дозволите обавештења.</translation>
 <translation id="5945387852661427312">Пријављујете се помоћу налога којим управља <ph name="DOMAIN" /> и дајете његовом администратору контролу над својим Chromium подацима. Подаци ће постати трајно повезани са тим налогом. Одјављивањем из Chromium-а ћете избрисати податке са овог уређаја, али ће они остати сачувани на Google налогу.</translation>
 <translation id="5983312940147103417">Побољшајте Chromium</translation>
 <translation id="6062449165341879460">Организација <ph name="DOMAIN" /> ће имати приступ Chromium подацима, обележивачима, историји, лозинкама и другим подешавањима која чувате на овом налогу. Када се одјавите, подаци ће се обрисати са овог уређаја.  Међутим, подаци ће се и даље чувати на Google налогу којим се управља и биће доступни вашој организацији. Oрганизација може да подешава посебне смернице за кориснике за тај налог које могу да промене понашање Chromium-а.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb
index 5c995cef..05a85e8 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">Виберіть Chromium</translation>
 <translation id="1091252999271033193">Це означає, що Chromium щоразу буде запитувати мобільний сайт.</translation>
 <translation id="1185134272377778587">Про Chromium</translation>
+<translation id="1256849392437386613">Щоб увімкнути опцію "Відстежувати ціну", дозвольте сповіщення Chromium у налаштуваннях пристрою</translation>
 <translation id="1257458525759135959">Щоб зберегти зображення, натисніть "Налаштування" та дозвольте Chromium додавати фотографії</translation>
 <translation id="1289216811211435351">Переходьте на Chromium</translation>
 <translation id="1361748954329991663">Версія Chromium застаріла. Якщо оновлень в <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" /> немає, можливо, ваш пристрій більше не підтримує нові версії Chromium.</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Порада щодо Chromium. Щоб відкрити більше параметрів, натисніть і утримуйте кнопку "Показати вкладки" на панелі інструментів, розташованій унизу або вгорі екрана.</translation>
 <translation id="5700709190537129682">Chromium не може перевірити паролі</translation>
 <translation id="5777187867430702742">Сторінка Chromium</translation>
+<translation id="5918064849477363478">Сповіщення Chromium вимкнено в налаштуваннях пристрою. Щоб продовжити, увімкніть їх.</translation>
 <translation id="5945387852661427312">Ви входите в обліковий запис, зареєстрований у домені <ph name="DOMAIN" />, і надаєте його адміністратору доступ до своїх даних Chromium. Ваші дані буде назавжди зв’язано з цим обліковим записом. Якщо ви вийдете з облікового запису Chromium, дані буде видалено з цього пристрою, але вони залишаться у вашому обліковому записі Google.</translation>
 <translation id="5983312940147103417">Покращте Chromium</translation>
 <translation id="6062449165341879460">Ваша організація <ph name="DOMAIN" /> матиме доступ до даних Chromium, закладок, історії, паролів та інших налаштувань, які ви зберігаєте в цьому обліковому записі. Коли ви вийдете, ваші дані буде видалено з цього пристрою.  Однак вони залишаться в керованому обліковому записі Google і будуть доступними для вашої організації. Крім того, ваша організація може визначити правила для користувачів цього облікового запису, які можуть впливати на роботу Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ur.xtb
index 90db4e47..95231915 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ur.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">‏Chromium منتخب کریں</translation>
 <translation id="1091252999271033193">‏اس کا مطلب ہے کہ Chromium ہر بار موبائل سائٹ کی درخواست کرے گا۔</translation>
 <translation id="1185134272377778587">‏Chromium کے بارے میں</translation>
+<translation id="1256849392437386613">‏'قیمت ٹریک کریں' کو آن کرنے کے لیے آلے کی ترتیبات میں Chromium کی اطلاعات کی اجازت دیں</translation>
 <translation id="1257458525759135959">‏تصاویر محفوظ کرنے کے لیے، Chromium کو آپ کی تصاویر میں شامل کرنے دینے کے لیے ترتیبات پر تھپتھپائیں</translation>
 <translation id="1289216811211435351">‏Chromium پر جائیں</translation>
 <translation id="1361748954329991663">‏Chromium پرانا ہے۔ اگر کوئی اپ ڈیٹ <ph name="BEGIN_LINK" />App اسٹور<ph name="END_LINK" /> میں دستیاب نہیں ہے تو یہ ممکن ہے کہ آپ کا آلہ مزید Chromium کے نئے ورژنز کو سپورٹ نہیں کرتا ہے۔</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">‏Chromium تجویز۔ ٹیب کے مزید اختیارات کیلئے، ٹول بار میں اس "ٹیبز دکھائيں" بٹن کو ٹچ کریں اور دبائے رکھیں جو آپ کی اسکرین کے نیچے یا اوپر ہوتا ہے۔</translation>
 <translation id="5700709190537129682">‏Chromium آپ کے پاس ورڈز چیک نہیں کر سکتا ہے</translation>
 <translation id="5777187867430702742">‏Chromium صفحہ</translation>
+<translation id="5918064849477363478">‏Chromium کی اطلاعات آپ کے آلے کی ترتیبات میں آف ہیں۔ آپ کو پہلے اطلاعات کی اجازت دینے کی ضرورت ہوگی۔</translation>
 <translation id="5945387852661427312">‏آپ <ph name="DOMAIN" /> کے زیر انتظام اکاؤنٹ کے ساتھ سائن ان کر رہے ہیں اور اس کے منتظم کو اپنے Chromium ڈیٹا پر کنٹرول دے رہے ہیں۔ آپ کا ڈیٹا اس اکاؤنٹ سے مستقل طور پر مربوط ہو جائے گا۔ Chromium سے سائن آؤٹ کرنے سے آپ کا ڈیٹا اس آلہ سے حذف ہو جائے گا، لیکن یہ آپ کے Google اکاؤنٹ میں اسٹور رہے گا۔</translation>
 <translation id="5983312940147103417">‏Chromium کو بہتر بنائیں</translation>
 <translation id="6062449165341879460">‏آپ کی تنظیم کے <ph name="DOMAIN" /> کو آپ کے Chromium ڈیٹا، بُک مارکس، سرگزشت، پاس ورڈز اور دیگر ترتیبات تک رسائی حاصل ہوگی جنہیں آپ اس اکاؤنٹ میں اسٹور کرتے ہیں۔ آپ کے سائن آؤٹ کرنے پر، اس آلے سے آپ کا ڈیٹا صاف کر دیا جائے گا۔  تاہم، آپ کا ڈیٹا آپ کے نظم کردہ Google اکاؤنٹ میں اسٹور رہے گا اور آپ کی تنظیم کے لیے دستیاب رہے گا۔ آپ کی تنظیم اس اکاؤنٹ کے لیے مخصوص صارف کی پالیسیاں بھی سیٹ کر سکتی ہے جو Chromium کے رویے کو تبدلی کر سکتی ہیں۔</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-HK.xtb
index 41e9b4fd..737c50e 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-HK.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">選取 [Chromium]</translation>
 <translation id="1091252999271033193">這代表 Chromium 每次都會要求取得流動網站。</translation>
 <translation id="1185134272377778587">關於 Chromium</translation>
+<translation id="1256849392437386613">如要開啟「追蹤價格」功能,請在「裝置設定」中允許「Chromium 通知」</translation>
 <translation id="1257458525759135959">如要儲存圖片,請輕按 [設定] 並允許 Chromium 新增您的相片</translation>
 <translation id="1289216811211435351">切換至 Chromium</translation>
 <translation id="1361748954329991663">Chromium 版本過舊。如果<ph name="BEGIN_LINK" />應用程式商店<ph name="END_LINK" />沒有提供任何更新,您的裝置可能已停止支援新版本的 Chromium。</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromium 提示。如果要多啲標籤選項,請㩒住螢幕底部或者頂部工具列入面中嘅 [顯示分頁] 掣。</translation>
 <translation id="5700709190537129682">Chromium 無法檢查密碼</translation>
 <translation id="5777187867430702742">Chromium 頁面</translation>
+<translation id="5918064849477363478">您已在裝置設定中關閉 Chromium 通知,請先允許傳送通知。</translation>
 <translation id="5945387852661427312">您即將登入由 <ph name="DOMAIN" /> 管理的帳戶,並讓帳戶管理員控制您的 Chromium 資料。您的資料將與這個帳戶建立永久連結。如果您登出 Chromium,系統將刪除此裝置上的資料,但這些資料仍會儲存在您的 Google 帳戶中。</translation>
 <translation id="5983312940147103417">讓 Chromium 更臻完美</translation>
 <translation id="6062449165341879460">您的機構 <ph name="DOMAIN" /> 將可存取您儲存在此帳戶中的 Chromium 資料、書籤、記錄、密碼和其他設定。登出帳戶後,系統會清除此裝置中的資料。不過,您的資料仍會儲存在受管 Google 帳戶中,並可供機構使用。您的機構亦可為該帳戶設定特定使用者政策,以變更 Chromium 的行為。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-TW.xtb
index 4687e63..ec6d307 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-TW.xtb
@@ -4,6 +4,7 @@
 <translation id="1047130070405668746">選取 [Chromium]</translation>
 <translation id="1091252999271033193">這代表 Chromium 每次都會對行動版網站發出要求。</translation>
 <translation id="1185134272377778587">關於 Chromium</translation>
+<translation id="1256849392437386613">如要開啟「追蹤價格」功能,請前往裝置設定允許 Chromium 傳送通知</translation>
 <translation id="1257458525759135959">如要儲存圖片,請輕觸 [設定] 並允許 Chromium 新增相片</translation>
 <translation id="1289216811211435351">改為使用 Chromium</translation>
 <translation id="1361748954329991663">Chromium 版本過舊。如果 <ph name="BEGIN_LINK" />App Store<ph name="END_LINK" /> 中沒有任何可用的更新,則表示你的裝置可能已停止支援新版 Chromium。</translation>
@@ -71,6 +72,7 @@
 <translation id="5573014823074921752">Chromium 提示。如需更多分頁選項,請輕觸並按住工具列 (位於畫面底部或頂端) 中的 [顯示分頁] 按鈕。</translation>
 <translation id="5700709190537129682">Chromium 無法檢查你的密碼</translation>
 <translation id="5777187867430702742">Chromium 頁面</translation>
+<translation id="5918064849477363478">你已在裝置設定中關閉 Chromium 通知,請先允許傳送通知。</translation>
 <translation id="5945387852661427312">你即將使用由 <ph name="DOMAIN" /> 所管理的帳戶登入,並授權該網域的管理員控管你的 Chromium 資料。你的資料會與這個帳戶建立永久連結。登出 Chromium 後,系統會將你的資料從這個裝置上刪除,但繼續保留在你的 Google 帳戶中。</translation>
 <translation id="5983312940147103417">讓 Chromium 更臻完美</translation>
 <translation id="6062449165341879460">貴機構 <ph name="DOMAIN" /> 將可存取你儲存在這個帳戶中的 Chromium 資料、書籤、歷史記錄、密碼和其他設定。登出帳戶後,系統會清除這部裝置中的資料。不過,你的資料仍會儲存在受管理 Google 帳戶中,並可供貴機構使用。貴機構也可以設定該帳戶專屬的使用者政策,這些政策可以變更 Chromium 的行為。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_am.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_am.xtb
index 1604f74d..89f7ad73 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_am.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">ከChrome የበለጠ ለማግኘት በGoogle መለያዎ ወደ Chrome ይግቡ።</translation>
 <translation id="7855730255114109580">Google Chrome የተዘመነ ነው</translation>
 <translation id="7939179037291298976">ከእርስዎ iPhone ቅንብሮች «የይለፍ ቃል አማራጮች»ን ይክፈቱ እና «Chrome»ን ይምረጡ</translation>
+<translation id="7975131781538454817">በእርስዎ የመሣሪያ ቅንብሮች ውስጥ የChrome ማሳወቂያዎች ጠፍተዋል። በመጀመሪያ ማሳወቂያዎችን መፍቀድ ያስፈልግዎታል።</translation>
 <translation id="8022947259858476807">አገናኞችን ለመክፈት፣ ከመግብሮች ለመፈለግ እና በሌሎች መተግበሪያዎች ውስጥ የይለፍ ቃሎችን የራስ-ለመሙላት በነባሪነት Chrome ን ይጠቀሙ</translation>
 <translation id="81358522153858150">Chrome አሁን ለሚተዳደረው መለያዎ የተጠቃሚ መመሪያዎችን ይደግፋል</translation>
 <translation id="8160472928944011082">Chromeን ማዘመን አልተቻለም</translation>
@@ -140,6 +141,7 @@
 <ph name="BEGIN_INDENT" />  • ስለ Chrome አጠቃቀምዎ መረጃ ወደ Google ተልኳል፣ ነገር ግን ከእርስዎ ጋር አልተያያዘም።
   • Chrome ከተበላሸ፣ ስለ ብልሽቱ ዝርዝሮች አንዳንድ የግል መረጃዎችን ሊያካትቱ ይችላሉ።
   • ማስመርን ካበሩት፣ መለኪያዎች እርስዎ ስለሚጎበኟቸው ዩአርኤሎች መረጃንም ሊያካትቱ ይችላሉ።<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">«የዋጋ ትራክ»ን ለማብራት በመሣሪያ ቅንብሮች ውስጥ Chrome ማሳወቂያዎችን ይፍቀዱ</translation>
 <translation id="9103442491611662960">ለዚህ የChrome መገለጫ መደበኛ የደህንነት ጥበቃ እያገኙ ነው</translation>
 <translation id="9112744793181547300">Chrome እንደ ነባሪ ይቀናበር?</translation>
 <translation id="9122931302567044771">ይህ ማለት Chrome የዴስክቶፕ ጣቢያውን በእያንዳንዱ ጊዜ ይጠይቃል ማለት ነው።</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_az.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_az.xtb
index bf95cc8..129187a 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_az.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Chrome'dan maksimum yararlanmaq üçün Google Hesabınızla Chrome'a daxil olun.</translation>
 <translation id="7855730255114109580">Google Chrome güncəldir</translation>
 <translation id="7939179037291298976">iPhone Ayarlarında "Parol Seçimləri" bölməsini açın və "Chrome" seçimini edin</translation>
+<translation id="7975131781538454817">Chrome bildirişləri cihaz ayarlarında deaktiv edilib. Əvvəlcə bildirişlərə icazə verməli olacaqsınız.</translation>
 <translation id="8022947259858476807">Defolt olaraq keçidləri açmaq, vidcetlərdən axtarış etmək və digər tətbiqlərdə parolları avtomatik doldurmaq üçün Chrome istifadə edin</translation>
 <translation id="81358522153858150">Chrome indi idarə olunan hesabınız üçün istifadəçi siyasətlərini dəstəkləyir</translation>
 <translation id="8160472928944011082">Chrome güncəllənə bilmir</translation>
@@ -142,6 +143,7 @@
   • Chrome xəta ilə üzləşərsə, xəta haqqında təfərrüatlar bəzi şəxsi məlumatları ehtiva edə bilər.
 
   • Sinxronizasiyanı aktiv etsəniz, göstəricilərə ziyarət etdiyiniz keçidlər haqqında məlumat da daxil ola bilər.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">"Qiyməti izləyin" seçimini aktiv etmək üçün cihaz ayarlarında Chrome bildirişlərinə icazə verin</translation>
 <translation id="9103442491611662960">Bu Chrome profili üçün standart qoruma əldə edirsiniz</translation>
 <translation id="9112744793181547300">Chrome defolt olaraq ayarlansın?</translation>
 <translation id="9122931302567044771">Yəni, Chrome hər dəfə mobil saytı tələb edəcək.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_be.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_be.xtb
index 48c1770..87bd24e 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_be.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Каб карыстацца ўсімі магчымасцямі браўзера Chrome, увайдзіце ў яго праз свой Уліковы запіс Google.</translation>
 <translation id="7855730255114109580">Google Chrome абноўлены да апошняй версіі</translation>
 <translation id="7939179037291298976">На iPhone выберыце Settings ("Налады"), перайдзіце ў раздзел Password Options ("Параметры пароляў") і выберыце Chrome</translation>
+<translation id="7975131781538454817">Спачатку ўключыце апавяшчэнні Chrome у наладах прылады.</translation>
 <translation id="8022947259858476807">Зрабіце Chrome стандартным браўзерам, каб адкрываць спасылкі, шукаць інфармацыю праз віджэты і аўтаматычна запаўняць паролі ў іншых праграмах</translation>
 <translation id="81358522153858150">Цяпер Chrome падтрымлівае палітыкі для карыстальнікаў, якія дзейнічаюць у дачыненні да вашага ўліковага запісу пад кіраваннем</translation>
 <translation id="8160472928944011082">Не ўдаецца абнавіць Chrome</translation>
@@ -142,6 +143,7 @@
   • У выпадку збою браўзера Chrome падрабязныя звесткі пра збой могуць уключаць у сябе пэўную асабістую інфармацыю.
 
   • Калі вы ўключыце сінхранізацыю, перададзеныя паказчыкі могуць таксама ўключаць інфармацыю пра URL-адрасы наведаных сайтаў.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Каб уключыць функцыю "Адсочванне цаны", дазвольце апавяшчэнні Chrome у наладах прылады</translation>
 <translation id="9103442491611662960">Для гэтага профілю Chrome выкарыстоўваецца стандартны ўзровень абароны</translation>
 <translation id="9112744793181547300">Зрабіць Chrome стандартным браўзерам?</translation>
 <translation id="9122931302567044771">Гэта азначае, што Chrome будзе кожны раз запытваць версію сайта для настольных камп'ютараў.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bn.xtb
index 4070373..caa84c4 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bn.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Chrome থেকে সবচেয়ে বেশি সুবিধা পেতে, আপনার Google অ্যাকাউন্ট দিয়ে Chrome-এ সাইন-ইন করুন।</translation>
 <translation id="7855730255114109580">Google Chrome আপ টু ডেট আছে</translation>
 <translation id="7939179037291298976">আপনার iPhone এর সেটিংস থেকে, "পাসওয়ার্ড বিকল্প" খুলুন এবং "Chrome" বেছে নিন</translation>
+<translation id="7975131781538454817">আপনার ডিভাইস সেটিংসে Chrome বিজ্ঞপ্তিগুলি বন্ধ করা আছে। প্রথমেই বিজ্ঞপ্তিকে অনুমতি দিতে হবে।</translation>
 <translation id="8022947259858476807">লিঙ্ক খুলতে, উইজেট থেকে সার্চ করতে এবং অন্যান্য অ্যাপে পাসওয়ার্ড অটোফিল করতে ডিফল্ট হিসেবে Chrome ব্যবহার করুন</translation>
 <translation id="81358522153858150">Chrome এখন আপনার ম্যানেজ করা অ্যাকাউন্টের জন্য ব্যবহারকারী নীতি সমর্থন করে</translation>
 <translation id="8160472928944011082">Chrome আপডেট করা যাচ্ছে না</translation>
@@ -142,6 +143,7 @@
   • Chrome ক্র্যাশ করলে, সেই সম্পর্কিত তথ্যে কিছু ব্যক্তিগত তথ্য থাকতে পারে।
 
   • সিঙ্ক চালু করা থাকলে, আপনি যেসব URL-এ গেছেন তার ব্যাপারে তথ্যও মেট্রিকে থাকতে পারে।<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">'দাম ট্র্যাক করুন' বিকল্প চালু করতে ডিভাইস সেটিংসে Chrome বিজ্ঞপ্তিগুলিকে অনুমতি দিন</translation>
 <translation id="9103442491611662960">আপনি এই Chrome প্রোফাইলের জন্য স্ট্যান্ডার্ড নিরাপত্তা সুরক্ষা পাচ্ছেন</translation>
 <translation id="9112744793181547300">Chrome ডিফল্ট হিসেবে সেট করতে চান?</translation>
 <translation id="9122931302567044771">এর মানে Chrome প্রতিবার ডেস্কটপ সাইটের অনুরোধ করবে।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ca.xtb
index fe98663..940ab219 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ca.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Per treure el màxim profit de Chrome, inicia-hi la sessió amb el teu Compte de Google.</translation>
 <translation id="7855730255114109580">Google Chrome està actualitzat</translation>
 <translation id="7939179037291298976">A la configuració de l'iPhone, obre Opcions de contrasenya i selecciona Chrome</translation>
+<translation id="7975131781538454817">Les notificacions de Chrome estan desactivades a la configuració del dispositiu. Primer les has de permetre.</translation>
 <translation id="8022947259858476807">Utilitza Chrome de manera predeterminada per obrir enllaços, cercar des de widgets i emplenar automàticament contrasenyes en altres aplicacions</translation>
 <translation id="81358522153858150">Chrome ara admet polítiques dels usuaris per al compte gestionat</translation>
 <translation id="8160472928944011082">Chrome no es pot actualitzar</translation>
@@ -140,6 +141,7 @@
 <ph name="BEGIN_INDENT" />  • S'envia informació a Google sobre l'ús que fas de Chrome, però no es relaciona amb tu.
   • Si Chrome falla, els detalls sobre el bloqueig poden incloure informació personal.
   • Si actives la sincronització, les mètriques també poden incloure informació sobre els URL que visites.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Per activar l'opció Seguiment de preus, permet les notificacions de Chrome a la configuració del dispositiu</translation>
 <translation id="9103442491611662960">Tindràs protecció de seguretat estàndard per a aquest perfil de Chrome</translation>
 <translation id="9112744793181547300">Vols establir Chrome com a predeterminat?</translation>
 <translation id="9122931302567044771">Això vol dir que Chrome sol·licitarà el lloc web per a ordinadors cada vegada.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_cy.xtb
index b624c8f..1c21449 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_cy.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">I gael y gorau o Chrome, mewngofnodwch i Chrome â'ch Cyfrif Google.</translation>
 <translation id="7855730255114109580">Mae Google Chrome yn gyfoes</translation>
 <translation id="7939179037291298976">O'ch Gosodiadau iPhone, agorwch "Dewisiadau Cyfrinair" a dewiswch "Chrome"</translation>
+<translation id="7975131781538454817">Mae hysbysiadau Chrome wedi'u diffodd yng ngosodiadau eich dyfais. Bydd angen i chi ganiatáu hysbysiadau yn gyntaf.</translation>
 <translation id="8022947259858476807">Defnyddiwch Chrome yn ddiofyn i agor dolenni, chwilio o declynnau, ac awtolenwi cyfrineiriau mewn apiau eraill</translation>
 <translation id="81358522153858150">Mae Chrome bellach yn cefnogi polisïau defnyddwyr ar gyfer eich cyfrif a reolir</translation>
 <translation id="8160472928944011082">Ni all Chrome ddiweddaru</translation>
@@ -142,6 +143,7 @@
   • Os bydd Chrome yn torri, gall manylion y toriad gynnwys rhywfaint o wybodaeth bersonol.
 
   • Os ydych yn troi cysoni ymlaen, gall metrigau hefyd gynnwys gwybodaeth am gyfeiriadau URL rydych yn ymweld â nhw.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">I droi `Olrhain Pris` ymlaen Caniatewch Hysbysiadau Chrome yng Ngosodiadau'r Ddyfais</translation>
 <translation id="9103442491611662960">Rydych yn cael amddiffyniad diogelwch safonol ar gyfer y proffil Chrome hwn</translation>
 <translation id="9112744793181547300">Gosod Chrome fel y porwr diofyn?</translation>
 <translation id="9122931302567044771">Mae hyn yn golygu y bydd Chrome yn gofyn am y wefan bwrdd gwaith bob tro.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb
index 3edc2b4..93484559 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Log ind i Chrome med din Google-konto for at få mest muligt ud af Chrome.</translation>
 <translation id="7855730255114109580">Google Chrome er opdateret</translation>
 <translation id="7939179037291298976">Gå til Indstillinger på din iPhone, åbn "Indstillinger til adgangskode", og vælg "Chrome"</translation>
+<translation id="7975131781538454817">Chrome-notifikationer er deaktiveret i enhedsindstillingerne. Du skal først tillade notifikationer.</translation>
 <translation id="8022947259858476807">Brug som standard Chrome til at åbne links, søge efter widgets og udfylde adgangskoder automatisk i andre apps</translation>
 <translation id="81358522153858150">Chrome understøtter nu brugerpolitikker for din administrerede konto</translation>
 <translation id="8160472928944011082">Chrome kan ikke opdateres</translation>
@@ -142,6 +143,7 @@
   • Hvis Chrome oplever nedbrud, kan oplysningerne om nedbruddet omfatte visse personlige oplysninger.
 
   • Hvis du aktiverer synkronisering, kan metrics også omfatte oplysninger om de webadresser, du besøger.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Hvis du vil aktivere "Hold øje med prisudviklingen", skal du tillade Chrome-notifikationer i enhedsindstillingerne</translation>
 <translation id="9103442491611662960">Du får standardbeskyttelse til denne Chrome-profil</translation>
 <translation id="9112744793181547300">Vil du angive Chrome som standard?</translation>
 <translation id="9122931302567044771">Det betyder, at Chrome anmoder om computerwebsitet hver gang.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb
index 2690060..e8b5824 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Wenn du Chrome optimal nutzen möchtest, meldest du dich mit deinem Google-Konto in Chrome an.</translation>
 <translation id="7855730255114109580">Google Chrome ist auf dem neuesten Stand.</translation>
 <translation id="7939179037291298976">Rufe in den Einstellungen deines iPhones den Punkt „Passwortoptionen“ auf und wähle „Chromium“ aus</translation>
+<translation id="7975131781538454817">Chrome-Benachrichtigungen sind in den Geräteeinstellungen deaktiviert. Du musst sie zuerst zulassen.</translation>
 <translation id="8022947259858476807">Standardmäßig Chrome verwenden, um Links zu öffnen, über Widgets zu suchen und Passwörter in anderen Apps automatisch ausfüllen zu lassen</translation>
 <translation id="81358522153858150">Chrome unterstützt jetzt Nutzerrichtlinien für dein verwaltetes Konto</translation>
 <translation id="8160472928944011082">Update nicht möglich</translation>
@@ -140,6 +141,7 @@
 <ph name="BEGIN_INDENT" />  • Daten zu deiner Chrome-Nutzung werden an Google gesendet, können aber nicht mit dir in Verbindung gebracht werden.
   • Falls Chrome abstürzt, können die Details zum Absturz einige personenbezogene Daten enthalten.
   • Falls du die Synchronisierung aktivierst, können die Messwerte auch Informationen zu den von dir besuchten URLs enthalten.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Zum Aktivieren von „Preis beobachten“ Chrome-Benachrichtigungen in den Geräteeinstellungen zulassen</translation>
 <translation id="9103442491611662960">Dieses Chrome-Profil wird durch die standardmäßigen Sicherheitsfunktionen geschützt</translation>
 <translation id="9112744793181547300">Chrome als Standardbrowser festlegen?</translation>
 <translation id="9122931302567044771">Das bedeutet, dass Chrome immer die Desktopversion der Website anfordert.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_et.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_et.xtb
index c80caa3f..c58a6007 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_et.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Chrome'i kasutamiseks parimal moel logige Chrome'i sisse oma Google'i kontoga.</translation>
 <translation id="7855730255114109580">Google Chrome on ajakohane</translation>
 <translation id="7939179037291298976">Avage oma iPhone'i seadetes valik „Password Options” ja tehke valik „Chrome“.</translation>
+<translation id="7975131781538454817">Chrome'i märguanded on teie seadme seadetes välja lülitatud. Peate esmalt märguanded lubama.</translation>
 <translation id="8022947259858476807">Kasutage linkide avamiseks, vidinatest otsimiseks ja muudes rakendustes paroolide automaatselt täitmiseks vaikimisi Chrome'i</translation>
 <translation id="81358522153858150">Chrome toetab nüüd hallatud konto puhul kasutajareegleid</translation>
 <translation id="8160472928944011082">Chrome'i ei saa värskendada</translation>
@@ -142,6 +143,7 @@
   • Kui Chrome jookseb kokku, võivad krahhi üksikasjad isiklikku teavet sisaldada.
 
   • Kui lülitate sünkroonimise sisse, võivad mõõdikud sisaldada ka teavet teie külastatavate URL-ide kohta.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Hindade jälgimise sisselülitamiseks lubage seadme seadetes Chrome'i märguanded</translation>
 <translation id="9103442491611662960">Saate selle Chrome'i profiili jaoks standardse turvakaitse</translation>
 <translation id="9112744793181547300">Kas määrata Chrome vaikebrauseriks?</translation>
 <translation id="9122931302567044771">See tähendab, et Chrome taotleb iga kord töölauasaiti.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
index 5092f65..7cf6f50 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">‏برای اینکه بیشترین بهره را از Chrome ببرید، با «حساب Google» به سیستم Chrome وارد شوید.</translation>
 <translation id="7855730255114109580">‏Google Chrome به‌روز است</translation>
 <translation id="7939179037291298976">‏در «تنظیمات» iPhone، قسمت «گزینه‌های گذرواژه» را باز کنید و «Chrome» را انتخاب کنید</translation>
+<translation id="7975131781538454817">‏اعلان‌های Chrome در تنظیمات دستگاهتان خاموش است. ابتدا باید اعلان‌ها را مجاز کنید.</translation>
 <translation id="8022947259858476807">‏برای باز کردن پیوندها، جستجوی ابزارک‌ها، و تکمیل خودکار گذرواژه‌ها در دیگر برنامه‌ها، به‌طور پیش‌فرض از Chrome استفاده کنید</translation>
 <translation id="81358522153858150">‏Chrome اکنون از خط‌مشی‌های کاربر برای حساب مدیریت‌شده شما پشتیبانی می‌کند</translation>
 <translation id="8160472928944011082">‏Chrome به‌روزرسانی نمی‌شود</translation>
@@ -142,6 +143,7 @@
   • اگر Chrome از کار بیفتد، جزئیات مربوط به خرابی می‌تواند حاوی اطلاعات شخصی باشد.
 
   • اگر همگام‌سازی را روشن کنید، سنجه‌ها ممکن است حاوی اطلاعاتی درباره نشانی‌های وبی که بازدید می‌کنید نیز باشند.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">‏برای روشن کردن «ردیابی قیمت»، اعلان‌های Chrome را در تنظیمات دستگاه مجاز کنید</translation>
 <translation id="9103442491611662960">‏برای این نمایه Chrome محافظت امنیتی استاندارد را دریافت می‌کنید</translation>
 <translation id="9112744793181547300">‏Chrome به‌عنوان پیش‌فرض تنظیم شود؟</translation>
 <translation id="9122931302567044771">‏به این معنی که Chrome هربار سایت ویژه رایانه را درخواست خواهد کرد.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fil.xtb
index 270a528..6b900c1 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fil.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Para masulit ang Chrome, mag-sign in sa Chrome gamit ang iyong Google Account.</translation>
 <translation id="7855730255114109580">Napapanahon ang Google Chrome</translation>
 <translation id="7939179037291298976">Mula sa Settings ng iyong iPhone, buksan ang "Password Options" at piliin ang "Chrome"</translation>
+<translation id="7975131781538454817">Naka-off ang mga notification sa Chrome sa mga setting ng iyong device. Kakailanganin mo munang payagan ang mga notification.</translation>
 <translation id="8022947259858476807">Gamitin ang Chrome bilang default para magbukas ng mga link, maghanap mula sa mga widget, at mag-autofill ng mga password sa iba pang app</translation>
 <translation id="81358522153858150">Suportado na ngayon ng Chrome ang mga patakaran ng user para sa iyong pinamamahalaang account</translation>
 <translation id="8160472928944011082">Hindi makapag-update ang Chrome</translation>
@@ -142,6 +143,7 @@
   • Kung magka-crash ang Chrome, posibleng kasama sa mga detalye tungkol sa pag-crash ang ilang personal na impormasyon.
 
   • Kung io-on mo ang pag-sync, posible ring kasama sa mga sukatan ang impormasyon tungkol sa mga URL na binibisita mo.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Para I-on ang `Subaybayan ang Presyo,` Payagan ang Mga Notification sa Chrome sa Mga Setting ng Device</translation>
 <translation id="9103442491611662960">Ang standard na proteksyon sa seguridad ang nakukuha mo para sa profile sa Chrome na ito</translation>
 <translation id="9112744793181547300">Itakda ang Chrome bilang Default?</translation>
 <translation id="9122931302567044771">Nangangahulugan itong hihilingin ng Chrome ang pang-desktop na site sa lahat ng pagkakataon.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr-CA.xtb
index c3351cf3..e96edce 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr-CA.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Connectez-vous à Chrome avec votre compte Google pour en tirer le meilleur parti.</translation>
 <translation id="7855730255114109580">Google Chrome est à jour</translation>
 <translation id="7939179037291298976">Dans les paramètres de votre iPhone, accédez à « Options de mot de passe » et sélectionnez « Chrome »</translation>
+<translation id="7975131781538454817">Les notifications de Chrome sont désactivées dans les paramètres de votre appareil. Vous devrez d'abord activer les notifications.</translation>
 <translation id="8022947259858476807">Utilisez Chrome par défaut pour ouvrir des liens, faire des recherches dans des widgets et entrer automatiquement des mots de passe dans d'autres applications</translation>
 <translation id="81358522153858150">Chrome prend désormais en charge les politiques relatives aux utilisateurs pour votre compte géré</translation>
 <translation id="8160472928944011082">Impossible de mettre à jour Chrome</translation>
@@ -142,6 +143,7 @@
   • En cas de plantage de Chrome, les détails de l'événement peuvent inclure des renseignements personnels.
 
   • Si vous activez la synchronisation, les mesures peuvent également inclure des renseignements sur les URL que vous visitez.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Pour activer l'option « Suivre le prix », autorisez les notifications de Chrome dans les paramètres de l'appareil</translation>
 <translation id="9103442491611662960">Vous bénéficiez d'une protection de sécurité standard pour ce profil Chrome</translation>
 <translation id="9112744793181547300">Définir Chrome comme navigateur par défaut?</translation>
 <translation id="9122931302567044771">Cela signifie que Chrome demandera toujours la version bureau du site.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_gl.xtb
index 3258ac7..1018c86 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_gl.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Para tirarlle o máximo partido a Chrome, inicia sesión coa túa Conta de Google en Chrome.</translation>
 <translation id="7855730255114109580">Google Chrome está actualizado</translation>
 <translation id="7939179037291298976">Na configuración do teu iPhone, abre Password Options (Opcións de contrasinais) e selecciona Chrome</translation>
+<translation id="7975131781538454817">As notificacións de Chrome están desactivadas na configuración do dispositivo. Primeiro debes permitilas.</translation>
 <translation id="8022947259858476807">Usa Chrome de forma predeterminada para abrir ligazóns, realizar buscas desde widgets e autocompletar contrasinais noutras aplicacións</translation>
 <translation id="81358522153858150">Chrome xa admite políticas de usuario para a túa conta xestionada</translation>
 <translation id="8160472928944011082">Non se puido actualizar Chrome</translation>
@@ -142,6 +143,7 @@
   • Se se produce un erro en Chrome, entre os datos sobre o fallo podería incluírse algunha información persoal.
 
   • Se activas a sincronización, nas métricas tamén podería figurar información sobre os URL que visitas.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Para activar a opción Facer seguimento do prezo, vai á configuración do dispositivo e permite as notificacións de Chrome</translation>
 <translation id="9103442491611662960">Contas cun sistema de seguranza estándar neste perfil de Chrome</translation>
 <translation id="9112744793181547300">Queres definir Chrome como navegador predeterminado?</translation>
 <translation id="9122931302567044771">En consecuencia, Chrome sempre solicitará abrir o sitio para ordenadores.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb
index d723b88..d48a785 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Chrome का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, अपने Google खाते से Chrome में साइन इन करें.</translation>
 <translation id="7855730255114109580">Google Chrome अप टू डेट है</translation>
 <translation id="7939179037291298976">अपने iPhone की Settings में, "Password Options" खोलें और "Chrome" चुनें</translation>
+<translation id="7975131781538454817">आपके डिवाइस की सेटिंग में, Chrome की सूचनाएं भेजने की सुविधा बंद है. आपको पहले सूचनाएं भेजने की अनुमति देनी होगी.</translation>
 <translation id="8022947259858476807">लिंक खोलने के लिए, विजेट से खोजने के लिए, Chrome को डिफ़ॉल्ट रूप से इस्तेमाल करें. ऐप्लिकेशन में पासवर्ड अपने-आप भर जाए, इसके लिए भी Chrome को डिफ़ॉल्ट रूप से इस्तेमाल करें.</translation>
 <translation id="81358522153858150">Chrome में, मैनेज किए जा रहे आपके खाते के लिए अब उपयोगकर्ता नीतियां लागू की जा सकती हैं</translation>
 <translation id="8160472928944011082">Chrome को अपडेट नहीं किया जा सका</translation>
@@ -142,6 +143,7 @@
   • अगर Chrome बंद हो जाता है, तो बंद होने से जुड़ी जानकारी में, आपकी कुछ निजी जानकारी शामिल हो सकती है.
 
   • सिंक की सुविधा चालू करने पर मेट्रिक में, आपके देखे गए पेजों के यूआरएल की जानकारी भी शामिल हो सकती है.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">`कीमत ट्रैक करें` को चालू करने के लिए, डिवाइस की सेटिंग में Chrome को सूचनाएं भेजने की अनुमति दें</translation>
 <translation id="9103442491611662960">आपको इस Chrome प्रोफ़ाइल के लिए, सामान्य सुरक्षा दी जा रही है</translation>
 <translation id="9112744793181547300">Chrome को डिफ़ॉल्ट ब्राउज़र के तौर पर सेट करना चाहते हैं?</translation>
 <translation id="9122931302567044771">इसका मतलब है कि Chrome हर बार, साइट के डेस्कटॉप वर्शन का अनुरोध करेगा.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb
index c1150dbc..8f14496 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Da biste iskoristili sve prednosti koje vam pruža Chrome, prijavite se u Chrome Google računom.</translation>
 <translation id="7855730255114109580">Google Chrome ažuriran je</translation>
 <translation id="7939179037291298976">U postavkama iPhonea otvorite Opcije zaporke, a zatim odaberite Chrome</translation>
+<translation id="7975131781538454817">Obavijesti Chromea isključene su u postavkama uređaja. Najprije morate omogućiti obavijesti.</translation>
 <translation id="8022947259858476807">Koristite Chrome prema zadanim postavkama da biste otvarali veze, pretraživali putem widgeta i automatski popunjavali zaporke u drugim aplikacijama</translation>
 <translation id="81358522153858150">Chrome sada za vaš upravljani račun podržava korisnička pravila</translation>
 <translation id="8160472928944011082">Ažuriranje Chromea nije moguće</translation>
@@ -142,6 +143,7 @@
   • Ako se Chrome sruši, pojedinosti o rušenju mogu uključivati neke osobne podatke.
 
   • Ako uključite sinkronizaciju, mjerni podaci mogu uključivati i podatke o URL-ovima koje posjetite.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Da biste uključili opciju Praćenje cijene, u postavkama uređaja omogućite obavijesti Chromea</translation>
 <translation id="9103442491611662960">Imate standardnu zaštitu sigurnosti za ovaj profil u Chromeu</translation>
 <translation id="9112744793181547300">Želite li postaviti Chrome kao zadani preglednik?</translation>
 <translation id="9122931302567044771">To znači da će Chrome svaki put zahtijevati web-lokaciju za računalo.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb
index 238fe8d..00a4240 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Annak érdekében, hogy a legtöbbet hozhassa ki a Chrome-ból, jelentkezzen be Google-fiókjával a Chrome-ba.</translation>
 <translation id="7855730255114109580">A Google Chrome naprakész</translation>
 <translation id="7939179037291298976">Az iPhone beállításai között nyissa meg a „Jelszóbeállítások” menüt, majd válassza a „Chrome” lehetőséget.</translation>
+<translation id="7975131781538454817">A Chrome-értesítések ki vannak kapcsolva az eszköz beállításaiban. Először engedélyeznie kell az értesítéseket.</translation>
 <translation id="8022947259858476807">A Chrome-ot alapértelmezett böngészőként használva linkek nyithatók meg, modulokban lehet keresni, és jelszavak tölthetők be automatikusan az egyéb alkalmazásokban</translation>
 <translation id="81358522153858150">A Chrome mostantól támogatja a felhasználói házirendeket az Ön felügyelt fiókjánál</translation>
 <translation id="8160472928944011082">Nem lehet frissíteni a Chrome-ot</translation>
@@ -141,6 +142,7 @@
   • Ha a Chrome összeomlik, az összeomlással kapcsolatos adatok között szerepelhetnek bizonyos személyes információk.
 
   • Ha bekapcsolja a szinkronizálást, a mutatók tartalmazhatnak az Ön által felkeresett URL-ekkel kapcsolatos adatokat is.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Az „Árfigyelés” funkció bekapcsolásához engedélyezze a Chrome-értesítéseket az eszköz beállításaiban</translation>
 <translation id="9103442491611662960">A normál szintű biztonsági védelmet kapja ehhez a Chrome-profilhoz</translation>
 <translation id="9112744793181547300">Beállítja a Chrome-ot alapértelmezettként?</translation>
 <translation id="9122931302567044771">Ez azt jelenti, hogy a Chrome mindig az asztali webhelyet kéri majd.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb
index 9f3484f4..96fa3d0 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Accedi con il tuo Account Google a Chrome per usare al meglio questo browser.</translation>
 <translation id="7855730255114109580">Google Chrome è aggiornato</translation>
 <translation id="7939179037291298976">Dalle Impostazioni dell'iPhone, apri "Opzioni password" e seleziona "Chrome"</translation>
+<translation id="7975131781538454817">Le notifiche di Chrome sono disattivate nelle impostazioni del dispositivo. Prima dovrai consentire le notifiche.</translation>
 <translation id="8022947259858476807">Usa Chrome per impostazione predefinita per aprire link, eseguire ricerche dai widget e compilare automaticamente le password in altre app</translation>
 <translation id="81358522153858150">Ora Chrome supporta i criteri relativi agli utenti per il tuo account gestito</translation>
 <translation id="8160472928944011082">Impossibile aggiornare Chrome</translation>
@@ -142,6 +143,7 @@
   • Se Chrome si arresta in modo anomalo, i dettagli relativi a questo evento potrebbero includere alcune informazioni personali.
 
   • Se attivi la sincronizzazione, le metriche potrebbero includere anche informazioni relative agli URL che visiti.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Per attivare "Monitora prezzo" consenti le notifiche di Chrome nelle impostazioni del dispositivo</translation>
 <translation id="9103442491611662960">È attiva la protezione standard per questo profilo Chrome</translation>
 <translation id="9112744793181547300">Impostare Chrome come browser predefinito?</translation>
 <translation id="9122931302567044771">Ciò significa che Chrome richiederà ogni volta il sito desktop.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ko.xtb
index e10bc20..739cf42 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ko.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Chrome을 최대한 활용하려면 Google 계정으로 Chrome에 로그인하세요</translation>
 <translation id="7855730255114109580">Chrome이 최신 버전입니다.</translation>
 <translation id="7939179037291298976">iPhone 설정에서 '비밀번호 옵션'을 열고 'Chrome'을 선택하세요</translation>
+<translation id="7975131781538454817">기기 설정에서 Chrome 알림이 사용 중지되어 있습니다. 먼저 알림을 허용해야 합니다.</translation>
 <translation id="8022947259858476807">Chrome을 다른 앱에서 링크를 열고, 위젯에서 검색하고, 비밀번호를 자동 완성할 기본값으로 사용합니다.</translation>
 <translation id="81358522153858150">이제 Chrome에서 관리 계정에 대한 사용자 정책을 지원합니다</translation>
 <translation id="8160472928944011082">Chrome을 업데이트할 수 없습니다.</translation>
@@ -142,6 +143,7 @@
   • Chrome이 다운되면 관련 세부정보에 일부 개인 정보가 포함될 수 있습니다.
 
   • 동기화를 사용 설정하면 측정항목에 내가 방문한 URL에 관한 정보도 포함될 수 있습니다.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">'가격 추적'을 사용 설정하려면 기기 설정에서 Chrome 알림을 허용하세요</translation>
 <translation id="9103442491611662960">이 Chrome 프로필에는 표준 보안 보호 조치를 사용하고 있습니다.</translation>
 <translation id="9112744793181547300">Chrome을 기본 브라우저로 설정하시겠습니까?</translation>
 <translation id="9122931302567044771">Chrome에서 데스크톱 사이트를 매번 요청함을 의미합니다</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb
index ada1b3d..59ffcc7fd 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">ເພື່ອໃຊ້ປະໂຫຍດສູງສຸດຈາກ Chrome, ໃຫ້ເຂົ້າສູ່ລະບົບ Chrome ດ້ວຍບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="7855730255114109580">Google Chrome ແມ່ນເວີຊັນໃໝ່ຫຼ້າສຸດແລ້ວ</translation>
 <translation id="7939179037291298976">ຈາກການຕັ້ງຄ່າ iPhone ຂອງທ່ານ, ໃຫ້ເປີດ "ຕົວເລືອກລະຫັດຜ່ານ" ແລະ ເລືອກ "Chrome"</translation>
+<translation id="7975131781538454817">ການແຈ້ງເຕືອນ Chrome ປິດຢູ່ໃນການຕັ້ງຄ່າອຸປະກອນຂອງທ່ານ. ທ່ານຈະຕ້ອງອະນຸຍາດການແຈ້ງເຕືອນກ່ອນ.</translation>
 <translation id="8022947259858476807">ໃຊ້ Chrome ເປັນຄ່າເລີ່ມຕົ້ນເພື່ອເປີດລິ້ງ, ຊອກຫາຈາກວິດເຈັດ ແລະ ການຕື່ມຂໍ້ມູນລະຫັດຜ່ານອັດຕະໂນມັດໃນແອັບອື່ນໆ</translation>
 <translation id="81358522153858150">ຕອນນີ້ Chrome ຮອງຮັບນະໂຍບາຍຜູ້ໃຊ້ສຳລັບບັນຊີທີ່ມີການຈັດການຂອງທ່ານແລ້ວ</translation>
 <translation id="8160472928944011082">Chrome ບໍ່ສາມາດອັບເດດໄດ້</translation>
@@ -142,6 +143,7 @@
   • ຫາກ Chrome ຫຼົ້ມ, ລາຍລະອຽດກ່ຽວກັບການຫຼົ້ມອາດຮວມມີຂໍ້ມູນສ່ວນຕົວບາງຢ່າງ.
 
   • ຫາກທ່ານເປີດໃຊ້ການຊິ້ງຂໍ້ມູນ, ການວັດແທກອາດຮວມມີຂໍ້ມູນກ່ຽວກັບ URL ທີ່ທ່ານເຂົ້າເບິ່ງນຳ.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">ເພື່ອເປີດ `ຕິດຕາມລາຄາ` ໃຫ້ອະນຸຍາດການແຈ້ງເຕືອນ Chrome ໃນການຕັ້ງຄ່າອຸປະກອນ</translation>
 <translation id="9103442491611662960">ທ່ານຈະໄດ້ຮັບການປົກປ້ອງຄວາມປອດໄພມາດຕະຖານສຳລັບໂປຣໄຟລ໌ Chrome ນີ້ນຳ</translation>
 <translation id="9112744793181547300">ຕັ້ງ Chrome ເປັນຄ່າເລີ່ມຕົ້ນບໍ?</translation>
 <translation id="9122931302567044771">ນີ້ໝາຍຄວາມວ່າ Chrome ຈະຮ້ອງຂໍເວັບໄຊມືຖືທຸກເທື່ອ.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb
index 397f81ad..fc6dca9 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Untuk memanfaatkan Chrome sepenuhnya, log masuk ke Chrome dengan Google Account anda.</translation>
 <translation id="7855730255114109580">Google Chrome adalah yang terkini</translation>
 <translation id="7939179037291298976">Daripada Tetapan iPhone anda, buka "Pilihan Kata Laluan" dan pilih "Chrome"</translation>
+<translation id="7975131781538454817">Pemberitahuan Chrome dimatikan dalam tetapan peranti anda. Anda perlu membenarkan pemberitahuan dahulu.</translation>
 <translation id="8022947259858476807">Gunakan Chrome secara lalai untuk membuka pautan, mencari daripada widget dan melengkapkan kata laluan secara automatik dalam apl lain</translation>
 <translation id="81358522153858150">Kini Chrome menyokong dasar pengguna untuk akaun terurus anda</translation>
 <translation id="8160472928944011082">Chrome tidak dapat mengemas kini</translation>
@@ -142,6 +143,7 @@
   • Jika Chrome ranap, butiran tentang keranapan mungkin termasuk beberapa maklumat peribadi.
 
   • Jika anda menghidupkan penyegerakan, metrik juga mungkin merangkumi maklumat tentang URL yang anda lawati.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Untuk Menghidupkan `Jejaki Harga`, Benarkan Pemberitahuan Chrome dalam Tetapan Peranti</translation>
 <translation id="9103442491611662960">Anda mendapat perlindungan keselamatan standard untuk profil Chrome ini</translation>
 <translation id="9112744793181547300">Tetapkan Chrome sebagai Penyemak Imbas Lalai?</translation>
 <translation id="9122931302567044771">Ini bermakna Chrome akan meminta laman desktop setiap masa.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_my.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_my.xtb
index a105938a..5b6f4f9b 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_my.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Chrome ကို အကောင်းဆုံးသုံးနိုင်ရန် သင်၏ Google Account ဖြင့် Chrome တွင် လက်မှတ်ထိုးဝင်နိုင်သည်။</translation>
 <translation id="7855730255114109580">Google Chrome ကို အပ်ဒိတ်လုပ်ထားပြီးပါပြီ</translation>
 <translation id="7939179037291298976">သင့် iPhone ၏ ဆက်တင်များတွင် “စကားဝှက် ရွေးချယ်စရာများ” ဖွင့်ပြီး “Chrome” ကိုရွေးပါ</translation>
+<translation id="7975131781538454817">သင့်စက်ဆက်တင်များတွင် Chrome အကြောင်းကြားချက်များကို ပိတ်ထားသည်။ အကြောင်းကြားချက်များကို ဦးစွာ ခွင့်ပြုရမည်။</translation>
 <translation id="8022947259858476807">လင့်ခ်များဖွင့်ရန်၊ ဝိဂျက်များမှ ရှာဖွေရန်နှင့် အခြားအက်ပ်များတွင် စကားဝှက်များ အလိုအလျောက်ဖြည့်ရန် မူရင်းသတ်မှတ်ချက်အဖြစ် Chrome ကို သုံးနိုင်သည်</translation>
 <translation id="81358522153858150">သင့်စီမံခန့်ခွဲထားသည့်အကောင့်အတွက် Chrome က အသုံးပြုသူလိုက်နာရမည့် မူဝါဒများကို ပံ့ပိုးပေးသည်</translation>
 <translation id="8160472928944011082">Chrome က အပ်ဒိတ်လုပ်၍မရပါ</translation>
@@ -142,6 +143,7 @@
   • Chrome ရပ်တန့်သွားပါက ရပ်တန့်မှုအကြောင်း အသေးစိတ်တွင် ကိုယ်ရေးအချက်အလက်အချို့ ပါဝင်နိုင်သည်။
 
   • စင့်ခ်လုပ်ခြင်းဖွင့်ပါက မက်ထရစ်များတွင် သင်ဝင်ကြည့်သော URL များအကြောင်းလည်း ပါဝင်နိုင်သည်။<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">‘ဈေးနှုန်းစောင့်ကြည့်ခြင်း’ ဖွင့်ရန် စက်ဆက်တင်များတွင် Chrome အကြောင်းကြားချက်များကို ခွင့်ပြုပါ</translation>
 <translation id="9103442491611662960">ဤ Chrome ပရိုဖိုင်အတွက် ပုံမှန်လုံခြုံရေးအကာအကွယ်ကို ရရှိပါမည်</translation>
 <translation id="9112744793181547300">Chrome ကို မူရင်းအဖြစ် သတ်မှတ်မလား။</translation>
 <translation id="9122931302567044771">Chrome က ဒက်စ်တော့ဝဘ်ဆိုက်ကို အမြဲတောင်းမည်ဟု ဆိုလိုခြင်းဖြစ်သည်။</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ne.xtb
index 1d84805..dacbd70 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ne.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Chrome बाट बढीभन्दा बढी फाइदा लिन Chrome मा आफ्नो Google खातामार्फत साइन इन गर्नुहोस्।</translation>
 <translation id="7855730255114109580">Google Chrome अद्यावधिक छ</translation>
 <translation id="7939179037291298976">iPhone का सेटिङमा गई "पासवर्डसम्बन्धी विकल्पहरू" खोल्नुहोस् र "Chrome" चयन गर्नुहोस्</translation>
+<translation id="7975131781538454817">तपाईंको डिभाइसका सेटिङमा Chrome सम्बन्धी सूचना प्राप्त गर्ने सुविधा अफ गरिएको छ। तपाईंले सर्वप्रथम सूचना प्राप्त गर्ने सुविधा अन गर्नु पर्ने हुन्छ।</translation>
 <translation id="8022947259858476807">लिंक खोल्न, विजेटबाट खोजी गर्न तथा अन्य एपहरूमा पासवर्ड स्वतः भर्न डिफल्ट रूपमा Chrome प्रयोग गर्नुहोस्</translation>
 <translation id="81358522153858150">अब व्यवस्थापन गरिएको तपाईंको खाताका हकमा Chrome मा प्रयोगकर्तासम्बन्धी नीतिहरू लागू गर्न सकिन्छ</translation>
 <translation id="8160472928944011082">Chrome अपडेट गर्न सकिएन</translation>
@@ -140,6 +141,7 @@
 <ph name="BEGIN_INDENT" />  • Google लाई तपाईं Chrome कसरी र कुन प्रयोजनका लागि प्रयोग गर्नुहुन्छ भन्ने जानकारी पठाइन्छ तर उक्त जानकारीमा तपाईंको पहिचान खुलाइँदैन।
   • Chrome क्र्यास भयो भने क्र्याससम्बन्धी जानकारीमा तपाईंका केही व्यक्तिगत जानकारी समावेश हुन सक्छन्।
   • तपाईंले सिंक गर्ने सुविधा अन गर्नुभयो भने मेट्रिकमा तपाईंले खोलेका URL सम्बन्धी जानकारी पनि समावेश हुन सक्छ।<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">तपाईं `मूल्य ट्रयाक गर्नुहोस्` अन गर्न चाहनुहुन्छ भने डिभाइसका सेटिङमा गई Chrome सम्बन्धी सूचना प्राप्त गर्ने सुविधा अन गर्नुहोस्</translation>
 <translation id="9103442491611662960">तपाईं यो Chrome प्रोफाइलका हकमा सामान्य सुरक्षा प्राप्त गरिराख्नुभएको छ</translation>
 <translation id="9112744793181547300">Chrome लाई डिफल्ट ब्राउजरका रूपमा प्रयोग गर्ने हो?</translation>
 <translation id="9122931302567044771">यसको अर्थ Chrome ले हरेक पटक साइटको डेस्कटप संस्करण प्रयोग गर्न अनुरोध गर्ने छ।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb
index ea2d6e3..89f896d 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Log in bij Chrome met je Google-account om het maximale uit Chrome te halen.</translation>
 <translation id="7855730255114109580">Google Chrome is up-to-date</translation>
 <translation id="7939179037291298976">Ga naar de instellingen van je iPhone, open Wachtwoordopties en selecteer Chrome</translation>
+<translation id="7975131781538454817">Chrome-meldingen staan uit in je apparaatinstellingen. Je moet eerst meldingen toestaan.</translation>
 <translation id="8022947259858476807">Gebruik standaard Chrome om links te openen, te zoeken via widgets en om wachtwoorden in andere apps automatisch in te vullen</translation>
 <translation id="81358522153858150">Chrome ondersteunt nu gebruikersbeleid voor je beheerde account</translation>
 <translation id="8160472928944011082">Chrome kan niet updaten</translation>
@@ -142,6 +143,7 @@
   • Als Chrome crasht, kunnen details over de crash bepaalde persoonlijke informatie bevatten.
 
   • Als je synchronisatie aanzet, kunnen statistieken ook informatie bevatten over de URL's die je bezoekt.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Als je Prijs volgen wilt aanzetten, sta je Chrome-meldingen toe in de apparaatinstellingen</translation>
 <translation id="9103442491611662960">Je krijgt standaardbeveiliging voor dit Chrome-profiel</translation>
 <translation id="9112744793181547300">Chrome instellen als standaard?</translation>
 <translation id="9122931302567044771">Dit betekent dat Chrome altijd de desktopsite opvraagt.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_no.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_no.xtb
index da1f749a..fd802279 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_no.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">For å få mest mulig ut av Chrome, logg på Chrome med Google-kontoen din.</translation>
 <translation id="7855730255114109580">Google Chrome er oppdatert</translation>
 <translation id="7939179037291298976">I iPhone-innstillingene åpner du «Passordalternativer» og velger «Chromium»</translation>
+<translation id="7975131781538454817">Chrome-varsler er slått av i enhetsinnstillingene. Du må først gi tillatelse til at varsler kan vises.</translation>
 <translation id="8022947259858476807">Bruk Chrome som standard til å åpne linker, søke i moduler og fylle ut passord i andre apper automatisk</translation>
 <translation id="81358522153858150">Chrome støtter nå brukerinnstillinger for den administrerte kontoen din</translation>
 <translation id="8160472928944011082">Kan ikke oppdatere Chrome</translation>
@@ -142,6 +143,7 @@
   • Hvis Chrome krasjer, kan detaljene om krasjet inneholde enkelte personopplysninger.
 
   • Hvis du slår på synkronisering, kan verdiene også inneholde informasjon om nettadressene du besøker.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">For å slå på «Spor prisen», tillat Chrome-varsler i enhetsinnstillingene</translation>
 <translation id="9103442491611662960">Du får standard sikkerhetsbeskyttelse for denne Chrome-profilen</translation>
 <translation id="9112744793181547300">Vil du angi Chrome som standard?</translation>
 <translation id="9122931302567044771">Dette betyr at Chrome kommer til å forespørre nettstedet for datamaskiner hver gang.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb
index 9c65cf0a..3ae15417e 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Para aproveitar o Chrome ao máximo, faça login na sua Conta do Google.</translation>
 <translation id="7855730255114109580">O Google Chrome está atualizado</translation>
 <translation id="7939179037291298976">Nos Ajustes do iPhone, abra "Opções de Senha" e selecione "Chrome"</translation>
+<translation id="7975131781538454817">As notificações do Chrome estão desativadas nas configurações do dispositivo. Permita as notificações primeiro.</translation>
 <translation id="8022947259858476807">Use o Chrome como padrão para abrir links, pesquisar em widgets e preencher senhas automaticamente em outros apps</translation>
 <translation id="81358522153858150">O Chrome agora oferece suporte para políticas do usuário na sua conta gerenciada</translation>
 <translation id="8160472928944011082">Não é possível atualizar o Chrome</translation>
@@ -142,6 +143,7 @@
   • Se o Chrome falhar, os detalhes sobre a falha poderão incluir algumas informações pessoais.
 
   • Se você ativar a sincronização, as métricas também poderão incluir informações sobre os URLs que você acessa.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Para ativar a opção "Monitorar preço", permita as notificações do Chrome nas configurações do dispositivo.</translation>
 <translation id="9103442491611662960">Você está usando a proteção padrão neste perfil do Chrome</translation>
 <translation id="9112744793181547300">Definir o Chrome como padrão?</translation>
 <translation id="9122931302567044771">Isso significa que o Chrome vai solicitar sempre o site para computador.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ru.xtb
index 4a2d81c..d151bd5 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ru.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Чтобы пользоваться всеми возможностями браузера Chrome, войдите в аккаунт Google.</translation>
 <translation id="7855730255114109580">Последняя версия Google Chrome уже установлена</translation>
 <translation id="7939179037291298976">В настройках iPhone выберите "Настройки паролей &gt; Chrome"</translation>
+<translation id="7975131781538454817">Сначала включите уведомления Chrome в настройках устройства.</translation>
 <translation id="8022947259858476807">Сделайте Chrome браузером по умолчанию, чтобы открывать ссылки, выполнять поиск прямо из виджетов и автозаполнять пароли в других приложениях.</translation>
 <translation id="81358522153858150">Chrome теперь поддерживает правила для пользователей, применимые к вашему управляемому аккаунту</translation>
 <translation id="8160472928944011082">Не удается обновить Chrome</translation>
@@ -142,6 +143,7 @@
   • Если в работе Chrome произойдет сбой, данные об ошибке могут содержать некоторую личную информацию.
 
   • Если включить синхронизацию, отправляемые показатели также могут содержать сведения о URL посещаемых сайтов.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Чтобы включить отслеживание цен, разрешите уведомления Chrome</translation>
 <translation id="9103442491611662960">В этом профиле Chrome используется стандартная система защиты.</translation>
 <translation id="9112744793181547300">Сделать Chrome браузером по умолчанию?</translation>
 <translation id="9122931302567044771">Chrome всегда будет запрашивать версию сайта для ПК.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sk.xtb
index 6cfa583..44601d5 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sk.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Ak chcete využívať Chrome naplno, prihláste sa doň svojím účtom Google.</translation>
 <translation id="7855730255114109580">Google Chrome je aktuálny.</translation>
 <translation id="7939179037291298976">V sekcii Nastavenia iPhonu otvorte Možnosti hesla a vyberte Chrome</translation>
+<translation id="7975131781538454817">Upozornenia Chromu sú v nastaveniach zariadenia vypnuté. Najprv ich musíte povoliť.</translation>
 <translation id="8022947259858476807">Predvolene otvárajte odkazy, vyhľadávajte v miniaplikáciách a automaticky dopĺňajte heslá v iných aplikáciách pomocou Chromu</translation>
 <translation id="81358522153858150">Chrome teraz podporuje pre váš spravovaný účet pravidlá pre používateľov</translation>
 <translation id="8160472928944011082">Chrome sa nedá aktualizovať</translation>
@@ -141,6 +142,7 @@
 <ph name="BEGIN_INDENT" />  • Informácie o vašom používaní Chromu sa odosielajú Googlu, ale nie sú s vami spojené.
   • V prípade pádu Chromu môžu podrobnosti o páde zahŕňať niektoré osobné údaje.
   • Ak zapnete synchronizáciu, metriky môžu zahŕňať aj informácie o webových adresách, ktoré navštívite.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Ak chcete zapnúť možnosť Sledovať cenu, povoľte upozornenia Chromu v Nastaveniach zariadenia.</translation>
 <translation id="9103442491611662960">Pre tento profil Chromu dostávate štandardnú ochranu zabezpečenia</translation>
 <translation id="9112744793181547300">Chcete nastaviť Chrome ako predvolený prehliadač?</translation>
 <translation id="9122931302567044771">Znamená to, že Chrome bude zakaždým žiadať o verziu webu pre počítače.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr-Latn.xtb
index bd96852..1c54403 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr-Latn.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Da biste koristili Chrome na najbolji način, prijavite se na Chrome pomoću Google naloga.</translation>
 <translation id="7855730255114109580">Google Chrome je aktuelan</translation>
 <translation id="7939179037291298976">U podešavanjima iPhone-a otvorite „Password Options“ (Opcije za lozinke) i izaberite „Chrome“</translation>
+<translation id="7975131781538454817">Chrome obaveštenja su isključena u podešavanjima uređaja. Prvo treba da dozvolite obaveštenja.</translation>
 <translation id="8022947259858476807">Podrazumevano koristite Chrome da biste otvarali linkove, pretraživali iz vidžeta i automatski popunjavali lozinke u drugim aplikacijama</translation>
 <translation id="81358522153858150">Chrome sada podržava smernice za korisnika za upravljani nalog</translation>
 <translation id="8160472928944011082">Chrome ne može da se ažurira</translation>
@@ -140,6 +141,7 @@
 <ph name="BEGIN_INDENT" />  • Informacije o vašem korišćenju Chrome-a se šalju Google-u, ali nisu povezane sa vama.
   • Ako Chrome otkaže, detalji o otkazivanju mogu da sadrže neke lične podatke.
   • Ako uključite sinhronizaciju, pokazatelji mogu da obuhvataju informacije o URL-ovima koje posećujete.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Da biste uključili opciju Prati cenu, dozvolite Chrome obaveštenja u podešavanjima uređaja</translation>
 <translation id="9103442491611662960">Dobijate standardnu bezbednosnu zaštitu za ovaj Chrome profil</translation>
 <translation id="9112744793181547300">Želite da podesite Chrome kao podrazumevani?</translation>
 <translation id="9122931302567044771">To znači da će Chrome svaki put zahtevati sajt za računar.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb
index 8960216..4b09c26 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Да бисте користили Chrome на најбољи начин, пријавите се на Chrome помоћу Google налога.</translation>
 <translation id="7855730255114109580">Google Chrome је актуелан</translation>
 <translation id="7939179037291298976">У подешавањима iPhone-а отворите „Password Options“ (Опције за лозинке) и изаберите „Chrome“</translation>
+<translation id="7975131781538454817">Chrome обавештења су искључена у подешавањима уређаја. Прво треба да дозволите обавештења.</translation>
 <translation id="8022947259858476807">Подразумевано користите Chrome да бисте отварали линкове, претраживали из виџета и аутоматски попуњавали лозинке у другим апликацијама</translation>
 <translation id="81358522153858150">Chrome сада подржава смернице за корисника за управљани налог</translation>
 <translation id="8160472928944011082">Chrome не може да се ажурира</translation>
@@ -140,6 +141,7 @@
 <ph name="BEGIN_INDENT" />  • Информације о вашем коришћењу Chrome-а се шаљу Google-у, али нису повезане са вама.
   • Ако Chrome откаже, детаљи о отказивању могу да садрже неке личне податке.
   • Ако укључите синхронизацију, показатељи могу да обухватају информације о URL-овима које посећујете.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Да бисте укључили опцију Прати цену, дозволите Chrome обавештења у подешавањима уређаја</translation>
 <translation id="9103442491611662960">Добијате стандардну безбедносну заштиту за овај Chrome профил</translation>
 <translation id="9112744793181547300">Желите да подесите Chrome као подразумевани?</translation>
 <translation id="9122931302567044771">То значи да ће Chrome сваки пут захтевати сајт за рачунар.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb
index 49226ae6..bc382301 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">Щоб користуватись усіма можливостями Chrome, увійдіть в обліковий запис Google у цьому веб-переглядачі.</translation>
 <translation id="7855730255114109580">У вас остання версія Google Chrome</translation>
 <translation id="7939179037291298976">У Параметрах на пристрої iPhone відкрийте розділ "Параметри паролів" і виберіть "Chrome"</translation>
+<translation id="7975131781538454817">Сповіщення Chrome вимкнено в налаштуваннях пристрою. Щоб продовжити, увімкніть їх.</translation>
 <translation id="8022947259858476807">Зробіть Chrome веб-переглядачем за умовчанням, щоб відкривати посилання, шукати інформацію через віджети й автоматично заповнювати паролі в інших додатках</translation>
 <translation id="81358522153858150">Тепер Chrome підтримує правила для користувачів, які можуть застосовуватися до вашого керованого облікового запису</translation>
 <translation id="8160472928944011082">Не вдається оновити Chrome</translation>
@@ -142,6 +143,7 @@
   • Якщо в Chrome виникає збій, відомості про нього можуть містити особисту інформацію.
 
   • Якщо ви ввімкнете синхронізацію, показники також можуть містити дані про відвідані URL-адреси.<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">Щоб увімкнути опцію "Відстежувати ціну", дозвольте сповіщення Chrome у налаштуваннях пристрою</translation>
 <translation id="9103442491611662960">Ви ввімкнули стандартний режим безпеки для цього профілю Chrome</translation>
 <translation id="9112744793181547300">Зробити Chrome веб-переглядач за умовчанням?</translation>
 <translation id="9122931302567044771">Це означає, що Chrome щоразу буде запитувати версію сайту для комп’ютера.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ur.xtb
index 88af62b..3798fd6a 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ur.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">‏Chrome سے بھرپور فائدہ اٹھانے کے لیے اپنے Google اکاؤنٹ کے ساتھ Chrome میں سائن ان کریں۔</translation>
 <translation id="7855730255114109580">‏Google Chrome اپ ٹو ڈیٹ ہے</translation>
 <translation id="7939179037291298976">‏اپنے iPhone کی ترتیبات سے، "پاس ورڈ کے اختیارات" کھولیں اور "Chrome" کو منتخب کریں</translation>
+<translation id="7975131781538454817">‏Chrome کی اطلاعات آپ کے آلے کی ترتیبات میں آف ہیں۔ آپ کو پہلے اطلاعات کی اجازت دینے کی ضرورت ہوگی۔</translation>
 <translation id="8022947259858476807">‏لنکس کھولنے، ویجیٹس سے تلاش کرنے اور دیگر ایپس میں پاس ورڈز کو آٹو فل کرنے کیلئے، Chrome کا بطور ڈیفالٹ استعمال کریں</translation>
 <translation id="81358522153858150">‏Chrome اب آپ کے نظم کردہ اکاؤنٹ کے لیے صارف کی پالیسیوں کو سپورٹ کرتا ہے</translation>
 <translation id="8160472928944011082">‏Chrome اپ ڈیٹ نہیں کیا جا سکتا</translation>
@@ -140,6 +141,7 @@
 <ph name="BEGIN_INDENT" />  • آپ کے Chrome کے استعمال کے بارے میں معلومات Google کو بھیجی جاتی ہے، لیکن یہ آپ سے منسلک نہیں ہے۔
   • اگر Chrome کریش ہو جاتا ہے تو کریش کی تفصیلات میں کچھ ذاتی معلومات شامل ہو سکتی ہیں۔
   • اگر آپ مطابقت پذیری کو آن کرتے ہیں تو میٹرکس میں ان URLs کے بارے میں معلومات بھی شامل ہو سکتی ہیں جنہیں آپ ملاحظہ کرتے ہیں۔<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">‏'قیمت ٹریک کریں' کو آن کرنے کے لیے آلے کی ترتیبات میں Chrome کی اطلاعات کی اجازت دیں</translation>
 <translation id="9103442491611662960">‏اس Chrome پروفائل کے لیے آپ کو معیاری حفاظتی تحفظ مل رہا ہے</translation>
 <translation id="9112744793181547300">‏Chrome کو ڈیفالٹ کے بطور سیٹ کریں؟</translation>
 <translation id="9122931302567044771">‏اس کا مطلب ہے کہ Chrome ہر بار ڈیسک ٹاپ سائٹ کی درخواست کرے گا۔</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-HK.xtb
index 063a3f1..2c253bd 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-HK.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">如要充分運用 Chrome 的所有功能,請透過 Google 帳戶登入 Chrome。</translation>
 <translation id="7855730255114109580">Google Chrome 已是最新版本</translation>
 <translation id="7939179037291298976">從 iPhone 的「設定」開啟「密碼選項」,然後選取「Chrome」</translation>
+<translation id="7975131781538454817">您已在裝置設定中關閉 Chrome 通知,請先允許傳送通知。</translation>
 <translation id="8022947259858476807">預設使用 Chrome 來開啟連結、從小工具搜尋,以及在其他應用程式中自動填入密碼</translation>
 <translation id="81358522153858150">Chrome 現在支援受管帳戶的使用者政策</translation>
 <translation id="8160472928944011082">Chrome 無法更新</translation>
@@ -142,6 +143,7 @@
   • Chromium 當機時,有關當機詳情可能會包括部分個人資料。
 
   • 開啟同步處理功能後,數據可能亦會包括先前瀏覽網址的資料。<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">如要開啟「追蹤價格」功能,請在「裝置設定」中允許「Chrome 通知」</translation>
 <translation id="9103442491611662960">此 Chrome 個人檔案正受標準安全保護功能保護</translation>
 <translation id="9112744793181547300">要將 Chrome 設定為預設瀏覽器嗎?</translation>
 <translation id="9122931302567044771">這代表 Chrome 每次都會要求取得桌面版網站。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb
index a8bf81a..0bac9eb 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb
@@ -113,6 +113,7 @@
 <translation id="7780154209050837198">如要充分運用 Chrome 的各項功能,請透過 Google 帳戶登入 Chrome。</translation>
 <translation id="7855730255114109580">Google Chrome 目前是最新版本</translation>
 <translation id="7939179037291298976">從 iPhone 的「設定」開啟「密碼選項」,然後選取「Chrome」</translation>
+<translation id="7975131781538454817">你已在裝置設定中關閉 Chrome 通知,請先允許傳送通知。</translation>
 <translation id="8022947259858476807">預設使用 Chrome 來開啟連結、從小工具搜尋,以及自動在其他應用程式中填入密碼</translation>
 <translation id="81358522153858150">Chrome 現在支援受管理帳戶的使用者政策</translation>
 <translation id="8160472928944011082">Chrome 無法更新</translation>
@@ -142,6 +143,7 @@
   • Chrome 當機時,有關當機的詳細資料可能會包含一些個人資訊。
 
   • 開啟同步功能後,指標可能也會包含先前造訪網址的資訊。<ph name="END_INDENT" /></translation>
+<translation id="9101160735177453133">如要開啟「追蹤價格」功能,請前往裝置設定允許 Chrome 傳送通知</translation>
 <translation id="9103442491611662960">這個 Chrome 設定檔即將啟用標準安全防護機制</translation>
 <translation id="9112744793181547300">要將 Chrome 設為預設瀏覽器嗎?</translation>
 <translation id="9122931302567044771">這代表 Chrome 每次都會對電腦版網站發出要求。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index a705775..47e1a30 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Speld oortjie vas</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> items is geskuif</translation>
 <translation id="2122754583996902531">Jou blaaier word bestuur. <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Skakel pryskennisgewings aan?</translation>
 <translation id="2139867232736819575">Soek vir teks wat jy gekopieer het</translation>
 <translation id="214201757571129614">Meld aan …</translation>
 <translation id="2149973817440762519">Wysig boekmerk</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Wys geskiedenis</translation>
 <translation id="2800683595868705743">Verlaat oortjiewisselaar</translation>
 <translation id="2815198996063984598">2. Tik op Verstekblaaierprogram.</translation>
+<translation id="2822917246944009066">Oortjie is vasgespeld</translation>
 <translation id="2830972654601096923">Bestuur adresse …</translation>
 <translation id="2834399722155632105">3. Tik op Wagwoordopsies</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -314,6 +316,7 @@
 <translation id="3227137524299004712">Mikrofoon</translation>
 <translation id="3240426699337459095">Skakel gekopieer</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">Jou verandering kon nie gestoor word nie.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /> van <ph name="NUM_SUGGESTIONS" /></translation>
 <translation id="3268451620468152448">Maak oortjies oop</translation>
 <translation id="3272527697863656322">Kanselleer</translation>
@@ -336,6 +339,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> min.</translation>
 <translation id="3448016392200048164">Deelaansig</translation>
 <translation id="345565170154308620">Bestuur wagwoorde …</translation>
+<translation id="3464194322481586217">Kon nie die prys naspoor nie.</translation>
 <translation id="3469166899695866866">Stop aflaai?</translation>
 <translation id="3470502288861289375">Kopieer tans …</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{vir {COUNT} werf of app}other{vir {COUNT} werwe en apps}}</translation>
@@ -763,6 +767,7 @@
 <translation id="6464397691496239022">Werwe kan webkoekies gebruik om jou blaai-ervaring beter te maak, byvoorbeeld, om jou aangemeld te hou of om items in jou inkopiemandjie te onthou.
 
 Werwe kan nie webkoekies gebruik om jou blaai-aktiwiteit op verskillende werwe te sien nie, byvoorbeeld om advertensies te personaliseer nie.</translation>
+<translation id="6476253015009698798">Prysnasporing is nie vir hierdie bladsy beskikbaar nie.</translation>
 <translation id="6476800141292307438">Vertaal tans die bladsy in <ph name="LANGUAGE" />. Opsies is naby die onderkant van die skerm beskikbaar.</translation>
 <translation id="648164694371393720">Stawingfout</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> items uitgevee</translation>
@@ -814,6 +819,7 @@
 <translation id="6780034285637185932">Poskode</translation>
 <translation id="6781260999953472352">Skakel sinkronisering aan?</translation>
 <translation id="6785453220513215166">Stuur tans omvalverslag …</translation>
+<translation id="6790502149545262384">Jy sal binnekort stories van <ph name="CHANNEL_NAME" /> af sien wanneer jy ’n nuwe oortjie oopmaak.</translation>
 <translation id="6797885426782475225">Stemsoektog</translation>
 <translation id="6801927553864092214">Maak 'n Incognito-oortjie oop om privaat te blaai</translation>
 <translation id="6807889908376551050">Wys alles …</translation>
@@ -893,6 +899,7 @@
 <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="7438481509621345350">Jy sal nou stories van <ph name="CHANNEL_NAME" /> af sien wanneer jy 'n nuwe oortjie oopmaak.</translation>
+<translation id="7446583256109515732">Oortjie is ontspeld</translation>
 <translation id="7454057999980797137">Staat / Distrik</translation>
 <translation id="7459628154744868585">Verbeterde Beskerming is aan</translation>
 <translation id="746684838091935575">3. Kies Chrome</translation>
@@ -1123,6 +1130,8 @@
 <translation id="9137526406337347448">Google-dienste</translation>
 <translation id="9148126808321036104">Meld weer aan …</translation>
 <translation id="9157836665414082580">Onderdruk dialoë</translation>
+<translation id="9162432979321511934">Skakel Outovulwagwoorde aan</translation>
+<translation id="9165320910061267720">Jy sal kennisgewings in jou iOS-instellings moet aanskakel as jy kennisgewings vir prysdalingopletberigte wil ontvang.</translation>
 <translation id="9177438225260810839">Deursoek oop oortjies</translation>
 <translation id="9188680907066685419">Meld af uit bestuurde rekening</translation>
 <translation id="9193147658040604536">Sleep oortjie hierheen om vas te speld</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index 5be08d5..7497a85 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">ዝንባሌዎች</translation>
 <translation id="5118764316110575523">ጠፍቷል</translation>
 <translation id="5119391094379141756">Chromeን ይምረጡ</translation>
+<translation id="5121618895923301719">ይህን ምርት አስቀድመው እየተከታተሉት ነው። ይህ ገጽ በ<ph name="BEGIN_LINK" />ተንቀሳቃሽ እልባቶች<ph name="END_LINK" /> ውስጥ ተቀምጧል።</translation>
 <translation id="5132942445612118989">የእርስዎን የይለፍ ቃላት፣ ታሪክ እና ተጨማሪ ነገሮች በሁሉም መሣሪያዎች ላይ ያስምሩ</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} ደካማ የይለፍ ቃል}one{{COUNT} ደካማ የይለፍ ቃል}other{{COUNT} ደካማ የይለፍ ቃላት}}</translation>
 <translation id="5149188072385105201">የይለፍ ቃል አክል…</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">የሚከተሏቸውን ጣቢያዎች እዚህ ያገኛሉ</translation>
 <translation id="5388358297987318779">ምስል ክፈት</translation>
 <translation id="5407969256130905701">ለውጦችን አስወግድ</translation>
+<translation id="5414763847370083940">በማንኛውም ጣቢያ ላይ ዋጋው ከቀነሰ ማንቂያ ያገኛሉ።</translation>
 <translation id="5416022985862681400">ባለፉት 7 ቀኖች</translation>
 <translation id="5423269318075950257">ዋጋ ይከታተሉ</translation>
 <translation id="543338862236136125">የይለፍ ቃል አርትዕ</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">ይቅር</translation>
 <translation id="953008885340860025">Chrome ዘግቶ ወጥቷል</translation>
 <translation id="959066944189734975"><ph name="CHANNEL_NAME" />ን እየተከተሉ ነው</translation>
+<translation id="973493300226275298">በመላው የመስመር ላይ መደብሮች ላይ የአንድን ምርት ዋጋ ይከታተሉ። ዋጋው በሚቀንበት ጊዜ ማንቂያዎች ይደርሱዎታል።</translation>
 <translation id="980712131080209571">አ</translation>
 <translation id="981498610235328462">በተወሰኑ መለያዎች አማካኝነት ብቻ እንዲገቡ ድርጅትዎ ይፈቅድልዎታል። ያልተፈቀዱ መለያዎች ተደብቀዋል።</translation>
 <translation id="984509647832111802">ስምረት እየሠራ አይደለም።</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index 3df2a01f..2d34842 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">টেব পিন কৰক</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" />টা বস্তু স্থানান্তৰ কৰা হ’ল</translation>
 <translation id="2122754583996902531">আপোনাৰ ব্ৰাউজাৰটো পৰিচালিত। <ph name="BEGIN_LINK" />অধিক জানক<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">মূল্য সম্পৰ্কীয় সতৰ্কবাৰ্তাৰ সুবিধাটো অন কৰিবনে?</translation>
 <translation id="2139867232736819575">আপুনি প্ৰতিলিপি কৰা পাঠৰ সন্ধান কৰক</translation>
 <translation id="214201757571129614">ছাইন ইন কৰক…</translation>
 <translation id="2149973817440762519">বুকমার্ক সম্পাদনা কৰক</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">ইতিহাস দেখুৱাওক</translation>
 <translation id="2800683595868705743">টেব সলনি কৰোঁতা এৰক</translation>
 <translation id="2815198996063984598">২) ডিফ’ল্ট ব্ৰাউজাৰ এপত টিপক</translation>
+<translation id="2822917246944009066">টেবটো পিন কৰা হ’ল</translation>
 <translation id="2830972654601096923">ঠিকনা পৰিচালনা কৰক...</translation>
 <translation id="2834399722155632105">৩) পাছৱৰ্ডৰ বিকল্পসমূহত টিপক</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -314,6 +316,7 @@
 <translation id="3227137524299004712">মাইক্ৰ’ফ’ন</translation>
 <translation id="3240426699337459095">লিংকটোৰ প্ৰতিলিপি কৰা হ’ল</translation>
 <translation id="3244271242291266297">মাহ</translation>
+<translation id="3245744387817103524">আপুনি কৰা সালসলনি ছেভ কৰিব পৰা নগ’ল।</translation>
 <translation id="3252394070589632019"><ph name="NUM_SUGGESTIONS" />ৰ <ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /></translation>
 <translation id="3268451620468152448">খুলি ৰখা টেব</translation>
 <translation id="3272527697863656322">বাতিল কৰক</translation>
@@ -336,6 +339,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> মিনিট</translation>
 <translation id="3448016392200048164">স্প্লিট ভিউ ম’ড</translation>
 <translation id="345565170154308620">পাছৱৰ্ডসমূহ পৰিচালনা কৰক...</translation>
+<translation id="3464194322481586217">মূল্যটো ট্ৰেক কৰিব পৰা নগ’ল।</translation>
 <translation id="3469166899695866866">ডাউনল’ড কৰা বন্ধ কৰিবনে?</translation>
 <translation id="3470502288861289375">প্ৰতিলিপি কৰি থকা হৈছে…</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{{COUNT} টা ছাইট আৰু এপৰ বাবে}one{{COUNT} টা ছাইট আৰু এপৰ বাবে}other{{COUNT} টা ছাইট আৰু এপৰ বাবে}}</translation>
@@ -763,6 +767,7 @@
 <translation id="6464397691496239022">ছাইটসমূহে আপোনাৰ ব্ৰাউজিঙৰ অভিজ্ঞতা উন্নত কৰিবলৈ কুকিসমূহ ব্যৱহাৰ কৰিব পাৰে, উদাহৰণস্বৰূপে, আপোনাক ছাইন ইন কৰি ৰাখিবলৈ অথবা আপোনাৰ শ্বপিং কার্টত থকা বস্তুবোৰ মনত ৰাখিবলৈ।
 
 বিভিন্ন ছাইটত আপোনাৰ ব্ৰাউজিঙৰ কার্যকলাপ চাবলৈ ছাইটসমূহে কুকিসমূহ ব্যৱহাৰ কৰিব নোৱাৰে, উদাহৰণস্বৰূপে, বিজ্ঞাপন ব্যক্তিগতকৰণ কৰিবলৈ।</translation>
+<translation id="6476253015009698798">এই পৃষ্ঠাখনৰ বাবে মূল্য ট্ৰেক কৰাৰ সুবিধাটো উপলব্ধ নহয়।</translation>
 <translation id="6476800141292307438">এই পৃষ্ঠাটো <ph name="LANGUAGE" />লৈ অনুবাদ কৰি থকা হৈছে। বিকল্পসমূহ স্ক্রীণখনৰ একেবাৰে তলৰ কাষত আছে।</translation>
 <translation id="648164694371393720">বিশ্বাসযোগ্যতা প্ৰমাণীকৰণ কৰাত আসোঁৱাহ হৈছে</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> টা সমল মচা হ’ল</translation>
@@ -814,6 +819,7 @@
 <translation id="6780034285637185932">পিন ক’ড</translation>
 <translation id="6781260999953472352">ছিংক অন কৰিবনে?</translation>
 <translation id="6785453220513215166">ক্ৰেশ্ব প্ৰতিবেদন পঠিয়াই থকা হৈছে…</translation>
+<translation id="6790502149545262384">শীঘ্ৰেই, আপুনি এটা নতুন টেব খুলিলে <ph name="CHANNEL_NAME" />ৰ পৰা কাহিনী দেখা পাব।</translation>
 <translation id="6797885426782475225">কণ্ঠধ্বনিৰদ্বাৰা সন্ধান</translation>
 <translation id="6801927553864092214">ব্যক্তিগতভাৱে ব্ৰাউজ কৰিবলৈ কোনো ইনক’গনিট’ টেব খোলক</translation>
 <translation id="6807889908376551050">সকলো দেখুৱাওক...</translation>
@@ -893,6 +899,7 @@
 <translation id="7431991332293347422">আপোনাক Search আৰু অন্য সেৱাসমূহত ব্যক্তিগতকৰণ কৰা অভিজ্ঞতা প্ৰদান কৰিবলৈ কেনেকৈ আপোনাৰ ব্ৰাউজিংৰ ইতিহাস ব্যৱহাৰ কৰা হয় সেয়া নিয়ন্ত্ৰণ কৰক</translation>
 <translation id="7435356471928173109">আপোনাৰ প্ৰশাসকে অফ কৰিছে</translation>
 <translation id="7438481509621345350">আপুনি এতিয়া এটা নতুন টেব খুলিলে <ph name="CHANNEL_NAME" />ৰ পৰা কাহিনী দেখা পাব।</translation>
+<translation id="7446583256109515732">টেবটো আনপিন কৰা হ’ল</translation>
 <translation id="7454057999980797137">ৰাজ্য / দেশ</translation>
 <translation id="7459628154744868585">বৰ্ধিত সুৰক্ষা অন কৰা আছে</translation>
 <translation id="746684838091935575">৩) Chrome বাছনি কৰক</translation>
@@ -1123,6 +1130,8 @@
 <translation id="9137526406337347448">Google সেৱা</translation>
 <translation id="9148126808321036104">আকৌ ছাইন ইন কৰক</translation>
 <translation id="9157836665414082580">ডায়ল'গ লুকুৱাওক</translation>
+<translation id="9162432979321511934">পাছৱৰ্ড স্বয়ংক্ৰিয়ভাৱে পূৰ হোৱা সুবিধাটো অন কৰক</translation>
+<translation id="9165320910061267720">মূল্য কমাৰ সতৰ্কবাৰ্তা সম্পৰ্কীয় জাননী পাবলৈ, আপুনি আপোনাৰ iOS ছেটিঙত জাননী পোৱাৰ সুবিধাটো অন কৰিব লাগিব।</translation>
 <translation id="9177438225260810839">খোলা থকা টেবত সন্ধান কৰক</translation>
 <translation id="9188680907066685419">পৰিচালিত একাউণ্টৰ পৰা ছাইন আউট হওক</translation>
 <translation id="9193147658040604536">টেব পিন কৰিবলৈ ইয়ালৈ টানি আনক</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index 00d914159..6c70bf04 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -314,6 +314,7 @@
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3240426699337459095">Link kopyalandı</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">Dəyişiklik yaddaşda saxlanmadı.</translation>
 <translation id="3252394070589632019"><ph name="NUM_SUGGESTIONS" /> təklifdən <ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /></translation>
 <translation id="3268451620468152448">Panelləri Açın</translation>
 <translation id="3272527697863656322">Ləğv edin</translation>
@@ -336,6 +337,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> dəq</translation>
 <translation id="3448016392200048164">Bölünmüş Görüntü</translation>
 <translation id="345565170154308620">Parolları idarə edin...</translation>
+<translation id="3464194322481586217">Qiyməti izləmək mümkün olmadı.</translation>
 <translation id="3469166899695866866">Endirmə dayandırılsın?</translation>
 <translation id="3470502288861289375">Kopyalanır...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{{COUNT} sayt və ya tətbiq üçün}other{{COUNT} sayt və ya tətbiq üçün}}</translation>
@@ -561,6 +563,7 @@
 <translation id="5118713593561876160">Maraqlar</translation>
 <translation id="5118764316110575523">Deaktiv</translation>
 <translation id="5119391094379141756">Chrome seçin</translation>
+<translation id="5121618895923301719">Artıq bu məhsulu izləyirsiniz. Bu səhifə <ph name="BEGIN_LINK" />Mobil Əlfəcinlərdə<ph name="END_LINK" /> yadda saxlandı.</translation>
 <translation id="5132942445612118989">Bütün cihazlarda parol, tarixçə və s. sinxronizasiya edin</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} zəif parol}other{{COUNT} zəif parol}}</translation>
 <translation id="5149188072385105201">Parol Əlavə edin...</translation>
@@ -591,6 +594,7 @@
 <translation id="5386314158584363703">İzlədiyiniz saytları burada tapa bilərsiniz</translation>
 <translation id="5388358297987318779">Şəkli Açın</translation>
 <translation id="5407969256130905701">Dəyişiklikləri ləğv edin</translation>
+<translation id="5414763847370083940">Hər hansı saytda qiymət düşərsə, bildiriş alacaqsınız.</translation>
 <translation id="5416022985862681400">Son 7 Gün</translation>
 <translation id="5423269318075950257">Qiyməti izləyin</translation>
 <translation id="543338862236136125">Parolu redaktə edin</translation>
@@ -761,6 +765,7 @@
 <translation id="6464397691496239022">Saytlar baxış təcrübənizi yaxşılaşdırmaq üçün, məsələn, sizi daxil olmuş vəziyyətdə saxlamaq və ya alış-veriş səbətinizdəki elementləri yadda saxlamaq üçün kukilərdən istifadə edə bilər.
 
 Saytlar müxtəlif saytlarda baxış fəaliyyətinizi görmək üçün kukilərinizdən istifadə edə bilmir (məsələn, reklamları fərdiləşdirmək üçün).</translation>
+<translation id="6476253015009698798">Bu səhifədə qiymətləri izləmək mümkün deyil.</translation>
 <translation id="6476800141292307438">Səhifə <ph name="LANGUAGE" /> dilinə tərcümə edilir. Seçimlər ekranın aşağı hissəsində əlçatandır.</translation>
 <translation id="648164694371393720">Doğrulama Xətası</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> element silindi</translation>
@@ -812,6 +817,7 @@
 <translation id="6780034285637185932">Poçt İndeksi</translation>
 <translation id="6781260999953472352">Sinxronizasiya aktiv edilsin?</translation>
 <translation id="6785453220513215166">Qəza haqqında hesabat göndərilir...</translation>
+<translation id="6790502149545262384">Tezliklə yeni tab açdığınız zaman <ph name="CHANNEL_NAME" /> saytından hekayələri görəcəksiniz.</translation>
 <translation id="6797885426782475225">Səsli Axtarış</translation>
 <translation id="6801927553864092214">Məxfi axtarış etmək üçün Anonim tab açın</translation>
 <translation id="6807889908376551050">Hamısını göstərin...</translation>
@@ -1121,6 +1127,7 @@
 <translation id="9137526406337347448">Google Xidmətləri</translation>
 <translation id="9148126808321036104">Yenidən daxil olun</translation>
 <translation id="9157836665414082580">Dialoqların qarşısını alın</translation>
+<translation id="9162432979321511934">Parol Avto Doldurmasını aktiv edin</translation>
 <translation id="9177438225260810839">Açıq Tabları axtarın</translation>
 <translation id="9188680907066685419">İdarə olunan hesabdan çıxın</translation>
 <translation id="9193147658040604536">Tabı Sancmaq üçün bura sürüşdürün</translation>
@@ -1133,6 +1140,7 @@
 <translation id="952704832371081537">Ləğv edin</translation>
 <translation id="953008885340860025">Chrome'dan çıxılıb</translation>
 <translation id="959066944189734975"><ph name="CHANNEL_NAME" /> kanalını izləyirsiniz</translation>
+<translation id="973493300226275298">Onlayn mağazalarda məhsulun qiymətini izləyin. Qiymət düşəndə bildiriş alacaqsınız.</translation>
 <translation id="980712131080209571">Y</translation>
 <translation id="981498610235328462">Təşkilatınız yalnız müəyyən hesablarla daxil olmağa icazə verir. İcazə verilməyən hesablar gizlədilib.</translation>
 <translation id="984509647832111802">Sinxronlaşdırma işləmir.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index 5a43583a..a1bcd3a6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Інтарэсы</translation>
 <translation id="5118764316110575523">Выключана</translation>
 <translation id="5119391094379141756">Выберыце Chrome.</translation>
+<translation id="5121618895923301719">Вы ўжо сочыце за гэтым таварам. Гэта старонка захавана ў <ph name="BEGIN_LINK" />мабільных закладках<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Сінхранізуйце паролі, гісторыю і іншыя даныя на ўсіх прыладах</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} ненадзейны пароль}one{{COUNT} ненадзейны пароль}few{{COUNT} ненадзейныя паролі}many{{COUNT} ненадзейных пароляў}other{{COUNT} ненадзейнага пароля}}</translation>
 <translation id="5149188072385105201">Дадаць пароль...</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Тут будуць пералічаны сайты, на якія вы падпісаліся</translation>
 <translation id="5388358297987318779">Адкрыць відарыс</translation>
 <translation id="5407969256130905701">Адхіліць змяненні</translation>
+<translation id="5414763847370083940">Пры зніжэнні цаны на любым з сайтаў вы атрымаеце абвестку.</translation>
 <translation id="5416022985862681400">За апошнія 7 дзён</translation>
 <translation id="5423269318075950257">Адсочванне цэн</translation>
 <translation id="543338862236136125">Змяніць пароль</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Скасаваць</translation>
 <translation id="953008885340860025">Уваход у Chrome не выкананы</translation>
 <translation id="959066944189734975">Вы падпісаны на канал "<ph name="CHANNEL_NAME" />"</translation>
+<translation id="973493300226275298">Адсочвайце цэны на тавары ў інтэрнэт-крамах. Пры зніжэнні цаны вы будзеце атрымліваць абвесткі.</translation>
 <translation id="980712131080209571">Новае</translation>
 <translation id="981498610235328462">Палітыка вашай арганізацыі дазваляе ўваходзіць, выкарыстоўваючы толькі пэўныя ўліковыя запісы. Уліковыя запісы, выкарыстоўваць якія не дазволена, не паказваюцца.</translation>
 <translation id="984509647832111802">Сінхранізацыя не працуе.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index 664df6f..6cd65fe 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">আগ্রহগুলি</translation>
 <translation id="5118764316110575523">বন্ধ করা আছে</translation>
 <translation id="5119391094379141756">Chrome বেছে নিন</translation>
+<translation id="5121618895923301719">আপনি আগে থেকেই এই প্রোডাক্টটি ট্র্যাক করছেন। এই পৃষ্ঠাটি <ph name="BEGIN_LINK" />মোবাইল বুকমার্কে<ph name="END_LINK" /> সেভ করা আছে।</translation>
 <translation id="5132942445612118989">সমস্ত ডিভাইসে আপনার পাসওয়ার্ড, ইতিহাস ও আরও অনেক কিছু সিঙ্ক করুন</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT}টি দুর্বল পাসওয়ার্ড}one{{COUNT}টি দুর্বল পাসওয়ার্ড}other{{COUNT}টি দুর্বল পাসওয়ার্ড}}</translation>
 <translation id="5149188072385105201">পাসওয়ার্ড যোগ করুন...</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">আপনার ফলো করা সাইট এখানে দেখতে পাবেন</translation>
 <translation id="5388358297987318779">ছবি খুলুন</translation>
 <translation id="5407969256130905701">পরিবর্তনগুলি বাতিল করুন</translation>
+<translation id="5414763847370083940">কোনও সাইটে দাম কমলে সেই সম্পর্কে আপনি বিজ্ঞপ্তি পাবেন।</translation>
 <translation id="5416022985862681400">গত ৭ দিনে</translation>
 <translation id="5423269318075950257">দাম ট্র্যাক করুন</translation>
 <translation id="543338862236136125">পাসওয়ার্ড এডিট করুন</translation>
@@ -1134,6 +1136,7 @@
 <translation id="952704832371081537">বাতিল করুন</translation>
 <translation id="953008885340860025">Chrome থেকে সাইন-আউট হয়ে গেছেন</translation>
 <translation id="959066944189734975">আপনি <ph name="CHANNEL_NAME" /> ফলো করছেন</translation>
+<translation id="973493300226275298">অনলাইন স্টোর জুড়ে প্রোডাক্টের দাম ট্র্যাক করুন। দাম কমে গেলে আপনি বিজ্ঞপ্তি পাবেন।</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">শুধুমাত্র নির্দিষ্ট অ্যাকাউন্টের মাধ্যমেই আপনার সংস্থা সাইন-ইন করার অনুমতি দেবে। অনুমোদন করা নেই এমন অ্যাকাউন্ট লুকানো আছে।</translation>
 <translation id="984509647832111802">সিঙ্ক কাজ করছে না।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index d4565a2..cf9162c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -314,6 +314,7 @@
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3240426699337459095">Link je kopiran</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">Izmjena nije spremljena.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /> od <ph name="NUM_SUGGESTIONS" /></translation>
 <translation id="3268451620468152448">Otvorene kartice</translation>
 <translation id="3272527697863656322">Otkaži</translation>
@@ -336,6 +337,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="3448016392200048164">Podijeljeni prikaz</translation>
 <translation id="345565170154308620">Upravljanje lozinkama…</translation>
+<translation id="3464194322481586217">Praćenje cijene nije uspjelo.</translation>
 <translation id="3469166899695866866">Zaustaviti preuzimanje?</translation>
 <translation id="3470502288861289375">Kopiranje...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{za {COUNT} web lokaciju ili aplikaciju}one{za {COUNT} web lokaciju i aplikaciju}few{za {COUNT} web lokacije i aplikacije}other{za {COUNT} web lokacija i aplikacija}}</translation>
@@ -763,6 +765,7 @@
 <translation id="6464397691496239022">Web lokacije mogu koristiti kolačiće da poboljšaju vaše iskustvo pregledanja, naprimjer, da ostanete prijavljeni ili da stavke u kolicima za kupovinu ostanu sačuvane.
 
 Web lokacije ne mogu koristiti kolačiće da vide vašu aktivnost pregledanja na različitim web lokacijama, naprimjer, radi personaliziranja oglasa.</translation>
+<translation id="6476253015009698798">Praćenje cijena nije dostupno za ovu web-stranicu.</translation>
 <translation id="6476800141292307438">Prevođenje stranice na <ph name="LANGUAGE" /> jezik. Opcije su dostupne pri dnu ekrana.</translation>
 <translation id="648164694371393720">Greška pri autentifikaciji</translation>
 <translation id="6482629121755362506">Broj izbrisanih stavki je <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
@@ -814,6 +817,7 @@
 <translation id="6780034285637185932">Poštanski broj</translation>
 <translation id="6781260999953472352">Uključiti sinhronizaciju?</translation>
 <translation id="6785453220513215166">Slanje izvještaja o padovima aplikacije...</translation>
+<translation id="6790502149545262384">Prilikom otvaranja nove kartice uskoro će se prikazivati članci s web-lokacije <ph name="CHANNEL_NAME" />.</translation>
 <translation id="6797885426782475225">Glasovno pretraživanje</translation>
 <translation id="6801927553864092214">Da privatno pregledate, otvorite anonimnu karticu</translation>
 <translation id="6807889908376551050">Prikaži sve…</translation>
@@ -1123,6 +1127,7 @@
 <translation id="9137526406337347448">Googleove usluge</translation>
 <translation id="9148126808321036104">Prijavi se ponovo</translation>
 <translation id="9157836665414082580">Spriječi dijaloge</translation>
+<translation id="9162432979321511934">Uključite automatsko popunjavanje zaporki</translation>
 <translation id="9177438225260810839">Pretraži otvorene kartice</translation>
 <translation id="9188680907066685419">Odjava s upravljanog računa</translation>
 <translation id="9193147658040604536">Prevucite ovdje da zakačite karticu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index ebaebfb..3f56d618 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Interessos</translation>
 <translation id="5118764316110575523">Desactivat</translation>
 <translation id="5119391094379141756">Selecciona Chrome.</translation>
+<translation id="5121618895923301719">Ja estàs fent el seguiment d'aquest producte. Aquesta pàgina s'ha desat a <ph name="BEGIN_LINK" />Adreces d'interès per a mòbils<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Sincronitza les contrasenyes, l'historial i altres elements en tots els dispositius</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} contrasenya poc segura}other{{COUNT} contrasenyes poc segures}}</translation>
 <translation id="5149188072385105201">Afegeix una contrasenya...</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Aquí trobaràs els llocs web que segueixes</translation>
 <translation id="5388358297987318779">Obre una imatge</translation>
 <translation id="5407969256130905701">Descarta els canvis</translation>
+<translation id="5414763847370083940">Rebràs una alerta si el preu baixa en qualsevol lloc web.</translation>
 <translation id="5416022985862681400">7 darrers dies</translation>
 <translation id="5423269318075950257">Fes un seguiment del preu</translation>
 <translation id="543338862236136125">Edita la contrasenya</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Cancel·la</translation>
 <translation id="953008885340860025">S'ha tancat la sessió de Chrome</translation>
 <translation id="959066944189734975">Segueixes <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Fes un seguiment del preu d'un producte en diferents botigues en línia. Rebràs alertes quan el preu baixi.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">La teva organització només et permet iniciar la sessió amb determinats comptes. Els comptes no admesos s'amaguen.</translation>
 <translation id="984509647832111802">La sincronització no funciona.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
index 28e8c5f4..67ed6905 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Diddordebau</translation>
 <translation id="5118764316110575523">Diffodd</translation>
 <translation id="5119391094379141756">Dewiswch Chrome</translation>
+<translation id="5121618895923301719">Rydych yn olrhain y cynnyrch hwn yn barod. Mae'r dudalen hon wedi'i chadw yn <ph name="BEGIN_LINK" />Nodau Tudalen Dyfais Symudol<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Cysonwch eich cyfrineiriau, hanes a mwy ar bob dyfais</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} Cyfrinair Gwan}zero{{COUNT} Cyfrinair Gwan}two{{COUNT} Gyfrinair Gwan}few{{COUNT} Cyfrinair Gwan}many{{COUNT} Cyfrinair Gwan}other{{COUNT} Cyfrinair Gwan}}</translation>
 <translation id="5149188072385105201">Ychwanegu Cyfrinair...</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Byddwch yn gweld eich gwefannau a ddilynir yma</translation>
 <translation id="5388358297987318779">Agor Llun</translation>
 <translation id="5407969256130905701">Cael Gwared ar Newidiadau?</translation>
+<translation id="5414763847370083940">Byddwch yn cael rhybudd os bydd y pris yn gostwng ar unrhyw wefan.</translation>
 <translation id="5416022985862681400">Y 7 diwrnod diwethaf</translation>
 <translation id="5423269318075950257">Dilyn y Pris</translation>
 <translation id="543338862236136125">Golygu cyfrinair</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Canslo</translation>
 <translation id="953008885340860025">Mae Chrome wedi'i Allgofnodi</translation>
 <translation id="959066944189734975">Rydych yn dilyn <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Olrhain pris cynnyrch ar draws siopau ar-lein. Byddwch yn cael rhybudd pan fydd y pris yn gostwng.</translation>
 <translation id="980712131080209571">G</translation>
 <translation id="981498610235328462">Mae eich sefydliad yn caniatáu i chi fewngofnodi gyda rhai cyfrifon yn unig Mae cyfrifon na chaniateir yn cael eu cuddio.</translation>
 <translation id="984509647832111802">Nid yw Cysoni'n Gweithio.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index e039cfa1..2c3b1fe3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Interesser</translation>
 <translation id="5118764316110575523">Fra</translation>
 <translation id="5119391094379141756">Vælg Chrome</translation>
+<translation id="5121618895923301719">Du holder allerede øje med dette produkt. Denne side er gemt i <ph name="BEGIN_LINK" />Bogmærker på mobil<ph name="END_LINK" /></translation>
 <translation id="5132942445612118989">Synkroniser dine adgangskoder, din historik og meget mere på alle enheder</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} svag adgangskode}one{{COUNT} svag adgangskode}other{{COUNT} svage adgangskoder}}</translation>
 <translation id="5149188072385105201">Tilføj adgangskode…</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Her finder du de websites, du følger</translation>
 <translation id="5388358297987318779">Åbn billede</translation>
 <translation id="5407969256130905701">Kassér ændringer</translation>
+<translation id="5414763847370083940">Du får en underretning, hvis prisen falder på et website.</translation>
 <translation id="5416022985862681400">De seneste syv dage</translation>
 <translation id="5423269318075950257">Hold øje med prisudviklingen</translation>
 <translation id="543338862236136125">Rediger adgangskode</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Annuller</translation>
 <translation id="953008885340860025">Chrome er logget ud</translation>
 <translation id="959066944189734975">Du følger <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Hold øje med prisen på et produkt i netbutikker. Du får underretninger, når prisen falder.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Din organisation tillader kun login med bestemte konti. Konti, der ikke tillades, skjules.</translation>
 <translation id="984509647832111802">Synkronisering fungerer ikke.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 9897778..539a1f44 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Interessen</translation>
 <translation id="5118764316110575523">Aus</translation>
 <translation id="5119391094379141756">Wähle Chrome aus</translation>
+<translation id="5121618895923301719">Du beobachtest dieses Produkt bereits. Diese Seite ist in den <ph name="BEGIN_LINK" />mobilen Lesezeichen<ph name="END_LINK" /> gespeichert.</translation>
 <translation id="5132942445612118989">Passwörter, Verlauf und mehr auf allen Geräten synchronisieren</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} schwaches Passwort}other{{COUNT} schwache Passwörter}}</translation>
 <translation id="5149188072385105201">Passwort hinzufügen</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Hier findest du Seiten, denen du folgst</translation>
 <translation id="5388358297987318779">Bild öffnen</translation>
 <translation id="5407969256130905701">Änderungen verwerfen</translation>
+<translation id="5414763847370083940">Du wirst benachrichtigt, wenn der Preis auf einer Website sinkt.</translation>
 <translation id="5416022985862681400">Letzte 7 Tage</translation>
 <translation id="5423269318075950257">Preis beobachten</translation>
 <translation id="543338862236136125">Passwort ändern</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Abbrechen</translation>
 <translation id="953008885340860025">Von Chrome abgemeldet</translation>
 <translation id="959066944189734975">Du folgst <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Du kannst den Preis eines Produkts in Onlineshops beobachten. Du wirst benachrichtigt, wenn der Preis sinkt.</translation>
 <translation id="980712131080209571">Neu</translation>
 <translation id="981498610235328462">Deine Organisation lässt die Anmeldung nur mit bestimmten Konten zu. Unzulässige Konten sind ausgeblendet.</translation>
 <translation id="984509647832111802">Synchronisierung funktioniert nicht.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index d66cb2b..df4820a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Καρφίτσωμα καρτέλας</translation>
 <translation id="2116625576999540962">Μετακινήθηκαν <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> στοιχεία</translation>
 <translation id="2122754583996902531">Το πρόγραμμα περιήγησής σας είναι διαχειριζόμενο. <ph name="BEGIN_LINK" />Μάθετε περισσότερα<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Ενεργοποίηση των ειδοποιήσεων τιμών;</translation>
 <translation id="2139867232736819575">Αναζήτηση του κειμένου που αντιγράψατε</translation>
 <translation id="214201757571129614">Σύνδεση…</translation>
 <translation id="2149973817440762519">Επεξεργασία σελιδοδείκτη</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Εμφάνιση ιστορικού</translation>
 <translation id="2800683595868705743">Αποχώρηση από την εναλλαγή καρτελών</translation>
 <translation id="2815198996063984598">2. Πατήστε Προεπιλεγμένη εφαρμογή προγράμματος περιήγησης.</translation>
+<translation id="2822917246944009066">Η καρτέλα καρφιτσώθηκε</translation>
 <translation id="2830972654601096923">Διαχείριση διευθύνσεων…</translation>
 <translation id="2834399722155632105">3. Πατήστε Επιλογές κωδικών πρόσβασης</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -894,6 +896,7 @@
 <translation id="7431991332293347422">Ελέγξτε τον τρόπο με τον οποίο χρησιμοποιείται το ιστορικό περιήγησής σας για την εξατομίκευση της Αναζήτησης και άλλων λειτουργιών</translation>
 <translation id="7435356471928173109">Απενεργοποιήθηκε από τον διαχειριστή σας.</translation>
 <translation id="7438481509621345350">Θα βλέπετε πλέον ειδήσεις από τον ιστότοπο <ph name="CHANNEL_NAME" /> όταν ανοίγετε μια νέα καρτέλα.</translation>
+<translation id="7446583256109515732">Η καρτέλα ξεκαρφιτσώθηκε</translation>
 <translation id="7454057999980797137">Νομός/Επαρχία</translation>
 <translation id="7459628154744868585">Η Βελτιωμένη προστασία είναι ενεργή</translation>
 <translation id="746684838091935575">3. Επιλέξτε Chrome.</translation>
@@ -1124,6 +1127,7 @@
 <translation id="9137526406337347448">Υπηρεσίες Google</translation>
 <translation id="9148126808321036104">Συνδεθείτε ξανά</translation>
 <translation id="9157836665414082580">Απόκρυψη παραθύρων διαλόγου</translation>
+<translation id="9165320910061267720">Για να λαμβάνετε ειδοποιήσεις σχετικά με τις πτώσεις τιμών, θα πρέπει να ενεργοποιήσετε τις ειδοποιήσεις στις ρυθμίσεις iOS.</translation>
 <translation id="9177438225260810839">Αναζήτηση σε ανοικτές καρτέλες</translation>
 <translation id="9188680907066685419">Αποσύνδεση από διαχειριζόμενο λογαριασμό</translation>
 <translation id="9193147658040604536">Σύρετε εδώ για Καρφίτσωμα καρτέλας</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index 5f13d69..4fb25bca 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Huvid</translation>
 <translation id="5118764316110575523">Väljas</translation>
 <translation id="5119391094379141756">Valige Chrome</translation>
+<translation id="5121618895923301719">Jälgite juba seda toodet. Leht salvestati <ph name="BEGIN_LINK" />mobiili järjehoidjatesse<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Teie paroolide, ajaloo ja muude andmete sünkroonimine kõigis seadmetes</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} nõrk parool}other{{COUNT} nõrka parooli}}</translation>
 <translation id="5149188072385105201">Parooli lisamine …</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Leiate oma jälgitavad saidid siit</translation>
 <translation id="5388358297987318779">Ava kujutis</translation>
 <translation id="5407969256130905701">Loobu muudatustest</translation>
+<translation id="5414763847370083940">Saate teavituse, kui hind mis tahes saidil langeb.</translation>
 <translation id="5416022985862681400">Viimased 7 päeva</translation>
 <translation id="5423269318075950257">Hindade jälgimine</translation>
 <translation id="543338862236136125">Muuda parooli</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Tühista</translation>
 <translation id="953008885340860025">Olete Chrome'ist välja logitud</translation>
 <translation id="959066944189734975">Jälgite kanalit <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Jälgige toote hinda veebipoodides. Saate teavitusi, kui hind langeb.</translation>
 <translation id="980712131080209571">Uus</translation>
 <translation id="981498610235328462">Teie organisatsioon lubab sisse logida vaid teatud kontodega. Kontod, mis pole lubatud, on peidetud.</translation>
 <translation id="984509647832111802">Sünkroonimine ei tööta.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index 9107b26..0db9d4b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">علایق</translation>
 <translation id="5118764316110575523">خاموش</translation>
 <translation id="5119391094379141756">‏Chrome را انتخاب کنید</translation>
+<translation id="5121618895923301719">ازقبل این محصول را پیگیری می‌کنید. این صفحه در <ph name="BEGIN_LINK" />نشانک‌های دستگاه همراه<ph name="END_LINK" /> ذخیره شده است.</translation>
 <translation id="5132942445612118989">همگام‌سازی گذرواژه‌ها، سابقه و موارد دیگر در همه دستگاه‌ها</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} گذرواژه ضعیف}one{{COUNT} گذرواژه ضعیف}other{{COUNT} گذرواژه ضعیف}}</translation>
 <translation id="5149188072385105201">افزودن گذرواژه…</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">سایت‌هایی را که دنبال کرده‌اید اینجا خواهید دید</translation>
 <translation id="5388358297987318779">بازکردن تصویر</translation>
 <translation id="5407969256130905701">صرف‌نظر کردن از تغییرات</translation>
+<translation id="5414763847370083940">اگر قیمت در سایتی کاهش پیدا کند، هشداری دریافت می‌کنید.</translation>
 <translation id="5416022985862681400">۷ روز گذشته</translation>
 <translation id="5423269318075950257">پیگیری قیمت</translation>
 <translation id="543338862236136125">ویرایش گذرواژه</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">لغو</translation>
 <translation id="953008885340860025">‏Chrome از سیستم خارج شده است</translation>
 <translation id="959066944189734975"><ph name="CHANNEL_NAME" /> را دنبال می‌کنید</translation>
+<translation id="973493300226275298">قیمت محصول موردنظرتان را در فروشگاه‌های آنلاین ردیابی کنید. وقتی قیمت کاهش پیدا کند، هشداری دریافت می‌کنید.</translation>
 <translation id="980712131080209571">ج</translation>
 <translation id="981498610235328462">سازمانتان فقط ورود به سیستم با حساب‌های خاصی را مجاز کرده است. حساب‌هایی که مجاز نیستند پنهان می‌شوند.</translation>
 <translation id="984509647832111802">همگام‌سازی کار نمی‌کند.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index d4b8e82b..259490a8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Pin Tab</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> (na) item ang inilipat</translation>
 <translation id="2122754583996902531">Pinapamahalaan ang iyong browser. <ph name="BEGIN_LINK" />Matuto Pa<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">I-on ang Mga Alerto sa Presyo?</translation>
 <translation id="2139867232736819575">Maghanap para sa Text na Kinopya Mo</translation>
 <translation id="214201757571129614">Mag-sign In…</translation>
 <translation id="2149973817440762519">I-edit ang Bookmark</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Ipakita ang History</translation>
 <translation id="2800683595868705743">Umalis sa Tagalipat ng Tab</translation>
 <translation id="2815198996063984598">2. I-tap ang Default na Browser App</translation>
+<translation id="2822917246944009066">Na-pin ang Tab</translation>
 <translation id="2830972654601096923">Pamahalaan ang Mga Address...</translation>
 <translation id="2834399722155632105">3. I-tap ang Mga Opsyon sa Password</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -561,6 +563,7 @@
 <translation id="5118713593561876160">Mga Interes</translation>
 <translation id="5118764316110575523">Naka-off</translation>
 <translation id="5119391094379141756">Piliin ang Chrome</translation>
+<translation id="5121618895923301719">Sinusubaybayan mo na ang produktong ito. Naka-save ang page na ito sa <ph name="BEGIN_LINK" />Mga Bookmark sa Mobile<ph name="END_LINK" /></translation>
 <translation id="5132942445612118989">I-sync ang iyong mga password, history, at higit pa sa lahat ng device</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} Mahinang Password}one{{COUNT} Mahinang Password}other{{COUNT} na Mahinang Password}}</translation>
 <translation id="5149188072385105201">Magdagdag ng Password...</translation>
@@ -591,6 +594,7 @@
 <translation id="5386314158584363703">Makikita mo ang mga sinusubaybayan mong site dito</translation>
 <translation id="5388358297987318779">Buksan ang Larawan</translation>
 <translation id="5407969256130905701">I-discard ang Mga Pagbabago</translation>
+<translation id="5414763847370083940">Makakatanggap ka ng alerto kung bumaba ang presyo sa anumang site.</translation>
 <translation id="5416022985862681400">Huling 7 Araw</translation>
 <translation id="5423269318075950257">Subaybayan ang Presyo</translation>
 <translation id="543338862236136125">I-edit ang password</translation>
@@ -891,6 +895,7 @@
 <translation id="7431991332293347422">Kontrolin kung paano ginagamit ang iyong history ng pag-browse para i-personalize ang Paghahanap at higit pa</translation>
 <translation id="7435356471928173109">Na-off ng iyong administrator</translation>
 <translation id="7438481509621345350">Makakakita ka na ngayon ng mga kuwento mula sa <ph name="CHANNEL_NAME" /> kapag nagbukas ka ng bagong tab.</translation>
+<translation id="7446583256109515732">Na-unpin ang Tab</translation>
 <translation id="7454057999980797137">Estado / County</translation>
 <translation id="7459628154744868585">Naka-on ang Pinaigting na Proteksyon</translation>
 <translation id="746684838091935575">3. Piliin ang Chrome</translation>
@@ -1121,6 +1126,7 @@
 <translation id="9137526406337347448">Mga Serbisyo ng Google</translation>
 <translation id="9148126808321036104">Muling mag-sign in</translation>
 <translation id="9157836665414082580">Pigilan ang Mga Dialog</translation>
+<translation id="9165320910061267720">Para makatanggap ng mga notification tungkol sa mga alerto sa pagbaba ng presyo, kakailanganin mong i-on ang mga notification sa mga setting ng iyong iOS.</translation>
 <translation id="9177438225260810839">Maghanap sa Mga Bukas na Tab</translation>
 <translation id="9188680907066685419">Mag-sign out sa pinamamahalaang account</translation>
 <translation id="9193147658040604536">I-drag dito para I-pin ang Tab</translation>
@@ -1133,6 +1139,7 @@
 <translation id="952704832371081537">Kanselahin</translation>
 <translation id="953008885340860025">Naka-sign Out ang Chrome</translation>
 <translation id="959066944189734975">Sinusubaybayan mo ang <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Subaybayan ang presyo ng produkto sa mga online store. Makakatanggap ka ng mga alerto kapag bumaba ang presyo.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Pinapayagan ka lang ng iyong organisasyon na mag-sign in gamit ang ilang partikular na account. Nakatago ang mga account na hindi pinapayagan.</translation>
 <translation id="984509647832111802">Hindi Gumagana ang Pag-sync.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
index ad15c714..0a18a442 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -314,6 +314,7 @@
 <translation id="3227137524299004712">Microphone</translation>
 <translation id="3240426699337459095">Lien copié</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">Votre modification n'a pas pu être enregistrée.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /> de <ph name="NUM_SUGGESTIONS" /></translation>
 <translation id="3268451620468152448">Onglets ouverts</translation>
 <translation id="3272527697863656322">Annuler</translation>
@@ -336,6 +337,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="3448016392200048164">Vue partagée</translation>
 <translation id="345565170154308620">Gérer les mots de passe…</translation>
+<translation id="3464194322481586217">Impossible d'effectuer le suivi du prix.</translation>
 <translation id="3469166899695866866">Arrêter le téléchargement?</translation>
 <translation id="3470502288861289375">Copie en cours…</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{pour {COUNT} site ou application}one{pour {COUNT} sites ou applications}other{pour {COUNT} sites et applications}}</translation>
@@ -561,6 +563,7 @@
 <translation id="5118713593561876160">Centres d'intérêt</translation>
 <translation id="5118764316110575523">Désactivé</translation>
 <translation id="5119391094379141756">Sélectionnez Chrome</translation>
+<translation id="5121618895923301719">Vous suivez déjà ce produit. Cette page est enregistrée dans les <ph name="BEGIN_LINK" />Favoris de l'appareil mobile<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Synchronisez vos mots de passe, votre historique et plus encore sur tous vos appareils</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} mot de passe faible}one{{COUNT} mots de passe faibles}other{{COUNT} mots de passe faibles}}</translation>
 <translation id="5149188072385105201">Ajouter un mot de passe…</translation>
@@ -591,6 +594,7 @@
 <translation id="5386314158584363703">Vous trouverez les sites que vous suivez ici</translation>
 <translation id="5388358297987318779">Ouvrir l'image</translation>
 <translation id="5407969256130905701">Supprimer les modifications</translation>
+<translation id="5414763847370083940">Vous recevrez une alerte si le prix baisse sur n'importe quel site.</translation>
 <translation id="5416022985862681400">Sept derniers jours</translation>
 <translation id="5423269318075950257">Suivre le prix</translation>
 <translation id="543338862236136125">Modifier le mot de passe</translation>
@@ -761,6 +765,7 @@
 <translation id="6464397691496239022">Les sites peuvent utiliser des témoins afin d'améliorer votre expérience de navigation, par exemple en vous permettant de rester connecté ou en mémorisant des articles de votre panier d'achats.
 
 Les sites ne peuvent pas utiliser de témoins pour voir votre activité de navigation sur différents sites (par exemple, pour personnaliser les annonces).</translation>
+<translation id="6476253015009698798">Le suivi des prix n'est pas offert sur cette page.</translation>
 <translation id="6476800141292307438">Traduction de la page en <ph name="LANGUAGE" /> en cours… Les options sont affichées dans le bas de l'écran.</translation>
 <translation id="648164694371393720">Erreur d'authentification</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> éléments supprimés</translation>
@@ -812,6 +817,7 @@
 <translation id="6780034285637185932">Code postal</translation>
 <translation id="6781260999953472352">Activer la synchronisation?</translation>
 <translation id="6785453220513215166">Envoi du rapport de plantage en cours...</translation>
+<translation id="6790502149545262384">Vous verrez bientôt des histoires de <ph name="CHANNEL_NAME" /> lorsque vous ouvrirez un nouvel onglet.</translation>
 <translation id="6797885426782475225">Recherche vocale</translation>
 <translation id="6801927553864092214">Pour naviguer de manière incognito, ouvrez un onglet de navigation privée</translation>
 <translation id="6807889908376551050">Tout afficher…</translation>
@@ -1121,6 +1127,7 @@
 <translation id="9137526406337347448">Services Google</translation>
 <translation id="9148126808321036104">Connectez-vous de nouveau</translation>
 <translation id="9157836665414082580">Supprimer les boîtes de dialogue</translation>
+<translation id="9162432979321511934">Activer l'option de remplissage automatique des mots de passe</translation>
 <translation id="9177438225260810839">Rechercher dans les onglets ouverts</translation>
 <translation id="9188680907066685419">Se déconnecter du compte géré</translation>
 <translation id="9193147658040604536">Faites glisser ici pour épingler l'onglet</translation>
@@ -1133,6 +1140,7 @@
 <translation id="952704832371081537">Annuler</translation>
 <translation id="953008885340860025">Chrome est déconnecté</translation>
 <translation id="959066944189734975">Vous suivez <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Suivez le prix d'un produit dans les magasins en ligne. Vous recevrez des alertes lorsque le prix baisse.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Votre organisation vous autorise à vous connecter à certains comptes seulement. Les comptes qui ne sont pas autorisés seront masqués.</translation>
 <translation id="984509647832111802">La synchronisation ne fonctionne pas.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index 8d6c6a1..08d2dfb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Intereses</translation>
 <translation id="5118764316110575523">Non</translation>
 <translation id="5119391094379141756">Selecciona Chrome</translation>
+<translation id="5121618895923301719">Xa estás facendo un seguimento deste produto. A páxina está gardada en <ph name="BEGIN_LINK" />Marcadores do móbil<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Sincroniza os teus contrasinais, o historial e moito máis en todos os dispositivos</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} contrasinal pouco seguro}other{{COUNT} contrasinais pouco seguros}}</translation>
 <translation id="5149188072385105201">Engadir contrasinal…</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Os sitios que sigas mostraranse aquí</translation>
 <translation id="5388358297987318779">Abrir imaxe</translation>
 <translation id="5407969256130905701">Descartar cambios</translation>
+<translation id="5414763847370083940">Recibirás unha alerta se baixa o prezo en calquera sitio.</translation>
 <translation id="5416022985862681400">Últimos 7 días</translation>
 <translation id="5423269318075950257">Facer seguimento do prezo</translation>
 <translation id="543338862236136125">Editar contrasinal</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Cancelar</translation>
 <translation id="953008885340860025">Pechouse sesión en Chrome</translation>
 <translation id="959066944189734975">Segues a <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Fai un seguimento do prezo dun produto nas tendas en liña. Recibirás alertas se baixa o prezo.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">A túa organización só che permite iniciar sesión con certas contas. As contas que non están permitidas atópanse ocultas.</translation>
 <translation id="984509647832111802">A sincronización non funciona.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index fd9be19..493b382a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">टैब छोटा करें</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> आइटम ले जाए गए</translation>
 <translation id="2122754583996902531">आपका ब्राउज़र मैनेज किया गया है. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">कीमत में बदलाव के अलर्ट पाने की सुविधा चालू करनी है?</translation>
 <translation id="2139867232736819575">आपका कॉपी किया गया टेक्स्ट</translation>
 <translation id="214201757571129614">साइन इन करें…</translation>
 <translation id="2149973817440762519">बुकमार्क में बदलाव करें</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">इतिहास दिखाएं</translation>
 <translation id="2800683595868705743">टैब स्विचर को छोड़ें</translation>
 <translation id="2815198996063984598">2. Default Browser App पर टैप करें</translation>
+<translation id="2822917246944009066">टैब को पिन किया गया</translation>
 <translation id="2830972654601096923">पते प्रबंधित करें...</translation>
 <translation id="2834399722155632105">3. Password Options पर टैप करें</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -314,6 +316,7 @@
 <translation id="3227137524299004712">माइक्रोफ़ोन</translation>
 <translation id="3240426699337459095">लिंक कॉपी की गई</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">आपके बदलाव को सेव नहीं किया जा सका.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="NUM_SUGGESTIONS" /> में से <ph name="INDEX" /></translation>
 <translation id="3268451620468152448">खुले सत्र</translation>
 <translation id="3272527697863656322">अभी नहीं</translation>
@@ -336,6 +339,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> मिनट</translation>
 <translation id="3448016392200048164">स्प्लिट व्यू</translation>
 <translation id="345565170154308620">पासवर्ड प्रबंधित करें...</translation>
+<translation id="3464194322481586217">कीमत ट्रैक नहीं की जा सकी.</translation>
 <translation id="3469166899695866866">डाउनलोड रोकें?</translation>
 <translation id="3470502288861289375">कॉपी किया जा रहा है...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{{COUNT} साइट या ऐप्लिकेशन के लिए}one{{COUNT} साइट और ऐप्लिकेशन के लिए}other{{COUNT} साइटों और ऐप्लिकेशन के लिए}}</translation>
@@ -561,6 +565,7 @@
 <translation id="5118713593561876160">रुचि</translation>
 <translation id="5118764316110575523">बंद है</translation>
 <translation id="5119391094379141756">Chrome चुनें</translation>
+<translation id="5121618895923301719">इस प्रॉडक्ट को पहले से ही ट्रैक किया जा रहा है. यह पेज <ph name="BEGIN_LINK" />मोबाइल बुकमार्क<ph name="END_LINK" /> में सेव किया गया है.</translation>
 <translation id="5132942445612118989">सभी डिवाइस पर अपने पासवर्ड, इतिहास और दूसरी कई चीज़ें सिंक करें</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} कमज़ोर पासवर्ड मिला}one{{COUNT} कमज़ोर पासवर्ड मिला}other{{COUNT} कमज़ोर पासवर्ड मिले}}</translation>
 <translation id="5149188072385105201">पासवर्ड जोड़ें...</translation>
@@ -591,6 +596,7 @@
 <translation id="5386314158584363703">फ़ॉलो की जा रही साइटें आपको यहां मिलेंगी</translation>
 <translation id="5388358297987318779">इमेज खोलें</translation>
 <translation id="5407969256130905701">बदलाव छोड़ें</translation>
+<translation id="5414763847370083940">किसी भी साइट पर, प्रॉडक्ट की कीमत कम होने पर आपको सूचना मिलेगी.</translation>
 <translation id="5416022985862681400">पिछले 7 दिन</translation>
 <translation id="5423269318075950257">कीमत ट्रैक करें</translation>
 <translation id="543338862236136125">पासवर्ड में बदलाव करें</translation>
@@ -761,6 +767,7 @@
 <translation id="6464397691496239022">साइटें आपके ब्राउज़ करने के अनुभव को बेहतर बनाने के लिए कुकी का इस्तेमाल कर सकती हैं. जैसे कि आपको साइन इन बनाए रखने के लिए या आपने शॉपिंग कार्ट में जो आइटम सेव किए हैं उन्हें याद रखने के लिए.
 
 साइटें, अलग-अलग साइटों पर की गई आपकी ब्राउज़िंग गतिविधि देखने के लिए, कुकी इस्तेमाल नहीं कर सकतीं. जैसे कि दर्शकों की पसंद को ध्यान में रखकर विज्ञापन दिखाने के लिए.</translation>
+<translation id="6476253015009698798">इस पेज के लिए, कीमतें ट्रैक करने की सुविधा उपलब्ध नहीं है.</translation>
 <translation id="6476800141292307438">पेज <ph name="LANGUAGE" /> में अनुवाद किया जा रहा है. विकल्प, स्क्रीन के निचले हिस्से में मौजूद हैं.</translation>
 <translation id="648164694371393720">पुष्टि करने में गड़बड़ी</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> आइटम हटाए गए</translation>
@@ -812,6 +819,7 @@
 <translation id="6780034285637185932">ज़िप कोड</translation>
 <translation id="6781260999953472352">सिंक करने की सुविधा चालू करनी है?</translation>
 <translation id="6785453220513215166">खराबी रिपोर्ट भेजी जा रही है...</translation>
+<translation id="6790502149545262384">जल्द ही, कोई भी नया टैब खोलते ही आपको <ph name="CHANNEL_NAME" /> से जुड़ी जानकारी दिखेगी.</translation>
 <translation id="6797885426782475225">बोलकर खोजें</translation>
 <translation id="6801927553864092214">निजी रूप से ब्राउज़ करने के लिए, गुप्त टैब खोलें</translation>
 <translation id="6807889908376551050">सभी दिखाएं...</translation>
@@ -891,6 +899,7 @@
 <translation id="7431991332293347422">यह नियंत्रित करें कि खोज वगैरह को मनमुताबिक बनाने के लिए आपके ब्राउज़िंग इतिहास का इस्तेमाल कैसे किया जाए</translation>
 <translation id="7435356471928173109">आपके एडमिन ने ये सुविधा बंद की हुई है</translation>
 <translation id="7438481509621345350">नया टैब खोलने पर, अब आपको <ph name="CHANNEL_NAME" /> की स्टोरीज़ दिखेंगी.</translation>
+<translation id="7446583256109515732">टैब को अनपिन किया गया</translation>
 <translation id="7454057999980797137">राज्य / देश</translation>
 <translation id="7459628154744868585">बेहतर सुरक्षा की सुविधा चालू है</translation>
 <translation id="746684838091935575">3. Chrome चुनें</translation>
@@ -1121,6 +1130,8 @@
 <translation id="9137526406337347448">Google Services</translation>
 <translation id="9148126808321036104">फिर से साइन इन करें</translation>
 <translation id="9157836665414082580">संवाद छिपाएं</translation>
+<translation id="9162432979321511934">ऑटोमैटिक पासवर्ड भरने की सुविधा को चालू करें</translation>
+<translation id="9165320910061267720">कीमत में कमी की सूचनाएं पाने के लिए, आपको iOS सेटिंग में जाकर सूचनाएं पाने की सुविधा चालू करनी होगी.</translation>
 <translation id="9177438225260810839">खोले गए टैब में खोजें</translation>
 <translation id="9188680907066685419">प्रबंधित खाते से प्रस्थान करें</translation>
 <translation id="9193147658040604536">पिन करके छोटे किए गए टैब पर छोड़ें</translation>
@@ -1133,6 +1144,7 @@
 <translation id="952704832371081537">रद्द करें</translation>
 <translation id="953008885340860025">आपका खाता Chrome से साइन आउट हो गया है</translation>
 <translation id="959066944189734975">आपने <ph name="CHANNEL_NAME" /> को फ़ॉलो किया हुआ है</translation>
+<translation id="973493300226275298">सभी ऑनलाइन स्टोर पर, किसी प्रॉडक्ट की कीमत को ट्रैक करें. कीमत में कमी होने पर, आपको सूचना मिलेगी.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">आपका संगठन, आपको सिर्फ़ कुछ खास खातों से साइन इन करने की अनुमति देता है. जिन खातों से साइन करने की अनुमति नहीं है वे छिपा दिए जाते हैं.</translation>
 <translation id="984509647832111802">सिंक करने की सुविधा काम नहीं कर रही.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index 50016a0..3e3b4bd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -314,6 +314,7 @@
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3240426699337459095">Veza je kopirana</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">Izmjena nije spremljena.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /> od <ph name="NUM_SUGGESTIONS" /></translation>
 <translation id="3268451620468152448">Otvorene kartice</translation>
 <translation id="3272527697863656322">Odustani</translation>
@@ -336,6 +337,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="3448016392200048164">Podijeljeni prikaz</translation>
 <translation id="345565170154308620">Upravljajte zaporkama...</translation>
+<translation id="3464194322481586217">Praćenje cijene nije uspjelo.</translation>
 <translation id="3469166899695866866">Zaustaviti preuzimanje?</translation>
 <translation id="3470502288861289375">Kopiranje...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{za {COUNT} web-lokaciju ili aplikaciju}one{za {COUNT} web-lokaciju ili aplikaciju}few{za {COUNT} web-lokacije ili aplikacije}other{za {COUNT} web-lokacija ili aplikacija}}</translation>
@@ -561,6 +563,7 @@
 <translation id="5118713593561876160">Interesi</translation>
 <translation id="5118764316110575523">Isključeno</translation>
 <translation id="5119391094379141756">Odaberite Chrome</translation>
+<translation id="5121618895923301719">Već pratite ovaj proizvod. Ova je stranica spremljena u <ph name="BEGIN_LINK" />Mobilne oznake<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Sinkronizirajte svoje zaporke, povijest i drugo na svim uređajima</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} slaba zaporka}one{{COUNT} slaba zaporka}few{{COUNT} slabe zaporke}other{{COUNT} slabih zaporki}}</translation>
 <translation id="5149188072385105201">Dodaj zaporku...</translation>
@@ -591,6 +594,7 @@
 <translation id="5386314158584363703">Ovdje ćete pronaći praćene web-lokacije</translation>
 <translation id="5388358297987318779">Otvori sliku</translation>
 <translation id="5407969256130905701">Odbaci promjene</translation>
+<translation id="5414763847370083940">Dobit ćete upozorenje ako se cijena snizi na bilo kojoj web-lokaciji.</translation>
 <translation id="5416022985862681400">Posljednjih sedam dana</translation>
 <translation id="5423269318075950257">Praćenje cijene</translation>
 <translation id="543338862236136125">Uredite zaporku</translation>
@@ -761,6 +765,7 @@
 <translation id="6464397691496239022">Web-lokacije mogu upotrebljavati kolačiće za poboljšanje vašeg doživljaja pregledavanja, primjerice da biste ostali prijavljeni ili da bi stavke u vašoj košarici ostale zapamćene.
 
 Web-lokacije ne mogu upotrebljavati kolačiće za uvid u vašu aktivnost pregledavanja, primjerice radi prilagođavanja oglasa.</translation>
+<translation id="6476253015009698798">Praćenje cijena nije dostupno za ovu web-stranicu.</translation>
 <translation id="6476800141292307438">Stranica se prevodi na <ph name="LANGUAGE" />. Opcije su dostupne pri dnu zaslona.</translation>
 <translation id="648164694371393720">Pogreška autentifikacije</translation>
 <translation id="6482629121755362506">Broj izbrisanih stavki: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
@@ -812,6 +817,7 @@
 <translation id="6780034285637185932">Poštanski broj</translation>
 <translation id="6781260999953472352">Uključiti sinkronizaciju?</translation>
 <translation id="6785453220513215166">Slanje izvješća o rušenju programa...</translation>
+<translation id="6790502149545262384">Prilikom otvaranja nove kartice uskoro će se prikazivati članci s web-lokacije <ph name="CHANNEL_NAME" />.</translation>
 <translation id="6797885426782475225">Glasovno pretraživanje</translation>
 <translation id="6801927553864092214">Da biste pregledavali privatno, otvorite anonimnu karticu</translation>
 <translation id="6807889908376551050">Prikaži sve...</translation>
@@ -1121,6 +1127,7 @@
 <translation id="9137526406337347448">Googleove usluge</translation>
 <translation id="9148126808321036104">Prijavite se ponovno</translation>
 <translation id="9157836665414082580">Izostavi dijaloge</translation>
+<translation id="9162432979321511934">Uključite automatsko popunjavanje zaporki</translation>
 <translation id="9177438225260810839">Pretraživanje otvorenih kartica</translation>
 <translation id="9188680907066685419">Odjava s upravljanog računa</translation>
 <translation id="9193147658040604536">Povucite ovdje da biste prikvačili karticu</translation>
@@ -1133,6 +1140,7 @@
 <translation id="952704832371081537">Odustani</translation>
 <translation id="953008885340860025">Chrome je odjavljen</translation>
 <translation id="959066944189734975">Pratite kanal <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Pratite cijenu proizvoda u online trgovinama. Primit ćete upozorenja kad cijena padne.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Vaša organizacija dopušta da se prijavite samo putem određenih računa. Nedopušteni su računi skriveni.</translation>
 <translation id="984509647832111802">Sinkronizacija ne funkcionira.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index 2942d6f..46b69e0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Lap rögzítése</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> elem áthelyezve</translation>
 <translation id="2122754583996902531">A böngésző felügyelet alatt áll. <ph name="BEGIN_LINK" />További információ<ph name="END_LINK" />.</translation>
+<translation id="2139502497535990641">Bekapcsolja az árértesítéseket?</translation>
 <translation id="2139867232736819575">Vágólapra másolt szöveg keresése</translation>
 <translation id="214201757571129614">Bejelentkezés…</translation>
 <translation id="2149973817440762519">Könyvjelző szerkesztése</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Előzmények megjelenítése</translation>
 <translation id="2800683595868705743">Kilépés a lapváltóból</translation>
 <translation id="2815198996063984598">2. Koppintson az Alapértelmezett böngésző lehetőségre.</translation>
+<translation id="2822917246944009066">Lap rögzítve</translation>
 <translation id="2830972654601096923">Címek kezelése…</translation>
 <translation id="2834399722155632105">3. Koppintson a Jelszóbeállítások lehetőségre.</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -314,6 +316,7 @@
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3240426699337459095">Link másolva</translation>
 <translation id="3244271242291266297">HH</translation>
+<translation id="3245744387817103524">Nem sikerült menteni a módosítást.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="NUM_SUGGESTIONS" />/<ph name="INDEX" />. javaslat</translation>
 <translation id="3268451620468152448">Megnyitott lapok</translation>
 <translation id="3272527697863656322">Mégse</translation>
@@ -336,6 +339,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> perc</translation>
 <translation id="3448016392200048164">Osztott nézet</translation>
 <translation id="345565170154308620">Jelszavak kezelése…</translation>
+<translation id="3464194322481586217">Nem sikerült az ár nyomon követésének beállítása.</translation>
 <translation id="3469166899695866866">Leállítja a letöltést?</translation>
 <translation id="3470502288861289375">Másolás...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{{COUNT} webhelynél vagy alkalmazásnál}other{{COUNT} webhelynél vagy alkalmazásnál}}</translation>
@@ -561,6 +565,7 @@
 <translation id="5118713593561876160">Érdeklődési körök</translation>
 <translation id="5118764316110575523">Ki</translation>
 <translation id="5119391094379141756">Válassza ki a Chrome böngészőt.</translation>
+<translation id="5121618895923301719">Ön már nyomon követi ezt a terméket. A rendszer a <ph name="BEGIN_LINK" />Mobilos könyvjelzők<ph name="END_LINK" /> közé mentette az oldalt.</translation>
 <translation id="5132942445612118989">Jelszavak, előzmények és egyebek szinkronizálása valamennyi eszközén</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} gyenge jelszó}other{{COUNT} gyenge jelszó}}</translation>
 <translation id="5149188072385105201">Jelszó hozzáadása…</translation>
@@ -591,6 +596,7 @@
 <translation id="5386314158584363703">Itt találja a követett webhelyeit</translation>
 <translation id="5388358297987318779">Kép megnyitása</translation>
 <translation id="5407969256130905701">Módosítások elvetése</translation>
+<translation id="5414763847370083940">Ha bármelyik webhelyen csökken az ár, Ön értesítést kap róla.</translation>
 <translation id="5416022985862681400">Legutóbbi 7 nap</translation>
 <translation id="5423269318075950257">Ár nyomon követése</translation>
 <translation id="543338862236136125">Jelszó módosítása</translation>
@@ -761,6 +767,7 @@
 <translation id="6464397691496239022">A webhelyek használhatnak cookie-kat a böngészés megkönnyítésére; például arra, hogy bejelentkezve tartsák Önt, vagy megjegyezzék a kosarában lévő termékeket.
 
 A webhelyek nem használhatnak cookie-kat arra, hogy megfigyeljék más webhelyekre is vonatkozó böngészési tevékenységeit; így például a hirdetések személyre szabásához sem.</translation>
+<translation id="6476253015009698798">Az árkövetés nem áll rendelkezésre ennél az oldalnál.</translation>
 <translation id="6476800141292307438">Az oldal lefordítása <ph name="LANGUAGE" /> nyelvre. A képernyő alján láthatók a rendelkezésre álló lehetőségek.</translation>
 <translation id="648164694371393720">Hitelesítési hiba</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> elem törölve</translation>
@@ -812,6 +819,7 @@
 <translation id="6780034285637185932">Irányítószám</translation>
 <translation id="6781260999953472352">Bekapcsolja a szinkronizálást?</translation>
 <translation id="6785453220513215166">Hibajelentés küldése…</translation>
+<translation id="6790502149545262384">Új lap megnyitásakor hamarosan látni fogja a(z) <ph name="CHANNEL_NAME" /> webhely történeteit.</translation>
 <translation id="6797885426782475225">Hangalapú keresés</translation>
 <translation id="6801927553864092214">Privát böngészéshez nyisson inkognitó lapot</translation>
 <translation id="6807889908376551050">Összes megjelenítése...</translation>
@@ -891,6 +899,7 @@
 <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="7438481509621345350">Új lap megnyitásakor látni fogja a(z) <ph name="CHANNEL_NAME" /> webhely történeteit.</translation>
+<translation id="7446583256109515732">Lap rögzítése feloldva</translation>
 <translation id="7454057999980797137">Állam/megye</translation>
 <translation id="7459628154744868585">A Speciális védelem be van kapcsolva</translation>
 <translation id="746684838091935575">3. Válassza ki a Chrome böngészőt.</translation>
@@ -1121,6 +1130,8 @@
 <translation id="9137526406337347448">Google Services</translation>
 <translation id="9148126808321036104">Jelentkezzen be újra</translation>
 <translation id="9157836665414082580">Párbeszédablakok elrejtése</translation>
+<translation id="9162432979321511934">Kapcsolja be a Jelszavak automatikus kitöltése beállítást</translation>
+<translation id="9165320910061267720">Ha értesítéseket szeretne kapni az árcsökkenésekről, be kell kapcsolnia az értesítéseket az iOS beállításaiban.</translation>
 <translation id="9177438225260810839">Keresés a megnyitott lapokon</translation>
 <translation id="9188680907066685419">Kijelentkezés felügyelt fiókból</translation>
 <translation id="9193147658040604536">Húzza ide a lap rögzítéséhez</translation>
@@ -1133,6 +1144,7 @@
 <translation id="952704832371081537">Mégse</translation>
 <translation id="953008885340860025">Kijelentkezett a Chrome-ból</translation>
 <translation id="959066944189734975">Követi a következőt: <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Nyomon követheti a kívánt termékek árát az online áruházakban. Értesítést küldünk, ha csökkennek az árak.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Szervezete csak bizonyos fiókokkal engedélyezi a bejelentkezést. A nem engedélyezett fiókokat elrejti a rendszer.</translation>
 <translation id="984509647832111802">A szinkronizálás nem működik.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index 7e79853..5fec4122 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Interessi</translation>
 <translation id="5118764316110575523">Off</translation>
 <translation id="5119391094379141756">Seleziona Chrome</translation>
+<translation id="5121618895923301719">Stai già monitorando questo prodotto. Questa pagina viene salvata nella sezione <ph name="BEGIN_LINK" />Preferiti su disp. mobili<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Sincronizza le tue password, la tua cronologia e altro su tutti i tuoi dispositivi</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} password inefficace}other{{COUNT} password inefficaci}}</translation>
 <translation id="5149188072385105201">Aggiungi password…</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Qui troverai i siti che segui</translation>
 <translation id="5388358297987318779">Apri immagine</translation>
 <translation id="5407969256130905701">Annulla modifiche</translation>
+<translation id="5414763847370083940">Riceverai un avviso se il prezzo calerà su qualsiasi sito.</translation>
 <translation id="5416022985862681400">Ultimi 7 giorni</translation>
 <translation id="5423269318075950257">Monitora prezzo</translation>
 <translation id="543338862236136125">Modifica password</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Annulla</translation>
 <translation id="953008885340860025">Chrome è disconnesso</translation>
 <translation id="959066944189734975">Stai seguendo <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Monitora il prezzo di un prodotto nei negozi online. Riceverai avvisi quando il prezzo cala.</translation>
 <translation id="980712131080209571">Novità</translation>
 <translation id="981498610235328462">La tua organizzazione ti consente di accedere solo con determinati account. Gli account non consentiti vengono nascosti.</translation>
 <translation id="984509647832111802">La sincronizzazione non funziona.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index b129db7..c5308dda 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">ដៅផ្ទាំង</translation>
 <translation id="2116625576999540962">ធាតុ <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> ត្រូវបានផ្លាស់ទី។</translation>
 <translation id="2122754583996902531">កម្មវិធីរុករកតាមអ៊ីនធឺណិត​របស់អ្នកស្ថិតក្រោមការគ្រប់គ្រង។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">បើកការជូន​ដំណឹងអំពី​តម្លៃឬ?</translation>
 <translation id="2139867232736819575">ស្វែងរក​អត្ថបទ​ដែលអ្នក​បានចម្លង</translation>
 <translation id="214201757571129614">ចូលគណនី…</translation>
 <translation id="2149973817440762519">កែប្រែចំណាំ</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">បង្ហាញ​ប្រវត្តិ</translation>
 <translation id="2800683595868705743">ចេញពីទិដ្ឋភាពប្តូរផ្ទាំង</translation>
 <translation id="2815198996063984598">2. ចុច​កម្មវិធីរុករកតាមអ៊ីនធឺណិត​លំនាំដើម</translation>
+<translation id="2822917246944009066">បានខ្ទាស់ផ្ទាំង</translation>
 <translation id="2830972654601096923">គ្រប់គ្រង​អាសយដ្ឋាន...</translation>
 <translation id="2834399722155632105">3. ចុច "ជម្រើស​ពាក្យសម្ងាត់"</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -893,6 +895,7 @@
 <translation id="7431991332293347422">គ្រប់គ្រង​របៀបដែល​ប្រវត្តិរុករក​របស់អ្នក​ត្រូវបាន​ប្រើប្រាស់ ដើម្បីកំណត់ឱ្យ​ការស្វែងរក​ និងអ្វី​ៗ​ជាច្រើន​ទៀតស្របនឹង​អ្នក</translation>
 <translation id="7435356471928173109">បានបិទដោយ​អ្នកគ្រប់គ្រងរបស់អ្នក</translation>
 <translation id="7438481509621345350">ឥឡូវនេះ អ្នកនឹងមើលឃើញអត្ថបទពី <ph name="CHANNEL_NAME" /> នៅពេលអ្នកបើកផ្ទាំងថ្មី។</translation>
+<translation id="7446583256109515732">បានដកខ្ទាស់ផ្ទាំង</translation>
 <translation id="7454057999980797137">រដ្ឋ / ប្រទេស</translation>
 <translation id="7459628154744868585">ការការពារបន្ថែម​ត្រូវបានបើក</translation>
 <translation id="746684838091935575">3. ជ្រើសរើស Chrome</translation>
@@ -1123,6 +1126,7 @@
 <translation id="9137526406337347448">សេវាកម្ម Google</translation>
 <translation id="9148126808321036104">ចូលម្តងទៀត</translation>
 <translation id="9157836665414082580">បង្ហាប់ប្រអប់បញ្ចូល</translation>
+<translation id="9165320910061267720">ដើម្បីទទួលបានការជូនដំណឹងអំពីការធ្លាក់តម្លៃ អ្នកនឹងត្រូវបើកការជូនដំណឹងក្នុងការកំណត់ iOS របស់អ្នក។</translation>
 <translation id="9177438225260810839">ស្វែងរកផ្ទាំងបើក</translation>
 <translation id="9188680907066685419">ចេញពីគណនីដែលត្រូវបានគ្រប់គ្រង</translation>
 <translation id="9193147658040604536">អូស​មកទីនេះដើម្បី​ខ្ទាស់ផ្ទាំង</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index 691a5909..834302a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">관심분야</translation>
 <translation id="5118764316110575523">사용 안함</translation>
 <translation id="5119391094379141756">Chrome을 선택합니다.</translation>
+<translation id="5121618895923301719">이미 추적 중인 제품입니다. 이 페이지는 <ph name="BEGIN_LINK" />모바일 북마크<ph name="END_LINK" />에 저장됩니다.</translation>
 <translation id="5132942445612118989">모든 기기의 비밀번호, 방문 기록 등 동기화</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{취약한 비밀번호 {COUNT}개}other{취약한 비밀번호 {COUNT}개}}</translation>
 <translation id="5149188072385105201">비밀번호 추가...</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">여기에 내가 팔로우한 사이트가 표시됩니다</translation>
 <translation id="5388358297987318779">이미지 열기</translation>
 <translation id="5407969256130905701">변경사항 취소</translation>
+<translation id="5414763847370083940">가격이 인하된 사이트가 있으면 알림이 전송됩니다</translation>
 <translation id="5416022985862681400">지난 7일</translation>
 <translation id="5423269318075950257">가격 추적</translation>
 <translation id="543338862236136125">비밀번호 수정</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">취소</translation>
 <translation id="953008885340860025">Chrome에서 로그아웃됨</translation>
 <translation id="959066944189734975"><ph name="CHANNEL_NAME" /> 채널을 팔로우 중입니다</translation>
+<translation id="973493300226275298">온라인 상점에서 제품 가격을 추적해 보세요. 가격이 인하되면 알림이 전송됩니다.</translation>
 <translation id="980712131080209571">새로운 기능</translation>
 <translation id="981498610235328462">조직에서 특정 계정으로만 로그인하도록 허용합니다. 허용되지 않는 계정은 숨겨져 있습니다.</translation>
 <translation id="984509647832111802">동기화가 작동하지 않습니다.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index 154243c..a6941f6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">ຄວາມສົນໃຈ</translation>
 <translation id="5118764316110575523">ປິດ</translation>
 <translation id="5119391094379141756">ເລືອກ Chrome</translation>
+<translation id="5121618895923301719">ທ່ານກຳລັງຕິດຕາມສິນຄ້ານີ້ຢູ່ກ່ອນແລ້ວ. ໜ້ານີ້ຖືກບັນທຶກໃນ <ph name="BEGIN_LINK" />ບຸກມາກໂທລະສັບມືຖື<ph name="END_LINK" /> ແລ້ວ.</translation>
 <translation id="5132942445612118989">ຊິ້ງຂໍ້ມູນລະຫັດຜ່ານ, ປະຫວັດຂອງທ່ານ ແລະ ອື່ນໆອີກຢູ່ໃນທຸກອຸປະກອນ</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} ລະຫັດຜ່ານງ່າຍ}other{{COUNT} ລະຫັດຜ່ານງ່າຍ}}</translation>
 <translation id="5149188072385105201">ເພີ່ມລະຫັດຜ່ານ...</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">ທ່ານຈະພົບເວັບໄຊທີ່ທ່ານຕິດຕາມຢູ່ບ່ອນນີ້</translation>
 <translation id="5388358297987318779">ຮູບເປີດ</translation>
 <translation id="5407969256130905701">ຍົກເລີກການປ່ຽນແປງ</translation>
+<translation id="5414763847370083940">ທ່ານຈະໄດ້ຮັບແຈ້ງເຕືອນຫາກລາຄາຫຼຸດລົງຢູ່ເວັບໄຊໃດກໍຕາມ.</translation>
 <translation id="5416022985862681400">7 ມື້ຫຼ້າສຸດ</translation>
 <translation id="5423269318075950257">ຕິດຕາມລາຄາ</translation>
 <translation id="543338862236136125">ແກ້ໄຂລະຫັດຜ່ານ</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">ຍົກເລີກ</translation>
 <translation id="953008885340860025">ອອກຈາກລະບົບ Chrome ແລ້ວ</translation>
 <translation id="959066944189734975">ທ່ານກຳລັງຕິດຕາມ <ph name="CHANNEL_NAME" /> ຢູ່</translation>
+<translation id="973493300226275298">ຕິດຕາມລາຄາຜະລິດຕະພັນໃນທົ່ວຮ້ານຄ້າອອນລາຍ. ທ່ານຈະໄດ້ຮັບແຈ້ງເຕືອນເມື່ອລາຄາຫຼຸດລົງ.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">ອົງການຂອງທ່ານອະນຸຍາດໃຫ້ທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີບາງຢ່າງເທົ່ານັ້ນ. ບັນຊີທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດແມ່ນຖືກເຊື່ອງໄວ້.</translation>
 <translation id="984509647832111802">ການຊິ້ງຂໍ້ມູນບໍ່ເຮັດວຽກ.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index e41a31b6..04f1e3b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">ടാബ് പിൻ ചെയ്യുക</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> ഇനങ്ങൾ നീക്കി</translation>
 <translation id="2122754583996902531">നിങ്ങളുടെ ബ്രൗസർ മാനേജ് ചെയ്യപ്പെടുന്നു. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">നിരക്കുമാറ്റ അറിയിപ്പുകൾ ഓണാക്കണോ?</translation>
 <translation id="2139867232736819575">നിങ്ങൾ പകർത്തിയ ടെക്‌സ്‌റ്റ് തിരയുക</translation>
 <translation id="214201757571129614">സൈൻ ഇൻ ചെയ്യുക…</translation>
 <translation id="2149973817440762519">ബുക്മാര്‍ക്ക് എഡിറ്റ് ചെയ്യുക</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">ചരിത്രം കാണിക്കുക</translation>
 <translation id="2800683595868705743">ടാബ് സ്വിച്ചർ വിടുക</translation>
 <translation id="2815198996063984598">2. ഡിഫോൾട്ട് ബ്രൗസർ ആപ്പ് ടാപ്പ് ചെയ്യുക</translation>
+<translation id="2822917246944009066">ടാബ് പിൻ ചെയ്‌തു</translation>
 <translation id="2830972654601096923">വിലാസങ്ങൾ മാനേജ് ചെയ്യുക...</translation>
 <translation id="2834399722155632105">3. പാസ്‌വേഡ് ഓപ്ഷനുകൾ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -893,6 +895,7 @@
 <translation id="7431991332293347422">തിരയലും മറ്റും വ്യക്തിപരമാക്കുന്നതിന് നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ഉപയോഗിക്കുന്ന വിധം നിയന്ത്രിക്കുക</translation>
 <translation id="7435356471928173109">നിങ്ങളുടെ അഡ്‌മിൻ ഓഫാക്കിയിരിക്കുന്നു</translation>
 <translation id="7438481509621345350">പുതിയൊരു ടാബ് തുറക്കുമ്പോൾ നിങ്ങൾക്ക് ഇനി <ph name="CHANNEL_NAME" /> എന്നതിൽ നിന്നുള്ള സ്റ്റോറികൾ കാണാം.</translation>
+<translation id="7446583256109515732">ടാബ് അൻപിൻ ചെയ്‌തു</translation>
 <translation id="7454057999980797137">സംസ്ഥാനം / രാജ്യം</translation>
 <translation id="7459628154744868585">മെച്ചപ്പെടുത്തിയ പരിരക്ഷ ഓണാണ്</translation>
 <translation id="746684838091935575">3. Chrome തിരഞ്ഞെടുക്കുക</translation>
@@ -1123,6 +1126,7 @@
 <translation id="9137526406337347448">Google സേവനങ്ങൾ</translation>
 <translation id="9148126808321036104">വീണ്ടും പ്രവേശിക്കുക</translation>
 <translation id="9157836665414082580">ഡയലോഗുകൾ നിയന്ത്രിക്കുക</translation>
+<translation id="9165320910061267720">വിലക്കുറവിനെക്കുറിച്ചുള്ള അറിയിപ്പുകൾ ലഭിക്കാൻ, നിങ്ങളുടെ iOS ക്രമീകരണത്തിൽ അറിയിപ്പുകൾ ഓണാക്കേണ്ടതുണ്ട്.</translation>
 <translation id="9177438225260810839">തുറന്നിരിക്കുന്ന ടാബുകളിൽ തിരയുക</translation>
 <translation id="9188680907066685419">മാനേജ് ചെയ്‌ത അക്കൗണ്ടിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="9193147658040604536">പിൻ ചെയ്‌ത ടാബിലേക്ക് വലിച്ചിടുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index 2f8a0d4..046050aa 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Pin Tab</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> item dialihkan</translation>
 <translation id="2122754583996902531">Penyemak imbas anda diurus. <ph name="BEGIN_LINK" />Ketahui Lebih Lanjut<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Hidupkan Makluman Harga?</translation>
 <translation id="2139867232736819575">Cari Teks yang Anda Salin</translation>
 <translation id="214201757571129614">Log Masuk…</translation>
 <translation id="2149973817440762519">Edit Penanda Halaman</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Tunjukkan Sejarah</translation>
 <translation id="2800683595868705743">Tinggalkan Penukar Tab</translation>
 <translation id="2815198996063984598">2. Ketik Apl Penyemak Imbas Lalai</translation>
+<translation id="2822917246944009066">Tab Disematkan</translation>
 <translation id="2830972654601096923">Urus Alamat...</translation>
 <translation id="2834399722155632105">3. Ketik Pilihan Kata Laluan</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -314,6 +316,7 @@
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3240426699337459095">Pautan disalin</translation>
 <translation id="3244271242291266297">BB</translation>
+<translation id="3245744387817103524">Perubahan anda tidak dapat disimpan.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /> daripada <ph name="NUM_SUGGESTIONS" /></translation>
 <translation id="3268451620468152448">Tab Terbuka</translation>
 <translation id="3272527697863656322">Batal</translation>
@@ -336,6 +339,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="3448016392200048164">Paparan Pisah</translation>
 <translation id="345565170154308620">Urus Kata Laluan...</translation>
+<translation id="3464194322481586217">Tidak dapat menjejaki harga.</translation>
 <translation id="3469166899695866866">Hentikan Muat Turun?</translation>
 <translation id="3470502288861289375">Menyalin...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{untuk {COUNT} laman atau apl}other{untuk {COUNT} laman atau apl}}</translation>
@@ -561,6 +565,7 @@
 <translation id="5118713593561876160">Minat</translation>
 <translation id="5118764316110575523">Mati</translation>
 <translation id="5119391094379141756">Pilih Chrome</translation>
+<translation id="5121618895923301719">Anda telah menjejaki produk ini. Halaman ini disimpan pada <ph name="BEGIN_LINK" />Penanda Halaman Mudah Alih<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Segerakkan kata laluan, sejarah &amp; pelbagai lagi pada semua peranti</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} Kata Laluan Lemah}other{{COUNT} Kata Laluan Lemah}}</translation>
 <translation id="5149188072385105201">Tambah Kata Laluan...</translation>
@@ -591,6 +596,7 @@
 <translation id="5386314158584363703">Anda akan menemukan laman yang anda ikuti di sini</translation>
 <translation id="5388358297987318779">Buka Imej</translation>
 <translation id="5407969256130905701">Buang Perubahan</translation>
+<translation id="5414763847370083940">Anda akan menerima makluman jika harga turun pada mana-mana laman.</translation>
 <translation id="5416022985862681400">7 Hari Lalu</translation>
 <translation id="5423269318075950257">Jejaki Harga</translation>
 <translation id="543338862236136125">Edit kata laluan</translation>
@@ -761,6 +767,7 @@
 <translation id="6464397691496239022">Tapak boleh menggunakan kuki untuk memperbaik pengalaman penyemakan imbas anda, contohnya, untuk mengekalkan log masuk anda atau untuk mengingati item dalam troli beli-belah anda.
 
 Tapak tidak boleh menggunakan kuki untuk melihat aktiviti penyemakan imbas anda pada tapak lain, contohnya, untuk memperibadikan iklan.</translation>
+<translation id="6476253015009698798">Penjejakan harga tidak tersedia untuk halaman ini.</translation>
 <translation id="6476800141292307438">Menterjemah halaman ini kepada <ph name="LANGUAGE" />. Pilihan tersedia berhampiran bahagian bawah skrin.</translation>
 <translation id="648164694371393720">Ralat Pengesahan</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> item dipadamkan</translation>
@@ -812,6 +819,7 @@
 <translation id="6780034285637185932">Poskod</translation>
 <translation id="6781260999953472352">Hidupkan Penyegerakan?</translation>
 <translation id="6785453220513215166">Menghantar laporan ranap sistem…</translation>
+<translation id="6790502149545262384">Tidak lama lagi, anda akan melihat cerita daripada <ph name="CHANNEL_NAME" /> apabila anda membuka tab baharu.</translation>
 <translation id="6797885426782475225">Carian Suara</translation>
 <translation id="6801927553864092214">Untuk menyemak imbas secara tertutup, buka tab Inkognito</translation>
 <translation id="6807889908376551050">Paparkan Semua...</translation>
@@ -891,6 +899,7 @@
 <translation id="7431991332293347422">Kawal cara sejarah penyemakan imbas anda digunakan untuk memperibadikan Carian dan pelbagai lagi</translation>
 <translation id="7435356471928173109">Dimatikan oleh pentadbir anda</translation>
 <translation id="7438481509621345350">Kini anda akan melihat cerita daripada <ph name="CHANNEL_NAME" /> apabila anda membuka tab baharu.</translation>
+<translation id="7446583256109515732">Tab Dinyahsematkan</translation>
 <translation id="7454057999980797137">Negeri / Daerah</translation>
 <translation id="7459628154744868585">Perlindungan Dipertingkat Dihidupkan</translation>
 <translation id="746684838091935575">3. Pilih Chrome</translation>
@@ -1121,6 +1130,8 @@
 <translation id="9137526406337347448">Perkhidmatan Google</translation>
 <translation id="9148126808321036104">Log masuk semula</translation>
 <translation id="9157836665414082580">Sekat Dialog</translation>
+<translation id="9162432979321511934">Hidupkan Autolengkap Kata Laluan</translation>
+<translation id="9165320910061267720">Untuk mendapatkan pemberitahuan tentang makluman penurunan harga, anda perlu menghidupkan pemberitahuan dalam tetapan iOS anda.</translation>
 <translation id="9177438225260810839">Cari Tab Terbuka</translation>
 <translation id="9188680907066685419">Log keluar daripada akaun terurus</translation>
 <translation id="9193147658040604536">Seret ke sini pada Tab Semat</translation>
@@ -1133,6 +1144,7 @@
 <translation id="952704832371081537">Batal</translation>
 <translation id="953008885340860025">Chrome sudah Dilog Keluar</translation>
 <translation id="959066944189734975">Anda mengikuti <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Jejaki harga produk merentas kedai dalam talian. Anda akan menerima makluman jika harga produk tersebut turun.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Organisasi anda membenarkan anda log masuk dengan akaun tertentu sahaja. Akaun yang tidak dibenarkan disembunyikan.</translation>
 <translation id="984509647832111802">Penyegerakan Tidak Berfungsi.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index d1ca358..65e22c64 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">တဘ် ပင်ထိုးရန်</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> အကြောင်းအရာ ရွှေ့ပြောင်းပြီးပါပြီ</translation>
 <translation id="2122754583996902531">သင်၏ဘရောင်ဇာကို စီမံခန့်ခွဲထားသည်။ <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">ဈေးနှုန်းသတိပေးချက်များ ဖွင့်မလား။</translation>
 <translation id="2139867232736819575">သင်မိတ္တူကူးထားသည့် စာသားကို ရှာဖွေပါ</translation>
 <translation id="214201757571129614">လက်မှတ်ထိုးဝင်ရန်…</translation>
 <translation id="2149973817440762519">စာညှပ် တည်းဖြတ်ရန်</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">မှတ်တမ်း ပြပါ</translation>
 <translation id="2800683595868705743">တဘ် ခလုတ်ကို ထားရစ်ခဲ့ရန်</translation>
 <translation id="2815198996063984598">၂။ 'မူရင်း ဘရောင်ဇာအက်ပ်' ကို တို့ပါ</translation>
+<translation id="2822917246944009066">တဘ်ပင်ထိုးထားသည်</translation>
 <translation id="2830972654601096923">လိပ်စာများ စီမံရန်...</translation>
 <translation id="2834399722155632105">၃။ စကားဝှက် ရွေးစရာများကို တို့ပါ</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />၊ <ph name="STATE" />၊ <ph name="URL" /></translation>
@@ -314,6 +316,7 @@
 <translation id="3227137524299004712">မိုက်ခရိုဖုန်း</translation>
 <translation id="3240426699337459095">လင့်ခ်ကူးယူပြီးပါပြီ</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">သင့်အပြောင်းအလဲကို သိမ်း၍မရပါ။</translation>
 <translation id="3252394070589632019"><ph name="NUM_SUGGESTIONS" /> ၏<ph name="VALUE" />၊ <ph name="ADDITIONAL_INFO" />၊ <ph name="INDEX" /></translation>
 <translation id="3268451620468152448">တဲဘ်များ ဖွင့်ရန်</translation>
 <translation id="3272527697863656322">မလုပ်တော့</translation>
@@ -336,6 +339,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> မိနစ်</translation>
 <translation id="3448016392200048164">မျက်နှာပြင်ခွဲပြသည့် မြင်ကွင်း</translation>
 <translation id="345565170154308620">စကားဝှက်များ စီမံရန်…</translation>
+<translation id="3464194322481586217">ဈေးနှုန်းစောင့်ကြည့်၍ မရပါ။</translation>
 <translation id="3469166899695866866">ဒေါင်းလုဒ်ကို ရပ်လိုသလား။</translation>
 <translation id="3470502288861289375">ကူးယူနေ...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{ဝဘ်ဆိုက် (သို့) အက်ပ် {COUNT} ခု အတွက်}other{ဝဘ်ဆိုက်နှင့် အက်ပ် {COUNT} ခု အတွက်}}</translation>
@@ -561,6 +565,7 @@
 <translation id="5118713593561876160">စိတ်ဝင်စားမှုများ</translation>
 <translation id="5118764316110575523">ပိတ်ထားသည်</translation>
 <translation id="5119391094379141756">Chrome ကိုရွေးပါ</translation>
+<translation id="5121618895923301719">ဤထုတ်ကုန်ကို စောင့်ကြည့်ထားပြီးပြီ။ ဤစာမျက်နှာကို <ph name="BEGIN_LINK" />မိုဘိုင်းလိပ်စာများ<ph name="END_LINK" /> တွင် သိမ်းထားသည်။</translation>
 <translation id="5132942445612118989">စက်ပစ္စည်းအားလုံးတွင် သင်၏ စကားဝှက်၊ မှတ်တမ်းနှင့် အခြားအရာများ စင့်ခ်လုပ်ပါ</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{အားနည်းသည့် စကားဝှက် {COUNT} ခု}other{အားနည်းသည့် စကားဝှက် {COUNT} ခု}}</translation>
 <translation id="5149188072385105201">စကားဝှက်ထည့်ရန်...</translation>
@@ -591,6 +596,7 @@
 <translation id="5386314158584363703">သင်လိုက်ကြည့်ထားသည့် ဝဘ်ဆိုက်များကို ဤတွင်ရှာဖွေနိုင်သည်</translation>
 <translation id="5388358297987318779">ရုပ်ပုံဖွင့်မည်</translation>
 <translation id="5407969256130905701">အပြောင်းအလဲများကို ဖယ်ပစ်ရန်</translation>
+<translation id="5414763847370083940">ဝဘ်ဆိုက်တစ်ခုခုတွင် ဈေးကျသွားပါက သတိပေးချက် ရရှိမည်။</translation>
 <translation id="5416022985862681400">ပြီးခဲ့သည့် ၇ ရက်</translation>
 <translation id="5423269318075950257">ဈေးနှုန်း စောင့်ကြည့်ခြင်း</translation>
 <translation id="543338862236136125">စကားဝှက်ကို တည်းဖြတ်ခြင်း</translation>
@@ -760,6 +766,7 @@
 <translation id="6464397691496239022">သင်၏ဝဘ်ကြည့်ရှုမှု ပိုကောင်းမွန်စေရန် ဥပမာအားဖြင့် အမြဲလက်မှတ်ထိုးဝင်ထားရန် သို့မဟုတ် ဈေးခြင်းတောင်းထဲရှိ အရာများ မှတ်ထားရန်တို့အတွက် ဝဘ်ဆိုက်များက ကွတ်ကီးများကို အသုံးပြုနိုင်သည်။
 
 ဝဘ်ဆိုက်များသည် ကြော်ငြာများကို ပုဂ္ဂိုလ်ရေးသီးသန့်ပြုလုပ်ရန်အတွက် မတူညီသည့် ဝဘ်ဆိုက်များတစ်လျှောက်တွင် ကွတ်ကီးများသုံးပြီး သင့်ကြည့်ရှုခြင်းမှတ်တမ်းများကို ဝင်ကြည့်ခြင်းမျိုး မလုပ်နိုင်ပါ။</translation>
+<translation id="6476253015009698798">ဈေးနှုန်းစောင့်ကြည့်ခြင်းကို ဤစာမျက်နှာအတွက် မရနိုင်ပါ။</translation>
 <translation id="6476800141292307438">စာမျက်နှာကို <ph name="LANGUAGE" /> ဘာသာသို့ ပြန်ဆိုနေသည်။ မျက်နှာပြင်အောက်ခြေအနီးတွင် ရွေးစရာများ ရှိသည်။</translation>
 <translation id="648164694371393720">အထောက်အထားစိစစ်မှု အမှား</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> အကြောင်းအရာ ဖျက်ပြီးပါပြီ</translation>
@@ -811,6 +818,7 @@
 <translation id="6780034285637185932">စာတိုက် ကုဒ်</translation>
 <translation id="6781260999953472352">စင့်ခ်လုပ်ခြင်းကို ဖွင့်မလား။</translation>
 <translation id="6785453220513215166">ပျက်စီးမှုအစီရင်ခံချက် ပေးပို့နေသည်...</translation>
+<translation id="6790502149545262384">တဘ်အသစ်ဖွင့်သောအခါ <ph name="CHANNEL_NAME" /> မှ သတင်းဆောင်းပါးများကို မကြာမီ ကြည့်နိုင်ပါမည်။</translation>
 <translation id="6797885426782475225">အသံဖြင့် ရှာဖွေမှု</translation>
 <translation id="6801927553864092214">သီးသန့်ကြည့်ရှုရန် ရုပ်ဖျက်တဘ် ဖွင့်ပါ</translation>
 <translation id="6807889908376551050">အားလုံးကို ပြရန်...</translation>
@@ -890,6 +898,7 @@
 <translation id="7431991332293347422">Search နှင့် အခြားအရာများကို ပုဂ္ဂိုလ်ရေးသီးသန့် သတ်မှတ်ရန်အတွက် အသုံးပြုမှုမှတ်တမ်းအား မည်သို့အသုံးချကြောင်း ထိန်းချုပ်ပါ</translation>
 <translation id="7435356471928173109">သင်၏စီမံခန့်ခွဲသူက ပိတ်ထားသည်</translation>
 <translation id="7438481509621345350">တဘ်အသစ်ဖွင့်သောအခါ <ph name="CHANNEL_NAME" /> မှ သတင်းဆောင်းပါးများကို ယခုကြည့်နိုင်ပြီ။</translation>
+<translation id="7446583256109515732">တဘ်ပင်ဖြုတ်ထားသည်</translation>
 <translation id="7454057999980797137">ပြည်နယ် / ကောင်တီ</translation>
 <translation id="7459628154744868585">‘အဆင့်မြင့်ကာကွယ်မှု’ ဖွင့်ထားသည်</translation>
 <translation id="746684838091935575">၃။ Chrome ကိုရွေးပါ</translation>
@@ -1120,6 +1129,8 @@
 <translation id="9137526406337347448">Google ဝန်ဆောင်မှုများ</translation>
 <translation id="9148126808321036104">ထပ်ပြီး လက်မှတ်ထိုး ဝင်ရန်</translation>
 <translation id="9157836665414082580">သတိပေးချက်များကို ပိတ်ရန်</translation>
+<translation id="9162432979321511934">‘အော်တိုဖြည့် စကားဝှက်များ’ ဖွင့်ပါ</translation>
+<translation id="9165320910061267720">ဈေးကျကြောင်း သတိပေးချက်များအတွက် အကြောင်းကြားချက်ရယူရန် သင့် iOS ဆက်တင်များတွင် အကြောင်းကြားချက်များ ဖွင့်ရမည်။</translation>
 <translation id="9177438225260810839">ဖွင့်ထားသည့်တဘ်များတွင် ရှာဖွေခြင်း</translation>
 <translation id="9188680907066685419">စီမံခန့်ခွဲထားသည့် အကောင့်မှထွက်ပါ</translation>
 <translation id="9193147658040604536">တဘ်ကိုပင်ထိုးရန် ဤနေရာသို့ ဖိဆွဲပါ</translation>
@@ -1132,6 +1143,7 @@
 <translation id="952704832371081537">မလုပ်တော့</translation>
 <translation id="953008885340860025">Chrome ထွက်သွားသည်</translation>
 <translation id="959066944189734975"><ph name="CHANNEL_NAME" /> ကို လိုက်ကြည့်နေသည်</translation>
+<translation id="973493300226275298">အွန်လိုင်းဆိုင်များတွင် ကုန်ပစ္စည်းဈေးကို စောင့်ကြည့်နိုင်သည်။ ဝဘ်ဆိုက်တစ်ခုခုတွင် ဈေးကျသွားပါက သတိပေးချက်များ ရရှိမည်။</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">အကောင့်အချို့ဖြင့်သာ လက်မှတ်ထိုးဝင်ရန် သင့်အဖွဲ့အစည်းက ခွင့်ပြုထားသည်။ ခွင့်ပြုမထားသော အကောင့်များကို ဖျောက်ထားသည်။</translation>
 <translation id="984509647832111802">စင့်ခ်လုပ်၍ မရပါ။</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index 54c5b62..75f9460 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">ट्याबलाई पिन गर्नुहोस्</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> वस्तुहरू सारियो</translation>
 <translation id="2122754583996902531">कसैले तपाईंको ब्राउजर व्यवस्थापन गर्छन्। <ph name="BEGIN_LINK" />थप जान्नुहोस्<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">भाडादरसम्बन्धी अलर्ट पठाउने सुविधा अन गर्ने हो?</translation>
 <translation id="2139867232736819575">तपाईंले प्रतिलिपि गरेको पाठको खोजी गर्नुहोस्</translation>
 <translation id="214201757571129614">साइन इन गर्नुहोस्…</translation>
 <translation id="2149973817440762519">बुकमार्क सम्पादन गर्नुहोस्</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">इतिहास देखाइयोस्</translation>
 <translation id="2800683595868705743">ट्याब स्विचर छोड्नुहोस्</translation>
 <translation id="2815198996063984598">२. डिफल्ट ब्राउजर एपमा ट्याप गर्नुहोस्</translation>
+<translation id="2822917246944009066">यो ट्याब पिन गरिएको छ</translation>
 <translation id="2830972654601096923">ठेगानाहरू व्यवस्थापन गर्नुहोस्...</translation>
 <translation id="2834399722155632105">३. पासवर्डसम्बन्धी विकल्पहरूमा ट्याप गर्नुहोस्</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -561,6 +563,7 @@
 <translation id="5118713593561876160">रूचिहरू</translation>
 <translation id="5118764316110575523">निष्क्रिय छ</translation>
 <translation id="5119391094379141756">Chrome चयन गर्नुहोस्</translation>
+<translation id="5121618895923301719">तपाईं यो उत्पादन ट्र्याक गरिरहनुभएको छ। यो पेज <ph name="BEGIN_LINK" />मोबाइल बुकमार्कहरू<ph name="END_LINK" />मा सेभ गरिएको छ।</translation>
 <translation id="5132942445612118989">सबै यन्त्रहरूमा आफ्ना पासवर्ड, इतिहास र थप कुरा सिंक गर्नुहोस्</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} वटा कमजोर पासवर्ड भेटियो}other{{COUNT} वटा कमजोर पासवर्ड भेटिए}}</translation>
 <translation id="5149188072385105201">पासवर्ड सेभ गर्नुहोस्...</translation>
@@ -591,6 +594,7 @@
 <translation id="5386314158584363703">तपाईं यहाँ गई आफूले फलो गरेका साइटहरू भेट्टाउन सक्नुहुन्छ</translation>
 <translation id="5388358297987318779">छवि खोल्नुहोस्</translation>
 <translation id="5407969256130905701">परिवर्तनहरू खारेज गर्नुहोस्</translation>
+<translation id="5414763847370083940">कुनै साइटमा यो उत्पादनको मूल्य घटेका खण्डमा तपाईंलाई अलर्ट पठाइने छ।</translation>
 <translation id="5416022985862681400">पछिल्ला ७ दिन</translation>
 <translation id="5423269318075950257">मूल्य ट्रयाक गर्नुहोस्</translation>
 <translation id="543338862236136125">पासवर्ड सम्पादन गर्नुहोस्</translation>
@@ -891,6 +895,7 @@
 <translation id="7431991332293347422">खोज र थप कुराहरू वैयक्तीकृत गर्ने प्रयोजनका लागि तपाईंको ब्राउजिङ इतिहासको प्रयोग गरिने तरिका नियन्त्रण गर्नुहोस्</translation>
 <translation id="7435356471928173109">तपाईंका एड्मिनले अफ गर्नुभएको</translation>
 <translation id="7438481509621345350">तपाईंले नयाँ ट्याब खोल्दा अब तपाईंलाई <ph name="CHANNEL_NAME" /> का लेखहरू देखाइने छन्।</translation>
+<translation id="7446583256109515732">यो ट्याब अनपिन गरिएको छ</translation>
 <translation id="7454057999980797137">राज्य / काउन्टी</translation>
 <translation id="7459628154744868585">"उन्नत सुरक्षा" अन गरिएको छ</translation>
 <translation id="746684838091935575">३. Chrome चयन गर्नुहोस्</translation>
@@ -1121,6 +1126,7 @@
 <translation id="9137526406337347448">Google का सेवाहरू</translation>
 <translation id="9148126808321036104">पुन: साइन इन गर्नुहोस्</translation>
 <translation id="9157836665414082580">संवादहरू रोक्नुहोस्</translation>
+<translation id="9165320910061267720">तपाईं मूल्य घट्दा अलर्टहरू प्राप्त गर्न चाहनुहुन्छ भने तपाईंले iOS का सेटिङमा गई सूचना पठाउने सुविधा अन गर्नु पर्ने हुन्छ।</translation>
 <translation id="9177438225260810839">खुला ट्याबहरूमा खोज्नुहोस्</translation>
 <translation id="9188680907066685419">व्यवस्थापन गरिएको खाताबाट साइन आउट गर्ने</translation>
 <translation id="9193147658040604536">पिन ट्याब ड्र्याग गरेर यहाँ ल्याउनुहोस्</translation>
@@ -1133,6 +1139,7 @@
 <translation id="952704832371081537">रद्द गर्नुहोस्</translation>
 <translation id="953008885340860025">तपाईंलाई Chrome बाट साइन आउट गरिएको छ</translation>
 <translation id="959066944189734975">तपाईं <ph name="CHANNEL_NAME" /> फलो गर्दै हुनुहुन्छ</translation>
+<translation id="973493300226275298">विभिन्न अनलाइन स्टोरहरूमा कुनै उत्पादनको मूल्य ट्रयाक गर्नुहोस्। उक्त उत्पादनको मूल्य घटेका खण्डमा तपाईंलाई अलर्ट पठाइने छ।</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">तपाईंको सङ्गठनको नीतिअनुसार तपाईं निश्चित खातामार्फत मात्र साइन इन गर्न पाउनुहुन्छ। साइन इन गर्ने अनुमति नदिइएका खाताहरू लुकाइन्छन्।</translation>
 <translation id="984509647832111802">सिंक गर्ने सुविधाले काम गरिरहेको छैन।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index 0834a10..521c0b7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Interesses</translation>
 <translation id="5118764316110575523">Uit</translation>
 <translation id="5119391094379141756">Selecteer Chrome</translation>
+<translation id="5121618895923301719">Je volgt dit product al. Deze pagina is opgeslagen in <ph name="BEGIN_LINK" />Mobiele bookmarks<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Je wachtwoorden, geschiedenis en meer synchroniseren op al je apparaten</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} zwak wachtwoord}other{{COUNT} zwakke wachtwoorden}}</translation>
 <translation id="5149188072385105201">Wachtwoord toevoegen...</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Hier komen je gevolgde sites te staan</translation>
 <translation id="5388358297987318779">Afbeelding openen</translation>
 <translation id="5407969256130905701">Wijzigingen niet opslaan</translation>
+<translation id="5414763847370083940">Je krijgt een melding als de prijs op een site daalt.</translation>
 <translation id="5416022985862681400">Afgelopen 7 dagen</translation>
 <translation id="5423269318075950257">Prijs volgen</translation>
 <translation id="543338862236136125">Wachtwoord bewerken</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Annuleren</translation>
 <translation id="953008885340860025">Chrome is uitgelogd</translation>
 <translation id="959066944189734975">Je volgt <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Volg de prijs van een product in online winkels. Je krijgt meldingen als de prijs daalt.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Je organisatie vereist dat je alleen met bepaalde accounts inlogt. Niet-toegestane accounts zijn verborgen.</translation>
 <translation id="984509647832111802">Synchronisatie werkt niet.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index 50795be..ee9c47e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Fest fanen</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> elementer er flyttet</translation>
 <translation id="2122754583996902531">Nettleseren din administreres. <ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Vil du slå på prisvarsler?</translation>
 <translation id="2139867232736819575">Søk etter teksten du kopierte</translation>
 <translation id="214201757571129614">Logg på…</translation>
 <translation id="2149973817440762519">Rediger bokmerke</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Vis loggen</translation>
 <translation id="2800683595868705743">Avslutt fanevelgeren</translation>
 <translation id="2815198996063984598">2. Trykk på Standard nettleserapp.</translation>
+<translation id="2822917246944009066">Fanen er festet</translation>
 <translation id="2830972654601096923">Administrer adresser</translation>
 <translation id="2834399722155632105">3. Trykk på Passordvalg</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -563,6 +565,7 @@
 <translation id="5118713593561876160">Interesser</translation>
 <translation id="5118764316110575523">Av</translation>
 <translation id="5119391094379141756">Velg Chrome</translation>
+<translation id="5121618895923301719">Du sporer allerede dette produktet. Denne siden er lagret i <ph name="BEGIN_LINK" />Bokmerker for mobil<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Synkroniser passordene dine, loggen din med mer på alle enheter</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} svakt passord}other{{COUNT} svake passord}}</translation>
 <translation id="5149188072385105201">Legg til et passord…</translation>
@@ -593,6 +596,7 @@
 <translation id="5386314158584363703">Her finner du nettsteder du følger</translation>
 <translation id="5388358297987318779">Åpne bildet</translation>
 <translation id="5407969256130905701">Forkast endringer</translation>
+<translation id="5414763847370083940">Du får varsler hvis prisen settes ned på noe nettsted.</translation>
 <translation id="5416022985862681400">De siste 7 dagene</translation>
 <translation id="5423269318075950257">Spor prisen</translation>
 <translation id="543338862236136125">Endre passordet</translation>
@@ -895,6 +899,7 @@
 <translation id="7431991332293347422">Kontroller hvordan nettleserloggen din brukes til blant annet personlig tilpasning av søk</translation>
 <translation id="7435356471928173109">Slått av av administratoren din</translation>
 <translation id="7438481509621345350">Nå ser du artikler fra <ph name="CHANNEL_NAME" /> når du åpner nye faner.</translation>
+<translation id="7446583256109515732">Fanen er løsnet</translation>
 <translation id="7454057999980797137">Fylke/kommune</translation>
 <translation id="7459628154744868585">Økt beskyttelse er på</translation>
 <translation id="746684838091935575">3. Velg Chrome.</translation>
@@ -1126,6 +1131,7 @@
 <translation id="9148126808321036104">Logg på igjen</translation>
 <translation id="9157836665414082580">Ignorer dialogbokser</translation>
 <translation id="9162432979321511934">Slå på Autofyll-passord.</translation>
+<translation id="9165320910061267720">For å få varsler om avslag må du slå på varsler i iOS-innstillingene.</translation>
 <translation id="9177438225260810839">Søk i åpne faner</translation>
 <translation id="9188680907066685419">Logg av administrert konto</translation>
 <translation id="9193147658040604536">Dra hit for å feste fanen</translation>
@@ -1138,6 +1144,7 @@
 <translation id="952704832371081537">Avbryt</translation>
 <translation id="953008885340860025">Chrome er logget av</translation>
 <translation id="959066944189734975">Du følger <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Spor prisen på et produkt i flere nettbutikker. Du får varsler når prisen går ned.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Organisasjonen din lar deg kun logge på med visse kontoer. Kontoer som ikke tillates, er skjult.</translation>
 <translation id="984509647832111802">Synkroniseringen fungerer ikke.</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 dff0cbcf..fe6fba88 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -314,6 +314,7 @@
 <translation id="3227137524299004712">Microfone</translation>
 <translation id="3240426699337459095">Link copiado</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">Não foi possível salvar a mudança.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /> de <ph name="NUM_SUGGESTIONS" /></translation>
 <translation id="3268451620468152448">Guias abertas</translation>
 <translation id="3272527697863656322">Cancelar</translation>
@@ -336,6 +337,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> minutos</translation>
 <translation id="3448016392200048164">Visualização dividida</translation>
 <translation id="345565170154308620">Gerenciar senhas…</translation>
+<translation id="3464194322481586217">Não foi possível monitorar o preço.</translation>
 <translation id="3469166899695866866">Interromper o download?</translation>
 <translation id="3470502288861289375">Copiando...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{de {COUNT} site ou app}one{de {COUNT} site ou app}other{de {COUNT} sites ou apps}}</translation>
@@ -561,6 +563,7 @@
 <translation id="5118713593561876160">Interesses</translation>
 <translation id="5118764316110575523">Desativado</translation>
 <translation id="5119391094379141756">Selecione o Chrome</translation>
+<translation id="5121618895923301719">Você já está acompanhando este produto. Esta página fica salva nos <ph name="BEGIN_LINK" />Favoritos nos dispositivos móveis<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Sincronize suas senhas, seu histórico e muito mais em todos os dispositivos</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} senha fraca}one{{COUNT} senha fraca}other{{COUNT} senhas fracas}}</translation>
 <translation id="5149188072385105201">Adicionar senha…</translation>
@@ -591,6 +594,7 @@
 <translation id="5386314158584363703">Os sites que você segue vão aparecer aqui</translation>
 <translation id="5388358297987318779">Abrir imagem</translation>
 <translation id="5407969256130905701">Descartar alterações</translation>
+<translation id="5414763847370083940">Você vai receber um alerta se houver uma redução no preço em algum site.</translation>
 <translation id="5416022985862681400">Últimos sete dias</translation>
 <translation id="5423269318075950257">Monitorar preço</translation>
 <translation id="543338862236136125">Editar senha</translation>
@@ -761,6 +765,7 @@
 <translation id="6464397691496239022">Os sites podem usar cookies para melhorar sua experiência de navegação, como manter sua conta conectada ou se lembrar dos itens em um carrinho de compras.
 
 No entanto, eles não podem usar cookies para ver sua atividade de navegação em diferentes sites, por exemplo, para personalizar anúncios.</translation>
+<translation id="6476253015009698798">O monitoramento de preços não está disponível para esta página.</translation>
 <translation id="6476800141292307438">Tradução da página para <ph name="LANGUAGE" />. Opções disponíveis na parte inferior da tela.</translation>
 <translation id="648164694371393720">Erro de autenticação</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> itens excluídos</translation>
@@ -812,6 +817,7 @@
 <translation id="6780034285637185932">CEP</translation>
 <translation id="6781260999953472352">Ativar a sincronização?</translation>
 <translation id="6785453220513215166">Enviando relatórios de erros...</translation>
+<translation id="6790502149545262384">Em breve, stories de <ph name="CHANNEL_NAME" /> vão ser mostrados quando você abrir uma nova guia.</translation>
 <translation id="6797885426782475225">Pesquisa por voz</translation>
 <translation id="6801927553864092214">Para navegar com privacidade, abra uma guia anônima</translation>
 <translation id="6807889908376551050">Mostrar todos...</translation>
@@ -1121,6 +1127,7 @@
 <translation id="9137526406337347448">Serviços do Google</translation>
 <translation id="9148126808321036104">Faça login novamente</translation>
 <translation id="9157836665414082580">Bloquear caixas de diálogo</translation>
+<translation id="9162432979321511934">Ative a opção "Preenchimento automático de senhas"</translation>
 <translation id="9177438225260810839">Pesquisar guias abertas</translation>
 <translation id="9188680907066685419">Sair da conta gerenciada</translation>
 <translation id="9193147658040604536">Arraste até aqui para fixar a guia</translation>
@@ -1133,6 +1140,7 @@
 <translation id="952704832371081537">Cancelar</translation>
 <translation id="953008885340860025">A conta foi desconectada do Chrome</translation>
 <translation id="959066944189734975">Você está seguindo este canal: <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Rastreie o preço de um produto em lojas on-line. Você vai receber alertas quando houver uma redução no preço.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Sua organização permite que você faça login apenas com determinadas contas. As contas que não têm permissão para fazer login ficam ocultas.</translation>
 <translation id="984509647832111802">A sincronização não está funcionando.</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 ed096dd1..6accb51 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Fixar Separador</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> itens movidos</translation>
 <translation id="2122754583996902531">O seu navegador é gerido. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Ativar os alertas de preços?</translation>
 <translation id="2139867232736819575">Pesquisar o texto que copiou</translation>
 <translation id="214201757571129614">Iniciar sessão…</translation>
 <translation id="2149973817440762519">Editar marcador</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Mostrar histórico</translation>
 <translation id="2800683595868705743">Sair do Comutador de separadores</translation>
 <translation id="2815198996063984598">2. Toque em App de navegador predefinida.</translation>
+<translation id="2822917246944009066">Separador afixado</translation>
 <translation id="2830972654601096923">Gerir endereços…</translation>
 <translation id="2834399722155632105">3. Toque em Opções de palavras-passe</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -897,6 +899,7 @@
 <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="7438481509621345350">Vão ser apresentadas notícias de <ph name="CHANNEL_NAME" /> quando abrir um novo separador.</translation>
+<translation id="7446583256109515732">Separador desafixado</translation>
 <translation id="7454057999980797137">Distrito/concelho</translation>
 <translation id="7459628154744868585">A Proteção melhorada está ativada</translation>
 <translation id="746684838091935575">3. Selecione o Chrome.</translation>
@@ -1128,6 +1131,7 @@
 <translation id="9148126808321036104">Iniciar sessão novamente</translation>
 <translation id="9157836665414082580">Supr. caixas diálogo</translation>
 <translation id="9162432979321511934">Ative o Preenchimento automático de palavras-passe</translation>
+<translation id="9165320910061267720">Para receber notificações de alertas de descida do preço, tem de ativar as notificações nas definições do iOS.</translation>
 <translation id="9177438225260810839">Procurar nos separadores abertos</translation>
 <translation id="9188680907066685419">Terminar sessão na conta gerida</translation>
 <translation id="9193147658040604536">Arrastar para aqui para fixar o separador</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index a234fe3..0384fca 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Закрепить вкладку</translation>
 <translation id="2116625576999540962">Перемещено закладок: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="2122754583996902531">Этот браузер управляется администратором. <ph name="BEGIN_LINK" />Подробнее…<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Включить оповещения об изменении цен?</translation>
 <translation id="2139867232736819575">Поиск скопированного текста</translation>
 <translation id="214201757571129614">Войти</translation>
 <translation id="2149973817440762519">Закладка</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Показать историю</translation>
 <translation id="2800683595868705743">Закрыть переключатель вкладок</translation>
 <translation id="2815198996063984598">2. Найдите раздел, где выбирается браузер по умолчанию.</translation>
+<translation id="2822917246944009066">Вкладка закреплена.</translation>
 <translation id="2830972654601096923">Управление адресами</translation>
 <translation id="2834399722155632105">3. Выберите "Настройки паролей".</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -314,6 +316,7 @@
 <translation id="3227137524299004712">Микрофон</translation>
 <translation id="3240426699337459095">Готово</translation>
 <translation id="3244271242291266297">ММ</translation>
+<translation id="3245744387817103524">Не удалось сохранить изменения.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /> из <ph name="NUM_SUGGESTIONS" /></translation>
 <translation id="3268451620468152448">Вкладки</translation>
 <translation id="3272527697863656322">Отмена</translation>
@@ -336,6 +339,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> мин.</translation>
 <translation id="3448016392200048164">Режим Split View</translation>
 <translation id="345565170154308620">Настроить пароли</translation>
+<translation id="3464194322481586217">Не удалось отследить цену.</translation>
 <translation id="3469166899695866866">Остановить скачивание?</translation>
 <translation id="3470502288861289375">Копирование…</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{Для {COUNT} сайта или приложения}one{Для {COUNT} сайта и приложения}few{Для {COUNT} сайтов и приложений}many{Для {COUNT} сайтов и приложений}other{Для {COUNT} сайта и приложения}}</translation>
@@ -561,6 +565,7 @@
 <translation id="5118713593561876160">Интересы</translation>
 <translation id="5118764316110575523">ВЫКЛ</translation>
 <translation id="5119391094379141756">Выберите Chrome.</translation>
+<translation id="5121618895923301719">Вы уже отслеживаете этот товар. Эта страница добавлена в папку <ph name="BEGIN_LINK" />Закладки на мобильном устройстве<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Синхронизируйте пароли, историю и другие данные на всех ваших устройствах</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} простой пароль}one{{COUNT} простой пароль}few{{COUNT} простых пароля}many{{COUNT} простых паролей}other{{COUNT} простого пароля}}</translation>
 <translation id="5149188072385105201">Добавить пароль</translation>
@@ -591,6 +596,7 @@
 <translation id="5386314158584363703">Ваши подписки появятся здесь</translation>
 <translation id="5388358297987318779">Открыть изображение</translation>
 <translation id="5407969256130905701">Сбросить изменения</translation>
+<translation id="5414763847370083940">Если на одном из сайтов появится скидка, вы получите оповещение.</translation>
 <translation id="5416022985862681400">Последние 7 дней</translation>
 <translation id="5423269318075950257">Отслеживание цен</translation>
 <translation id="543338862236136125">Изменить пароль</translation>
@@ -761,6 +767,7 @@
 <translation id="6464397691496239022">Сайты могут использовать файлы cookie для вашего удобства, например сохранять информацию о товарах в корзине или о том, что вы вошли в аккаунт.
 
 Сайты не могут использовать файлы cookie, чтобы получать данные о ваших действиях в браузере, например для показа персонализированной рекламы.</translation>
+<translation id="6476253015009698798">Отслеживание цен недоступно для этой страницы.</translation>
 <translation id="6476800141292307438">Перевод страницы на <ph name="LANGUAGE" />. Параметры указаны в нижней части экрана.</translation>
 <translation id="648164694371393720">Ошибка аутентификации</translation>
 <translation id="6482629121755362506">Удалено закладок: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
@@ -812,6 +819,7 @@
 <translation id="6780034285637185932">Почтовый индекс</translation>
 <translation id="6781260999953472352">Включить синхронизацию?</translation>
 <translation id="6785453220513215166">Отправка отчета об ошибке…</translation>
+<translation id="6790502149545262384">Скоро, открывая новую вкладку, вы будете видеть статьи с сайта "<ph name="CHANNEL_NAME" />".</translation>
 <translation id="6797885426782475225">Голосовой поиск</translation>
 <translation id="6801927553864092214">Чтобы посмотреть сайт анонимно, откройте вкладку в режиме инкогнито.</translation>
 <translation id="6807889908376551050">Показать все…</translation>
@@ -891,6 +899,7 @@
 <translation id="7431991332293347422">Укажите, как Google может использовать историю браузера для персонализации Поиска и других сервисов.</translation>
 <translation id="7435356471928173109">Функцию отключил администратор.</translation>
 <translation id="7438481509621345350">Открыв новую вкладку, вы увидите статьи с сайта "<ph name="CHANNEL_NAME" />".</translation>
+<translation id="7446583256109515732">Вкладка откреплена.</translation>
 <translation id="7454057999980797137">Регион</translation>
 <translation id="7459628154744868585">Улучшенная защита включена</translation>
 <translation id="746684838091935575">3. Выберите Chrome.</translation>
@@ -1121,6 +1130,8 @@
 <translation id="9137526406337347448">Сервисы Google</translation>
 <translation id="9148126808321036104">Повторите вход</translation>
 <translation id="9157836665414082580">Блокировать диалоговые окна</translation>
+<translation id="9162432979321511934">Включите параметр "Автозаполнение паролей".</translation>
+<translation id="9165320910061267720">Чтобы получать оповещения о скидках, включите уведомления в настройках iOS.</translation>
 <translation id="9177438225260810839">Поиск по открытым вкладкам</translation>
 <translation id="9188680907066685419">Выход из управляемого аккаунта</translation>
 <translation id="9193147658040604536">Перетащите вкладку сюда, чтобы закрепить</translation>
@@ -1133,6 +1144,7 @@
 <translation id="952704832371081537">Отмена</translation>
 <translation id="953008885340860025">Вход в Chrome не выполнен</translation>
 <translation id="959066944189734975">Вы подписались на сайт "<ph name="CHANNEL_NAME" />"</translation>
+<translation id="973493300226275298">Отслеживайте цены на товар в разных интернет-магазинах. Если появится скидка, вы получите оповещение.</translation>
 <translation id="980712131080209571">Нов.</translation>
 <translation id="981498610235328462">Согласно правилам, установленным организацией, выполнить вход можно только с одобренным аккаунтом. Запрещенные аккаунты скрываются.</translation>
 <translation id="984509647832111802">Ошибка синхронизации.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index b236786..b165838 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Záujmy</translation>
 <translation id="5118764316110575523">Vypnuté</translation>
 <translation id="5119391094379141756">Vyberte Chrome</translation>
+<translation id="5121618895923301719">Tento výrobok už sledujete. Táto stránka je uložená v <ph name="BEGIN_LINK" />záložkách mobilného zariadenia<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Synchronizujte svoje heslá, históriu a ďalší obsah vo všetkých zariadeniach</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} slabé heslo}few{{COUNT} slabé heslá}many{{COUNT} Weak Passwords}other{{COUNT} slabých hesiel}}</translation>
 <translation id="5149188072385105201">Pridať heslo…</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Tu nájdete svoje sledované weby</translation>
 <translation id="5388358297987318779">Otvoriť obrázok</translation>
 <translation id="5407969256130905701">Zahodiť zmeny</translation>
+<translation id="5414763847370083940">Ak cena na niektorom webe klesne, dostanete upozornenie.</translation>
 <translation id="5416022985862681400">Posledných 7 dní</translation>
 <translation id="5423269318075950257">Sledovanie ceny</translation>
 <translation id="543338862236136125">Upraviť heslo</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Zrušiť</translation>
 <translation id="953008885340860025">Chrome je odhlásený</translation>
 <translation id="959066944189734975">Sledujete kanál <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Sledujte cenu výrobku v internetových obchodoch. Keď klesne, dostanete upozornenie.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Vaša organizácia vám povoľuje prihlásiť sa iba určitým účtami. Nepovolené účty sú skryté.</translation>
 <translation id="984509647832111802">Synchronizácia nefunguje.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index 47e3df0..e0f1296 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Pripni zavihek</translation>
 <translation id="2116625576999540962">Št. premaknjenih elementov: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="2122754583996902531">Vaš brskalnik je upravljan. <ph name="BEGIN_LINK" />Več o tem<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Želite vklopiti opozorila o ceni?</translation>
 <translation id="2139867232736819575">Iskanje besedila, ki ste ga kopirali</translation>
 <translation id="214201757571129614">Prijava …</translation>
 <translation id="2149973817440762519">Uredi zaznamek</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Prikaz zgodovine</translation>
 <translation id="2800683595868705743">Leave Tab Switcher</translation>
 <translation id="2815198996063984598">2. Dotaknite se možnosti za privzeto aplikacijo za brskanje.</translation>
+<translation id="2822917246944009066">Zavihek je pripet.</translation>
 <translation id="2830972654601096923">Upravljanje naslovov ...</translation>
 <translation id="2834399722155632105">3. Dotaknite se »Password Options« (Možnosti gesla).</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -897,6 +899,7 @@
 <translation id="7431991332293347422">Nadziranje, kako se zgodovina brskanja uporabi za prilagajanje Iskanja Google in drugega</translation>
 <translation id="7435356471928173109">Izklopil skrbnik</translation>
 <translation id="7438481509621345350">Poslej bodo prikazane novice s spletnega mesta <ph name="CHANNEL_NAME" />, ko boste odprli nov zavihek.</translation>
+<translation id="7446583256109515732">Zavihek je odpet.</translation>
 <translation id="7454057999980797137">Regija</translation>
 <translation id="7459628154744868585">Izboljšana zaščita je vklopljena</translation>
 <translation id="746684838091935575">3. Izberite Chrome.</translation>
@@ -1128,6 +1131,7 @@
 <translation id="9148126808321036104">Prijavite se znova</translation>
 <translation id="9157836665414082580">Onemogoči pogovorna okna</translation>
 <translation id="9162432979321511934">Vklopite AutoFill Passwords (Samodejno izpolnjevanje gesel).</translation>
+<translation id="9165320910061267720">Če želite prejemati obvestila z opozorili o znižanju cen, morate vklopiti obvestila v nastavitvah sistema iOS.</translation>
 <translation id="9177438225260810839">Iskanje po odprtih zavihkih</translation>
 <translation id="9188680907066685419">Odjava iz upravljanega računa</translation>
 <translation id="9193147658040604536">Povlecite sem, če želite pripeti zavihek</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
index a7485ac..4a82407d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Zakači karticu</translation>
 <translation id="2116625576999540962">Broj premeštenih stavki je <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="2122754583996902531">Pregledačem se upravlja. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Želite da uključite obaveštenja o ceni?</translation>
 <translation id="2139867232736819575">Potražite tekst koji ste kopirali</translation>
 <translation id="214201757571129614">Prijavite se…</translation>
 <translation id="2149973817440762519">Izmenite obeleživač</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Prikaži istoriju</translation>
 <translation id="2800683595868705743">Izađi iz prebacivača kartica</translation>
 <translation id="2815198996063984598">2. Dodirnite Podrazumevana aplikacija za pregledanje</translation>
+<translation id="2822917246944009066">Kartica je zakačena</translation>
 <translation id="2830972654601096923">Upravljajte adresama...</translation>
 <translation id="2834399722155632105">3. Dodirnite Opcije lozinki</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -561,6 +563,7 @@
 <translation id="5118713593561876160">Interesovanja</translation>
 <translation id="5118764316110575523">Isključeno</translation>
 <translation id="5119391094379141756">Izaberite Chrome</translation>
+<translation id="5121618895923301719">Već pratite ovaj proizvod. Ova stranica je sačuvana u <ph name="BEGIN_LINK" />Mobilnim obeleživačima<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Sinhronizujte lozinke, istoriju i drugi sadržaj na svim uređajima</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} slaba lozinka}one{{COUNT} slaba lozinka}few{{COUNT} slabe lozinke}other{{COUNT} slabih lozinki}}</translation>
 <translation id="5149188072385105201">Dodajte lozinku...</translation>
@@ -591,6 +594,7 @@
 <translation id="5386314158584363703">Ovde ćete pronaći sajtove koje pratite</translation>
 <translation id="5388358297987318779">Otvori sliku</translation>
 <translation id="5407969256130905701">Odbaci promene</translation>
+<translation id="5414763847370083940">Dobićete obaveštenje ako se cena snizi na bilo kom sajtu.</translation>
 <translation id="5416022985862681400">Poslednjih 7 dana</translation>
 <translation id="5423269318075950257">Pratite cenu</translation>
 <translation id="543338862236136125">Izmenite lozinku</translation>
@@ -891,6 +895,7 @@
 <translation id="7431991332293347422">Kontrolišite kako se istorija pregledanja koristi za personalizovanje Pretrage i drugih usluga</translation>
 <translation id="7435356471928173109">Isključio je administrator</translation>
 <translation id="7438481509621345350">Sada ćete videti priče sa <ph name="CHANNEL_NAME" /> kada otvorite novu karticu.</translation>
+<translation id="7446583256109515732">Kartica je otkačena</translation>
 <translation id="7454057999980797137">Država/zemlja</translation>
 <translation id="7459628154744868585">Poboljšana zaštita je uključena</translation>
 <translation id="746684838091935575">3. Izaberite Chrome</translation>
@@ -1121,6 +1126,7 @@
 <translation id="9137526406337347448">Google usluge</translation>
 <translation id="9148126808321036104">Prijavi me ponovo</translation>
 <translation id="9157836665414082580">Spreči dijaloge</translation>
+<translation id="9165320910061267720">Da biste dobijali obaveštenja o sniženjima, treba da uključite obaveštenja u iOS podešavanjima.</translation>
 <translation id="9177438225260810839">Pretražite otvorene kartice</translation>
 <translation id="9188680907066685419">Odjavite se sa naloga kojim se upravlja</translation>
 <translation id="9193147658040604536">Prevucite ovde da biste zakačili karticu</translation>
@@ -1133,6 +1139,7 @@
 <translation id="952704832371081537">Otkaži</translation>
 <translation id="953008885340860025">Odjavljeni ste iz Chrome-a</translation>
 <translation id="959066944189734975">Pratite <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Pratite cenu proizvoda u različitim onlajn prodavnicama. Dobijaćete obaveštenja kada cena padne.</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">Organizacija vam dozvoljava da se prijavite samo pomoću određenih naloga. Nalozi koji nisu dozvoljeni su skriveni.</translation>
 <translation id="984509647832111802">Sinhronizacija ne radi.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index 7bf3421..3f369b7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Закачи картицу</translation>
 <translation id="2116625576999540962">Број премештених ставки је <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="2122754583996902531">Прегледачем се управља. <ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Желите да укључите обавештења о цени?</translation>
 <translation id="2139867232736819575">Потражите текст који сте копирали</translation>
 <translation id="214201757571129614">Пријавите се…</translation>
 <translation id="2149973817440762519">Измените обележивач</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Прикажи историју</translation>
 <translation id="2800683595868705743">Изађи из пребацивача картица</translation>
 <translation id="2815198996063984598">2. Додирните Подразумевана апликација за прегледање</translation>
+<translation id="2822917246944009066">Картица је закачена</translation>
 <translation id="2830972654601096923">Управљајте адресама...</translation>
 <translation id="2834399722155632105">3. Додирните Опције лозинки</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -561,6 +563,7 @@
 <translation id="5118713593561876160">Интересовања</translation>
 <translation id="5118764316110575523">Искључено</translation>
 <translation id="5119391094379141756">Изаберите Chrome</translation>
+<translation id="5121618895923301719">Већ пратите овај производ. Ова страница је сачувана у <ph name="BEGIN_LINK" />Мобилним обележивачима<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Синхронизујте лозинке, историју и други садржај на свим уређајима</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} слаба лозинка}one{{COUNT} слаба лозинка}few{{COUNT} слабе лозинке}other{{COUNT} слабих лозинки}}</translation>
 <translation id="5149188072385105201">Додајте лозинку...</translation>
@@ -591,6 +594,7 @@
 <translation id="5386314158584363703">Овде ћете пронаћи сајтове које пратите</translation>
 <translation id="5388358297987318779">Отвори слику</translation>
 <translation id="5407969256130905701">Одбаци промене</translation>
+<translation id="5414763847370083940">Добићете обавештење ако се цена снизи на било ком сајту.</translation>
 <translation id="5416022985862681400">Последњих 7 дана</translation>
 <translation id="5423269318075950257">Пратите цену</translation>
 <translation id="543338862236136125">Измените лозинку</translation>
@@ -891,6 +895,7 @@
 <translation id="7431991332293347422">Контролишите како се историја прегледања користи за персонализовање Претраге и других услуга</translation>
 <translation id="7435356471928173109">Искључио је администратор</translation>
 <translation id="7438481509621345350">Сада ћете видети приче са <ph name="CHANNEL_NAME" /> када отворите нову картицу.</translation>
+<translation id="7446583256109515732">Картица је откачена</translation>
 <translation id="7454057999980797137">Држава/земља</translation>
 <translation id="7459628154744868585">Побољшана заштита је укључена</translation>
 <translation id="746684838091935575">3. Изаберите Chrome</translation>
@@ -1121,6 +1126,7 @@
 <translation id="9137526406337347448">Google услуге</translation>
 <translation id="9148126808321036104">Пријави ме поново</translation>
 <translation id="9157836665414082580">Спречи дијалоге</translation>
+<translation id="9165320910061267720">Да бисте добијали обавештења о снижењима, треба да укључите обавештења у iOS подешавањима.</translation>
 <translation id="9177438225260810839">Претражите отворене картице</translation>
 <translation id="9188680907066685419">Одјавите се са налога којим се управља</translation>
 <translation id="9193147658040604536">Превуците овде да бисте закачили картицу</translation>
@@ -1133,6 +1139,7 @@
 <translation id="952704832371081537">Откажи</translation>
 <translation id="953008885340860025">Одјављени сте из Chrome-а</translation>
 <translation id="959066944189734975">Пратите <ph name="CHANNEL_NAME" /></translation>
+<translation id="973493300226275298">Пратите цену производа у различитим онлајн продавницама. Добијаћете обавештења када цена падне.</translation>
 <translation id="980712131080209571">Н</translation>
 <translation id="981498610235328462">Организација вам дозвољава да се пријавите само помоћу одређених налога. Налози који нису дозвољени су скривени.</translation>
 <translation id="984509647832111802">Синхронизација не ради.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 9b1c4e9c..ff46bf5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -314,6 +314,7 @@
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3240426699337459095">Länken har kopierats</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">Det gick inte att spara ändringen.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /> av <ph name="NUM_SUGGESTIONS" /></translation>
 <translation id="3268451620468152448">Öppna flikar</translation>
 <translation id="3272527697863656322">Avbryt</translation>
@@ -336,6 +337,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation>
 <translation id="3448016392200048164">Delad vy</translation>
 <translation id="345565170154308620">Hantera lösenord …</translation>
+<translation id="3464194322481586217">Det gick inte att bevaka priset.</translation>
 <translation id="3469166899695866866">Vill du avbryta nedladdningen?</translation>
 <translation id="3470502288861289375">Kopierar ...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{för {COUNT} webbplats eller app}other{för {COUNT} webbplatser och appar}}</translation>
@@ -761,6 +763,7 @@
 <translation id="6464397691496239022">Webbplatser får förbättra surfupplevelsen med hjälp av cookies, till exempel genom att låta dig förbli inloggad eller spara vad du har lagt till i kundvagnen.
 
 Webbplatser får inte se din webbaktivitet på olika webbplatser med hjälp av cookies och till exempel anpassa annonser.</translation>
+<translation id="6476253015009698798">Prisbevakning är inte tillgänglig för den här sidan.</translation>
 <translation id="6476800141292307438">Översätter sidan till <ph name="LANGUAGE" />. Alternativ finns längst ned på skärmen.</translation>
 <translation id="648164694371393720">Autentiseringsfel</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> objekt har tagits bort</translation>
@@ -812,6 +815,7 @@
 <translation id="6780034285637185932">Postnummer</translation>
 <translation id="6781260999953472352">Vill du aktivera synkronisering?</translation>
 <translation id="6785453220513215166">Skickar en felrapport ...</translation>
+<translation id="6790502149545262384">Snart visas artiklar från <ph name="CHANNEL_NAME" /> när du öppnar en ny flik.</translation>
 <translation id="6797885426782475225">Röstsökning</translation>
 <translation id="6801927553864092214">Öppna en inkognitoflik om du vill surfa privat</translation>
 <translation id="6807889908376551050">Visa alla ...</translation>
@@ -1121,6 +1125,7 @@
 <translation id="9137526406337347448">Google Services</translation>
 <translation id="9148126808321036104">Logga in igen</translation>
 <translation id="9157836665414082580">Visa inte dialogrutor</translation>
+<translation id="9162432979321511934">Aktivera Autofyll lösenord</translation>
 <translation id="9177438225260810839">Sök på öppna flikar</translation>
 <translation id="9188680907066685419">Logga ut från hanterat konto</translation>
 <translation id="9193147658040604536">Dra hit för att fästa fliken</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index 85d0fd6..f1b7597 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">ట్యాబ్‌ను పిన్ చేయి</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> అంశాలు తరలించబడ్డాయి</translation>
 <translation id="2122754583996902531">మీ బ్రౌజర్ మేనేజ్ చేయబడుతుంది. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">ప్రైస్ అలర్ట్‌లను ఆన్ చేయాలా?</translation>
 <translation id="2139867232736819575">మీరు కాపీ చేసిన వచనం కోసం వెతకండి</translation>
 <translation id="214201757571129614">సైన్ ఇన్ చేయండి…</translation>
 <translation id="2149973817440762519">బుక్‌మార్క్‌ను ఎడిట్ చేయండి</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">హిస్టరీని చూడండి</translation>
 <translation id="2800683595868705743">ట్యాబ్ స్విచర్ నుండి నిష్క్రమించండి</translation>
 <translation id="2815198996063984598">2. ఆటోమేటిక్ బ్రౌజర్ యాప్‌ను ట్యాప్ చేయండి</translation>
+<translation id="2822917246944009066">ట్యాబ్ పిన్ చేయబడింది</translation>
 <translation id="2830972654601096923">అడ్రస్‌లను మేనేజ్ చేయండి...</translation>
 <translation id="2834399722155632105">3. పాస్‌వర్డ్ ఆప్షన్‌లను ట్యాప్ చేయండి</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -314,6 +316,7 @@
 <translation id="3227137524299004712">మైక్రోఫోన్</translation>
 <translation id="3240426699337459095">లింక్ కాపీ చేయబడింది</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">మీ మార్పు సేవ్ చేయడం సాధ్యపడలేదు.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="NUM_SUGGESTIONS" />లో <ph name="INDEX" /></translation>
 <translation id="3268451620468152448">ఓపెన్ ట్యాబ్‌లు</translation>
 <translation id="3272527697863656322">రద్దు చేయండి</translation>
@@ -336,6 +339,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> నిమి</translation>
 <translation id="3448016392200048164">విభజన వీక్షణ</translation>
 <translation id="345565170154308620">పాస్‌వర్డ్‌లను మేనేజ్ చేయండి...</translation>
+<translation id="3464194322481586217">ధరను ట్రాక్ చేయడం సాధ్యపడలేదు.</translation>
 <translation id="3469166899695866866">డౌన్‌లోడ్‌ను ఆపివేయాలా?</translation>
 <translation id="3470502288861289375">కాపీ చేస్తోంది...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{{COUNT} సైట్ లేదా యాప్ కోసం}other{{COUNT} సైట్‌లు, యాప్‌ల కోసం}}</translation>
@@ -763,6 +767,7 @@
 <translation id="6464397691496239022">సైట్‌లు మీ బ్రౌజింగ్ అనుభవాన్ని మెరుగుపరచడానికి కుక్కీలను ఉపయోగిస్తాయి, ఉదాహరణకు, మిమ్మల్ని సైన్ ఇన్ చేసి ఉంచడం లేదా మీ షాపింగ్ కార్ట్‌లోని ఐటెమ్‌లను గుర్తు చేయడం లాంటివి.
 
 వివిధ సైట్‌లలో మీ బ్రౌజింగ్ యాక్టివిటీని చూడటానికి సైట్‌లు కుక్కీలను ఉపయోగించలేవు, ఉదాహరణకు, యాడ్‌లను వ్యక్తిగతీకరించడం లాంటివి.</translation>
+<translation id="6476253015009698798">ఈ పేజీకి ధర ట్రాకింగ్ అందుబాటులో లేదు.</translation>
 <translation id="6476800141292307438">పేజీని <ph name="LANGUAGE" />లోకి అనువదిస్తోంది. స్క్రీన్ దిగువ భాగానికి దగ్గర్లో ఎంపికలు అందుబాటులో ఉంటాయి.</translation>
 <translation id="648164694371393720">ప్రామాణీకరణ ఎర్రర్</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> అంశాలు తొలగించబడ్డాయి</translation>
@@ -814,6 +819,7 @@
 <translation id="6780034285637185932">జిప్ కోడ్</translation>
 <translation id="6781260999953472352">సింక్‌ను ఆన్ చేయాలా?</translation>
 <translation id="6785453220513215166">క్రాష్ రిపోర్ట్‌ను పంపుతోంది...</translation>
+<translation id="6790502149545262384">త్వరలో, మీరు కొత్త ట్యాబ్‌ను తెరిచినప్పుడు మీరు <ph name="CHANNEL_NAME" /> నుండి కథనాలను చూస్తారు.</translation>
 <translation id="6797885426782475225">వాయిస్ శోధన</translation>
 <translation id="6801927553864092214">ప్రైవేట్‌గా బ్రౌజ్ చేయడానికి, అజ్ఞాత ట్యాబ్‌ను తెరవండి</translation>
 <translation id="6807889908376551050">అన్నీ చూపు...</translation>
@@ -893,6 +899,7 @@
 <translation id="7431991332293347422">సెర్చ్‌లు మరియు మరిన్నింటిని వ్యక్తిగతీకరించడానికి మీ బ్రౌజింగ్ హిస్టరీ ఎలా ఉపయోగించబడుతుందో నియంత్రించండి</translation>
 <translation id="7435356471928173109">మీ అడ్మినిస్ట్రేటర్ ఆఫ్ చేశారు</translation>
 <translation id="7438481509621345350">మీరు కొత్త ట్యాబ్‌ను తెరిచినప్పుడు మీకు ఇప్పుడు <ph name="CHANNEL_NAME" /> నుండి స్టోరీలు కనిపిస్తాయి.</translation>
+<translation id="7446583256109515732">ట్యాబ్ పిన్ తీసివేయబడింది</translation>
 <translation id="7454057999980797137">రాష్ట్రం / దేశం</translation>
 <translation id="7459628154744868585">మెరుగైన రక్షణ ఆన్‌లో ఉంది</translation>
 <translation id="746684838091935575">3. Chromeను ఎంచుకోండి</translation>
@@ -1123,6 +1130,8 @@
 <translation id="9137526406337347448">Google సేవలు</translation>
 <translation id="9148126808321036104">మళ్ళీ సైన్ ఇన్ చేయండి</translation>
 <translation id="9157836665414082580">డైలాగ్‌లను కుదించు</translation>
+<translation id="9162432979321511934">పాస్‌వర్డ్‌లను ఆటోఫిల్ చేసే ఆప్షన్‌ను ఆన్ చేయండి</translation>
+<translation id="9165320910061267720">ధర తగ్గుదల అలర్ట్‌ల నోటిఫికేషన్‌లను పొందడానికి, మీరు మీ iOS సెట్టింగ్‌లలో నోటిఫికేషన్‌లను ఆన్ చేయాలి.</translation>
 <translation id="9177438225260810839">తెరిచి ఉన్న ట్యాబ్‌లలో సెర్చ్ చేయండి</translation>
 <translation id="9188680907066685419">నిర్వహిత ఖాతా నుండి సైన్ అవుట్ చేయండి</translation>
 <translation id="9193147658040604536">ట్యాబ్‌ను పిన్ చేయడానికి ఇక్కడకు లాగండి</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index ccbb547..05bb06dc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">Інтереси</translation>
 <translation id="5118764316110575523">Вимк.</translation>
 <translation id="5119391094379141756">Виберіть Chrome</translation>
+<translation id="5121618895923301719">Ви вже відстежуєте ціну на цей товар. Цю сторінку збережено в папці <ph name="BEGIN_LINK" />Закладки на мобільному<ph name="END_LINK" />.</translation>
 <translation id="5132942445612118989">Синхронізуйте свої паролі, історію тощо на всіх пристроях</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} ненадійний пароль}one{{COUNT} ненадійний пароль}few{{COUNT} ненадійні паролі}many{{COUNT} ненадійних паролів}other{{COUNT} ненадійного пароля}}</translation>
 <translation id="5149188072385105201">Додати пароль…</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">Тут показуватимуться сайти, на які ви підписалися</translation>
 <translation id="5388358297987318779">Відкрити зображення</translation>
 <translation id="5407969256130905701">Відхилити зміни</translation>
+<translation id="5414763847370083940">Ви отримаєте сповіщення, коли на якомусь сайті знизиться ціна.</translation>
 <translation id="5416022985862681400">Останні 7 днів</translation>
 <translation id="5423269318075950257">Відстежувати ціну</translation>
 <translation id="543338862236136125">Змінити пароль</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">Скасувати</translation>
 <translation id="953008885340860025">Ви вийшли з облікового запису Chrome</translation>
 <translation id="959066944189734975">Ви підписалися на канал "<ph name="CHANNEL_NAME" />"</translation>
+<translation id="973493300226275298">Відстежуйте ціну на товар в онлайн-магазинах. Коли вона знизиться, ви отримаєте сповіщення.</translation>
 <translation id="980712131080209571">Н</translation>
 <translation id="981498610235328462">Ваша організація дозволяє входити лише в певні облікові записи. Недозволені облікові записи приховано.</translation>
 <translation id="984509647832111802">Синхронізація не працює.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
index 9ec4dcc..882de12 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">دلچسپیاں</translation>
 <translation id="5118764316110575523">آف</translation>
 <translation id="5119391094379141756">‏Chrome منتخب کریں</translation>
+<translation id="5121618895923301719">آپ پہلے سے ہی اس پروڈکٹ کو ٹریک کر رہے ہیں۔ یہ صفحہ <ph name="BEGIN_LINK" />موبائل بُک مارکس<ph name="END_LINK" /> میں محفوظ ہے۔</translation>
 <translation id="5132942445612118989">سبھی آلات پر اپنے پاس ورڈز اور سرگزشت کی مطابقت پذیری اور مزید بہت کچھ کریں</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} کمزور پاس ورڈ}other{{COUNT} کمزور پاس ورڈز}}</translation>
 <translation id="5149188072385105201">پاس ورڈ شامل کریں...</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">آپ کو اپنی پیروی کی گئی سائٹیں یہاں ملیں گی</translation>
 <translation id="5388358297987318779">تصویر کھولیں</translation>
 <translation id="5407969256130905701">تبدیلیاں مسترد کریں</translation>
+<translation id="5414763847370083940">کسی بھی سائٹ پر قیمت کم ہونے کی صورت میں آپ کو ایک الرٹ حاصل ہو گا۔</translation>
 <translation id="5416022985862681400">گزشتہ 7 دن</translation>
 <translation id="5423269318075950257">قیمت ٹریک کریں</translation>
 <translation id="543338862236136125">پاس ورڈ میں ترمیم کریں</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">منسوخ کریں</translation>
 <translation id="953008885340860025">‏Chrome سے سائن آوٹ ہو گئے</translation>
 <translation id="959066944189734975">آپ <ph name="CHANNEL_NAME" /> کی پیروی کر رہے ہیں</translation>
+<translation id="973493300226275298">تمام آن لائن اسٹورز پر پروڈکٹ کی قیمت ٹریک کریں۔ قیمت میں گراوٹ ہونے پر آپ کو الرٹس ملیں گے۔</translation>
 <translation id="980712131080209571">نئی</translation>
 <translation id="981498610235328462">آپ کی تنظیم آپ کو صرف مخصوص اکاؤنٹس کے ساتھ سائن ان کرنے کی اجازت دیتی ہے۔ جن اکاؤنٹس کی اجازت نہیں ہے وہ پوشیدہ ہیں۔</translation>
 <translation id="984509647832111802">مطابقت پذیری کام نہیں کر رہی ہے۔</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index c9575a5..eeff9fac 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Ichki oynani qadab qo‘yish</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> ta xatcho‘p ko‘chirildi</translation>
 <translation id="2122754583996902531">Bu brauzer nazorat ostida. <ph name="BEGIN_LINK" />Batafsil<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Narxga oid bildirishnomalar yoqilsinmi?</translation>
 <translation id="2139867232736819575">Nusxalangan matnni qidirish</translation>
 <translation id="214201757571129614">Kirish...</translation>
 <translation id="2149973817440762519">Xatcho‘p tahriri</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Tarixni koʻrsatish</translation>
 <translation id="2800683595868705743">Sahifalarni tezkor almashtirish funksiyasini o‘chirib qo‘yish</translation>
 <translation id="2815198996063984598">2. Standart brauzer ilovasi ustiga bosing</translation>
+<translation id="2822917246944009066">Varaq mahkamlandi</translation>
 <translation id="2830972654601096923">Manzillarni boshqarish...</translation>
 <translation id="2834399722155632105">3. Parol sozlamalarini bosing</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -897,6 +899,7 @@
 <translation id="7431991332293347422">Moslashtirilgan qidiruv, reklama va boshqa tashriflar tarixi parametrlarini tanlang</translation>
 <translation id="7435356471928173109">Administrator tomonidan faolsizlantirilgan</translation>
 <translation id="7438481509621345350">Endi yangi varaq ochilganda <ph name="CHANNEL_NAME" /> hikoyalari chiqadi.</translation>
+<translation id="7446583256109515732">Varaq olib tashlandi</translation>
 <translation id="7454057999980797137">Hudud</translation>
 <translation id="7459628154744868585">Kuchaytirilgan himoya yoniq</translation>
 <translation id="746684838091935575">3. Chrome brauzerini tanlang</translation>
@@ -1128,6 +1131,7 @@
 <translation id="9148126808321036104">Qaytadan kiring</translation>
 <translation id="9157836665414082580">Muloqot oynalarini bloklash</translation>
 <translation id="9162432979321511934">Parollar avtomatik kiritilishini yoqish</translation>
+<translation id="9165320910061267720">Narx tushishiga oid bildirishnomalar olish uchun iOS sozlamalari orqali bildirishnomalarni yoqishingiz kerak.</translation>
 <translation id="9177438225260810839">Ochiq varaqlar ichidan qidirish</translation>
 <translation id="9188680907066685419">Boshqariladigan hisobdan chiqish</translation>
 <translation id="9193147658040604536">Varaqni mahkamlash uchun tashlang</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index 8a6765e..3a69ae3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -159,6 +159,7 @@
 <translation id="21133533946938348">Ghim Thẻ</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> dấu trang đã được di chuyển</translation>
 <translation id="2122754583996902531">Trình duyệt của bạn thuộc diện quản lý. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation>
+<translation id="2139502497535990641">Bật Thông báo giá?</translation>
 <translation id="2139867232736819575">Tìm kiếm văn bản bạn đã sao chép</translation>
 <translation id="214201757571129614">Đăng nhập…</translation>
 <translation id="2149973817440762519">Chỉnh sửa dấu trang</translation>
@@ -250,6 +251,7 @@
 <translation id="2797029671965852011">Hiện nhật ký</translation>
 <translation id="2800683595868705743">Rời khỏi Trình chuyển đổi thẻ</translation>
 <translation id="2815198996063984598">2. Nhấn vào Ứng dụng trình duyệt mặc định</translation>
+<translation id="2822917246944009066">Đã ghim thẻ</translation>
 <translation id="2830972654601096923">Quản lý địa chỉ...</translation>
 <translation id="2834399722155632105">3. Nhấn vào Tuỳ chọn mật khẩu</translation>
 <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation>
@@ -314,6 +316,7 @@
 <translation id="3227137524299004712">Micrô</translation>
 <translation id="3240426699337459095">Đã sao chép đường liên kết</translation>
 <translation id="3244271242291266297">MM</translation>
+<translation id="3245744387817103524">Không thể lưu thay đổi của bạn.</translation>
 <translation id="3252394070589632019"><ph name="VALUE" />, <ph name="ADDITIONAL_INFO" />, <ph name="INDEX" /> trong số <ph name="NUM_SUGGESTIONS" /></translation>
 <translation id="3268451620468152448">Thẻ đang mở</translation>
 <translation id="3272527697863656322">Hủy</translation>
@@ -336,6 +339,7 @@
 <translation id="3445288400492335833"><ph name="MINUTES" /> phút</translation>
 <translation id="3448016392200048164">Chế độ xem phân tách</translation>
 <translation id="345565170154308620">Quản lý mật khẩu...</translation>
+<translation id="3464194322481586217">Không thể theo dõi giá này.</translation>
 <translation id="3469166899695866866">Dừng tải xuống?</translation>
 <translation id="3470502288861289375">Đang sao chép...</translation>
 <translation id="3474048842645761983">{COUNT,plural, =1{cho {COUNT} trang web hoặc ứng dụng}other{cho {COUNT} trang web và ứng dụng}}</translation>
@@ -763,6 +767,7 @@
 <translation id="6464397691496239022">Các trang web có thể dùng cookie để cải thiện trải nghiệm duyệt web của bạn, chẳng hạn như để duy trì trạng thái đăng nhập hoặc ghi nhớ những mặt hàng có trong giỏ hàng.
 
 Các trang web không thể dùng cookie để giám sát hoạt động duyệt web của bạn trên nhiều trang web, chẳng hạn như để điều chỉnh quảng cáo cho phù hợp với bạn.</translation>
+<translation id="6476253015009698798">Tính năng theo dõi giá không hoạt động trên trang này.</translation>
 <translation id="6476800141292307438">Đang dịch trang sang <ph name="LANGUAGE" />. Các tùy chọn nằm ở gần cuối màn hình.</translation>
 <translation id="648164694371393720">Lỗi xác thực</translation>
 <translation id="6482629121755362506"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> dấu trang đã bị xóa</translation>
@@ -814,6 +819,7 @@
 <translation id="6780034285637185932">Mã zip</translation>
 <translation id="6781260999953472352">Bật tính năng đồng bộ hoá?</translation>
 <translation id="6785453220513215166">Đang gửi báo cáo lỗi...</translation>
+<translation id="6790502149545262384">Bạn sẽ sớm thấy các tin bài của <ph name="CHANNEL_NAME" /> khi mở một thẻ mới.</translation>
 <translation id="6797885426782475225">Tìm kiếm bằng giọng nói</translation>
 <translation id="6801927553864092214">Để duyệt web ở chế độ riêng tư, hãy mở một thẻ Ẩn danh</translation>
 <translation id="6807889908376551050">Hiển thị tất cả...</translation>
@@ -893,6 +899,7 @@
 <translation id="7431991332293347422">Kiểm soát cách Google sử dụng nhật ký duyệt web của bạn để cá nhân hóa dịch vụ Tìm kiếm và các dịch vụ khác</translation>
 <translation id="7435356471928173109">Quản trị viên đã tắt</translation>
 <translation id="7438481509621345350">Giờ đây, bạn sẽ thấy các tin bài của <ph name="CHANNEL_NAME" /> khi mở một thẻ mới.</translation>
+<translation id="7446583256109515732">Đã bỏ ghim thẻ</translation>
 <translation id="7454057999980797137">Tiểu bang/quận</translation>
 <translation id="7459628154744868585">Chế độ Bảo vệ nâng cao đang Bật</translation>
 <translation id="746684838091935575">3. Chọn Chrome</translation>
@@ -1123,6 +1130,8 @@
 <translation id="9137526406337347448">Dịch vụ của Google</translation>
 <translation id="9148126808321036104">Đăng nhập lại</translation>
 <translation id="9157836665414082580">Hộp thoại loại bỏ</translation>
+<translation id="9162432979321511934">Bật tính năng Tự động điền mật khẩu</translation>
+<translation id="9165320910061267720">Để nhận thông báo khi có chương trình giảm giá, bạn cần bật thông báo trong phần cài đặt trên iOS.</translation>
 <translation id="9177438225260810839">Tìm kiếm các thẻ đang mở</translation>
 <translation id="9188680907066685419">Đăng xuất khỏi tài khoản được quản lý</translation>
 <translation id="9193147658040604536">Kéo vào đây để Ghim thẻ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
index ab45a22..3461c46 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -563,6 +563,7 @@
 <translation id="5118713593561876160">興趣</translation>
 <translation id="5118764316110575523">關閉</translation>
 <translation id="5119391094379141756">選取 [Chrome]</translation>
+<translation id="5121618895923301719">您已追蹤此產品。此網頁已儲存在「<ph name="BEGIN_LINK" />流動裝置書籤<ph name="END_LINK" />」中。</translation>
 <translation id="5132942445612118989">將您的書籤、密碼、記錄等資料同步至所有裝置</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} 個安全性弱的密碼}other{{COUNT} 個安全性弱的密碼}}</translation>
 <translation id="5149188072385105201">新增密碼…</translation>
@@ -593,6 +594,7 @@
 <translation id="5386314158584363703">此處會顯示您已追蹤的網站</translation>
 <translation id="5388358297987318779">開啟圖片</translation>
 <translation id="5407969256130905701">捨棄變更</translation>
+<translation id="5414763847370083940">如果產品在任何網站上降價,系統將通知您。</translation>
 <translation id="5416022985862681400">最近 7 天</translation>
 <translation id="5423269318075950257">追蹤價格</translation>
 <translation id="543338862236136125">修改密碼</translation>
@@ -1136,6 +1138,7 @@
 <translation id="952704832371081537">取消</translation>
 <translation id="953008885340860025">您已登出 Chrome</translation>
 <translation id="959066944189734975">您正在追蹤「<ph name="CHANNEL_NAME" />」</translation>
+<translation id="973493300226275298">追蹤產品在網上商店中的價格。如果產品降價,系統將通知您。</translation>
 <translation id="980712131080209571">新</translation>
 <translation id="981498610235328462">您的機構只允許您透過特定帳戶登入。系統已隱藏不適用的帳戶。</translation>
 <translation id="984509647832111802">同步功能無法正常運作。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
index 18a3f2250..d3c852f0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -561,6 +561,7 @@
 <translation id="5118713593561876160">興趣喜好</translation>
 <translation id="5118764316110575523">關閉</translation>
 <translation id="5119391094379141756">選取 [Chrome]</translation>
+<translation id="5121618895923301719">你已追蹤這項產品,這個頁面會儲存在<ph name="BEGIN_LINK" />行動裝置的書籤<ph name="END_LINK" />中。</translation>
 <translation id="5132942445612118989">同步處理你所有裝置上的密碼、歷史記錄和其他設定</translation>
 <translation id="5142890110117755815">{COUNT,plural, =1{{COUNT} 組密碼的強度太低}other{{COUNT} 組密碼的強度太低}}</translation>
 <translation id="5149188072385105201">新增密碼…</translation>
@@ -591,6 +592,7 @@
 <translation id="5386314158584363703">此處會顯示你已追蹤的網站</translation>
 <translation id="5388358297987318779">開啟圖片</translation>
 <translation id="5407969256130905701">捨棄變更</translation>
+<translation id="5414763847370083940">如果產品在任何網站上降價,系統會透過快訊通知你。</translation>
 <translation id="5416022985862681400">過去 7 天</translation>
 <translation id="5423269318075950257">追蹤價格</translation>
 <translation id="543338862236136125">修改密碼</translation>
@@ -1133,6 +1135,7 @@
 <translation id="952704832371081537">取消</translation>
 <translation id="953008885340860025">你已登出 Chrome</translation>
 <translation id="959066944189734975">你正在追蹤「<ph name="CHANNEL_NAME" />」</translation>
+<translation id="973493300226275298">追蹤產品在多個網路商店中的價格。如果產品降價,系統會透過快訊通知你。</translation>
 <translation id="980712131080209571">N</translation>
 <translation id="981498610235328462">貴機構規定你只能使用特定帳戶登入。系統已隱藏不適用的帳戶。</translation>
 <translation id="984509647832111802">同步功能無法正常運作。</translation>
diff --git a/ios/chrome/browser/autofill/automation/automation_egtest.mm b/ios/chrome/browser/autofill/automation/automation_egtest.mm
index fb55a4c7..74d1021 100644
--- a/ios/chrome/browser/autofill/automation/automation_egtest.mm
+++ b/ios/chrome/browser/autofill/automation/automation_egtest.mm
@@ -90,7 +90,7 @@
 - (AppLaunchConfiguration)appConfigurationForTestCase {
   AppLaunchConfiguration config;
   config.features_enabled.push_back(
-      autofill::features::kAutofillShowTypePredictions);
+      autofill::features::test::kAutofillShowTypePredictions);
   return config;
 }
 
diff --git a/ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_manager_browser_agent.h b/ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_manager_browser_agent.h
index 152e681..cb6177c 100644
--- a/ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_manager_browser_agent.h
+++ b/ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_manager_browser_agent.h
@@ -46,10 +46,10 @@
 
 class BreadcrumbManagerBrowserAgent
     : public breadcrumbs::BreadcrumbManagerBrowserAgent,
-      BrowserObserver,
+      public BrowserObserver,
       public OverlayPresenterObserver,
       public BrowserUserData<BreadcrumbManagerBrowserAgent>,
-      WebStateListObserver {
+      public WebStateListObserver {
  public:
   BreadcrumbManagerBrowserAgent(const BreadcrumbManagerBrowserAgent&) = delete;
   BreadcrumbManagerBrowserAgent& operator=(
diff --git a/ios/chrome/browser/device_sharing/device_sharing_browser_agent.h b/ios/chrome/browser/device_sharing/device_sharing_browser_agent.h
index 0fd1c47..23444b6 100644
--- a/ios/chrome/browser/device_sharing/device_sharing_browser_agent.h
+++ b/ios/chrome/browser/device_sharing/device_sharing_browser_agent.h
@@ -19,8 +19,8 @@
 // browser states, all updates clear the shared URL.
 class DeviceSharingBrowserAgent
     : public BrowserUserData<DeviceSharingBrowserAgent>,
-      WebStateListObserver,
-      BrowserObserver,
+      public WebStateListObserver,
+      public BrowserObserver,
       public web::WebStateObserver {
  public:
   // Not copyable or moveable
diff --git a/ios/chrome/browser/find_in_page/BUILD.gn b/ios/chrome/browser/find_in_page/BUILD.gn
index e148989..f71b0e5 100644
--- a/ios/chrome/browser/find_in_page/BUILD.gn
+++ b/ios/chrome/browser/find_in_page/BUILD.gn
@@ -59,6 +59,30 @@
   public_deps = [ "//base:base" ]
 }
 
+source_set("eg2_tests") {
+  configs += [
+    "//build/config/compiler:enable_arc",
+    "//build/config/ios:xctest_config",
+  ]
+  testonly = true
+  sources = [
+    "find_in_page_egtest.h",
+    "find_in_page_egtest.mm",
+  ]
+  deps = [
+    ":eg_test_support+eg2",
+    "//ios/chrome/browser/find_in_page:features",
+    "//ios/chrome/browser/ui/find_bar:constants",
+    "//ios/chrome/browser/ui/popup_menu:constants",
+    "//ios/chrome/test/earl_grey:eg_test_support+eg2",
+    "//ios/testing/earl_grey:eg_test_support+eg2",
+    "//ios/web/public/test:element_selector",
+    "//ios/web/public/test/http_server:http_server",
+    "//net:test_support",
+  ]
+  frameworks = [ "UIKit.framework" ]
+}
+
 source_set("eg_app_support+eg2") {
   configs += [
     "//build/config/compiler:enable_arc",
diff --git a/ios/chrome/browser/find_in_page/find_in_page_egtest.h b/ios/chrome/browser/find_in_page/find_in_page_egtest.h
new file mode 100644
index 0000000..8710521
--- /dev/null
+++ b/ios/chrome/browser/find_in_page/find_in_page_egtest.h
@@ -0,0 +1,140 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_FIND_IN_PAGE_FIND_IN_PAGE_EGTEST_H_
+#define IOS_CHROME_BROWSER_FIND_IN_PAGE_FIND_IN_PAGE_EGTEST_H_
+
+#import <Foundation/Foundation.h>
+
+namespace net {
+namespace test_server {
+class EmbeddedTestServer;
+}
+}  // namespace net
+
+@protocol GREYMatcher;
+
+// Constants for Find in Page test content.
+extern const char kFindInPageTestRepeatingText[];
+extern const char kFindInPageTestShortTextID[];
+extern const char kFindInPageTestShortText[];
+extern const char kFindInPageTestLongText[];
+extern const char kFindInPageTestSpecialCharactersText[];
+extern const char kFindInPageTestNumbersText[];
+extern const char kFindInPageTestAlphanumericText[];
+extern const char kFindInPageTestNonASCIIText[];
+extern const char kFindInPageTestWithSpanishAccentText[];
+extern const char kFindInPageTestWithoutSpanishAccentText[];
+extern const char kFindInPageTestLowercaseAndUppercaseText[];
+extern const char kFindInPageTestRTLText[];
+
+// Relative URLs for testing purposes.
+extern const char kFindInPageTestURL[];
+extern const char kFindInPageCrossOriginFrameTestURL[];
+extern const char kFindInPageComplexPDFTestURL[];
+
+// Test helper for Native Find in Page. This tests the variant of Native Find in
+// Page with a Find interaction i.e. with the system UI or Find navigator. It
+// can be subclassed to create a helper for the Chrome Find Bar variant of
+// Native Find in Page i.e. without a Find interaction. Many tests use the
+// `secondTestServer` to ensure what is being tested also works with
+// cross-origin iframes.
+@interface FindInPageTestCaseHelper : NSObject
+
+// First test server.
+@property(nonatomic, assign) net::test_server::EmbeddedTestServer* testServer;
+
+// Sets up two test servers to test Find in Page on web pages which might
+// contain cross-origin iframes.
+- (void)setUpTestServersForWebPageTest;
+// Second test server so cross-origin iframes can be tested together with
+// ChromeTestCase's `testServer`.
+- (net::test_server::EmbeddedTestServer*)secondTestServer;
+// Opens Find in Page.
+- (void)openFindInPageWithOverflowMenu;
+// Closes Find in page.
+- (void)closeFindInPageWithDoneButton;
+// Types text into Find in page textfield.
+- (void)typeFindInPageText:(NSString*)text;
+// Clear text in Find in Page text field.
+- (void)clearFindInPageText;
+// Matcher for find in page textfield.
+- (id<GREYMatcher>)findInPageInputField;
+// Matcher similar to `grey_text` but more generic i.e. only looks at `hasText`
+// prefix.
+- (id<GREYMatcher>)matcherForText:(NSString*)text;
+// Asserts that there is a string "`resultIndex` of `resultCount`" present in
+// the results count label. Waits for up to 1 second for this to happen.
+- (void)assertResultStringIsResult:(int)resultIndex outOfTotal:(int)resultCount;
+// Asserts that there is a string "0 of 0" present in the results count label,
+// or that the label is not visible. Waits for up to 1 second for this to
+// happen.
+- (void)assertResultStringIsEmptyOrZero;
+// Asserts that there is a string in the results count label, that is not "0 of
+// 0". Waits for up to 1 second for this to happen.
+- (void)assertResultStringIsNonZero;
+// Taps Next button in Find in page.
+- (void)advanceToNextResult;
+// Taps Previous button in Find in page.
+- (void)advanceToPreviousResult;
+
+#pragma mark - Test scenarios
+
+// Tests that FIP can be opened with Overflow menu.
+- (void)helperTestFindInPageFromOverflowMenu;
+// Tests that characters appear in the search box and that results UI updates as
+// each characters is entered/deleted.
+- (void)helperTestFindInPageTextInput;
+// Tests that the number of results for a query accounts for all the matches
+// across frames, here with a main frame and a cross-origin iframe.
+- (void)helperTestFindInPageSupportsCrossOriginFrame;
+// Tests that FIP can find different types of characters: special characters,
+// number, strings with both letters and numbers as well as non-ASCII
+// characters.
+- (void)helperTestFindInPageSpecialCharacters;
+// Tests that text can be copied from the web page and pasted into the FIP input
+// field and that the results UI updates accordingly.
+- (void)helperTestFindInPageCopyPaste;
+// Tests that FIP yields no results for an empty search query.
+- (void)helperTestFindInPageEmptySearchQuery;
+// Tests that FIP yields no results for a non-empty query with no matches in the
+// page.
+- (void)helperTestFindInPageQueryWithNoMatches;
+// Tests that FIP yields no matches for a text with spanish accents e.g. 'á' if
+// the web page contains the same text without spanish accents e.g. 'a'. This
+// test assumes removing accents from `kFindInPageTestWithSpanishAccentText`
+// yields `kFindInPageTestWithoutSpanishAccentText`.
+- (void)helperTestFindInPageDifferentAccent;
+// Test that there is no query persistence with this variant of Native Find in
+// Page i.e. with Find interaction.
+- (void)helperTestFindInPageHistory;
+// Tests that there is no query persistence from an non-Incognito to an
+// Incognito tab.
+- (void)helperTestFindInPageNormalToIncognito;
+// Tests that Next/Previous buttons work and wrap.
+- (void)helperTestFindInPageNextPreviousArrows;
+// Tests the various ways to dismiss the keyboard during a Find session.
+- (void)helperTestFindInPageDismissKeyboard;
+// Tests that FIP can find long strings of characters.
+- (void)helperTestFindInPageLongString;
+// Tests that FIP is not case sensitive.
+- (void)helperTestFindInPageNotCaseSensitive;
+// Tests that there is no leak of the FIP search query from Incognito tabs to
+// normal tabs.
+- (void)helperTestFindInPageIncognitoHistory;
+// Tests that there is no query persistence when coming back to a normal tab
+// after switching temporarily to another tab.
+- (void)helperTestFindInPageSwitchingTabs;
+// Tests that FIP can find RTL text in a web page.
+- (void)helperTestFindInPageRTL;
+// Tests that Find in Page can find matches in an Incognito tab.
+- (void)helperTestFindInPageIncognito;
+// Tests accessibility of the Find in Page screen.
+- (void)helperTestFindInPageAccessibility;
+// Tests that Native Find in Page works as expected for PDF documents.
+- (void)helperTestFindInPagePDF;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_FIND_IN_PAGE_FIND_IN_PAGE_EGTEST_H_
diff --git a/ios/chrome/browser/find_in_page/find_in_page_egtest.mm b/ios/chrome/browser/find_in_page/find_in_page_egtest.mm
new file mode 100644
index 0000000..f7e863a
--- /dev/null
+++ b/ios/chrome/browser/find_in_page/find_in_page_egtest.mm
@@ -0,0 +1,1049 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/find_in_page/find_in_page_egtest.h"
+
+#import <XCTest/XCTest.h>
+
+#import <sstream>
+
+#import "base/test/ios/wait_util.h"
+#import "ios/chrome/browser/find_in_page/features.h"
+#import "ios/chrome/browser/find_in_page/find_in_page_app_interface.h"
+#import "ios/chrome/browser/ui/find_bar/find_bar_constants.h"
+#import "ios/chrome/browser/ui/popup_menu/popup_menu_constants.h"
+#import "ios/chrome/test/earl_grey/chrome_actions.h"
+#import "ios/chrome/test/earl_grey/chrome_earl_grey.h"
+#import "ios/chrome/test/earl_grey/chrome_earl_grey_ui.h"
+#import "ios/chrome/test/earl_grey/chrome_matchers.h"
+#import "ios/chrome/test/earl_grey/chrome_test_case.h"
+#import "ios/chrome/test/earl_grey/chrome_xcui_actions.h"
+#import "ios/testing/earl_grey/app_launch_manager.h"
+#import "ios/testing/earl_grey/earl_grey_test.h"
+#import "ios/web/public/test/element_selector.h"
+#import "net/test/embedded_test_server/embedded_test_server.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+const char kFindInPageTestRepeatingText[] = "repeating";
+const char kFindInPageTestShortTextID[] = "shortText";
+const char kFindInPageTestShortText[] = "ShortQuery";
+const char kFindInPageTestLongText[] =
+    "This is a particularly long string with a great number of characters";
+const char kFindInPageTestSpecialCharactersText[] = "!@#$%^&*()_+";
+const char kFindInPageTestNumbersText[] = "1234567890";
+const char kFindInPageTestAlphanumericText[] = "f00bar";
+const char kFindInPageTestNonASCIIText[] = "大家好🦑";
+const char kFindInPageTestWithSpanishAccentText[] = "á";
+const char kFindInPageTestWithoutSpanishAccentText[] = "a";
+const char kFindInPageTestLowercaseAndUppercaseText[] =
+    "ThIs tExT Is bOtH UpPeRcAsE AnD LoWeRcAsE";
+const char kFindInPageTestRTLText[] = "He said \"שלם\" (shalom] to me.";
+
+const char kFindInPageTestURL[] = "/findinpage.html";
+const char kFindInPageCrossOriginFrameTestURL[] = "/crossorigin.html";
+const char kFindInPageComplexPDFTestURL[] = "/complex_document.pdf";
+
+namespace {
+
+// Returns the test content for different test cases.
+std::string FindInPageTestContent() {
+  std::ostringstream oss;
+  oss << "<div>";
+  oss << "Text that repeats: " << kFindInPageTestRepeatingText
+      << kFindInPageTestRepeatingText << "</p>";
+  oss << "  <p id=\"" << kFindInPageTestShortTextID << "\">"
+      << kFindInPageTestShortText << "</p>";
+  oss << "  <p>" << kFindInPageTestLongText << "</p>";
+  oss << "  <p>Special characters: " << kFindInPageTestSpecialCharactersText
+      << "</p>";
+  oss << "  <p>Numbers: " << kFindInPageTestNumbersText << "</p>";
+  oss << "  <p>Alphanumeric text: " << kFindInPageTestAlphanumericText
+      << "</p>";
+  oss << "  <p>Non-ASCII text: " << kFindInPageTestNonASCIIText << "</p>";
+  oss << "  <p>Text without spanish accent: "
+      << kFindInPageTestWithoutSpanishAccentText << "</p>";
+  oss << "  <p>Case sensitivity: " << kFindInPageTestLowercaseAndUppercaseText
+      << "</p>";
+  oss << "  <p dir=\"RTL\">" << kFindInPageTestRTLText << "</p>";
+  oss << "  <div>";
+  oss << "</div>";
+  return oss.str();
+}
+
+// Response handler that serves a test page for Find in Page.
+std::unique_ptr<net::test_server::HttpResponse> FindInPageTestPageHttpResponse(
+    const net::test_server::HttpRequest& request) {
+  if (request.relative_url != kFindInPageTestURL) {
+    return nullptr;
+  }
+  std::unique_ptr<net::test_server::BasicHttpResponse> http_response =
+      std::make_unique<net::test_server::BasicHttpResponse>();
+  http_response->set_code(net::HTTP_OK);
+  http_response->set_content(
+      "<html><head><meta charset=\"UTF-8\"></head><body>" +
+      FindInPageTestContent() + "</body></html>");
+  return std::move(http_response);
+}
+
+// Response handler that serves a test page with a cross-origin iframe for Find
+// in Page. `sourceURL` is used as `src` for the iframe.
+std::unique_ptr<net::test_server::HttpResponse>
+FindInPageTestCrossOriginFramePageHttpResponse(
+    const GURL& sourceURL,
+    const net::test_server::HttpRequest& request) {
+  if (request.relative_url != kFindInPageCrossOriginFrameTestURL) {
+    return nullptr;
+  }
+  std::unique_ptr<net::test_server::BasicHttpResponse> http_response =
+      std::make_unique<net::test_server::BasicHttpResponse>();
+  http_response->set_code(net::HTTP_OK);
+  http_response->set_content(
+      "<html><head><meta charset=\"UTF-8\"></head><body>" +
+      FindInPageTestContent() + "<iframe src=\"" + sourceURL.spec() +
+      "\"></iframe></body></html>");
+  return std::move(http_response);
+}
+
+// Constants to identify the Find navigator UI components in the view hierarchy.
+constexpr char kFindInPageDoneButtonID[] = "find.doneButton";
+constexpr char kFindInPageSearchFieldID[] = "find.searchField";
+constexpr char kFindInPageResultLabelID[] = "find.resultLabel";
+constexpr char kFindInPageNextButtonID[] = "find.nextButton";
+constexpr char kFindInPagePreviousButtonID[] = "find.previousButton";
+constexpr char kFindInPageClearButtonKindOfClassName[] =
+    "_UITextFieldClearButton";
+
+// Returns Paste button matcher from UIMenuController.
+id<GREYMatcher> PasteButton() {
+  NSString* a11yLabelPaste = @"Paste";
+  return grey_allOf(grey_accessibilityLabel(a11yLabelPaste),
+                    chrome_test_util::SystemSelectionCallout(), nil);
+}
+
+// Long presses on `element_id` to trigger context menu.
+void LongPressElement(const char* element_id) {
+  [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewMatcher()]
+      performAction:chrome_test_util::LongPressElementForContextMenu(
+                        [ElementSelector selectorWithElementID:element_id],
+                        true /* menu should appear */)];
+}
+
+}  // namespace
+
+@implementation FindInPageTestCaseHelper {
+  // Second test server for cross-origin iframe tests.
+  std::unique_ptr<net::test_server::EmbeddedTestServer> _secondTestServer;
+}
+
+- (void)setUpTestServersForWebPageTest {
+  // Set up first server to test Find in Page content.
+  self.testServer->RegisterRequestHandler(
+      base::BindRepeating(&FindInPageTestPageHttpResponse));
+  GREYAssertTrue(self.testServer->Start(), @"Server did not start.");
+
+  // Set up second server for cross-origin iframe tests.
+  GURL sourceURLForFrame = self.testServer->GetURL(kFindInPageTestURL);
+  _secondTestServer = std::make_unique<net::test_server::EmbeddedTestServer>();
+  [self secondTestServer]->RegisterRequestHandler(base::BindRepeating(
+      &FindInPageTestCrossOriginFramePageHttpResponse, sourceURLForFrame));
+  GREYAssertTrue([self secondTestServer]->Start(),
+                 @"Second test server serving page with iframe did not start.");
+}
+
+- (net::test_server::EmbeddedTestServer*)secondTestServer {
+  return _secondTestServer.get();
+}
+
+- (void)setUpTestServerForPDFTest {
+  // This is sufficient to ensure `ios/testing/data/http_server_files/` file
+  // system directory is being served, as this is the default configuration.
+  GREYAssertTrue(self.testServer->Start(), @"Server did not start.");
+}
+
+- (void)openFindInPageWithOverflowMenu {
+  [ChromeEarlGreyUI openToolsMenu];
+
+  id<GREYMatcher> tableViewMatcher =
+      [ChromeEarlGrey isNewOverflowMenuEnabled]
+          ? grey_accessibilityID(kPopupMenuToolsMenuActionListId)
+          : grey_accessibilityID(kPopupMenuToolsMenuTableViewId);
+  [[[EarlGrey
+      selectElementWithMatcher:grey_allOf(
+                                   grey_accessibilityID(kToolsMenuFindInPageId),
+                                   grey_sufficientlyVisible(), nil)]
+         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 250)
+      onElementWithMatcher:tableViewMatcher] performAction:grey_tap()];
+  [ChromeEarlGrey
+      waitForSufficientlyVisibleElementWithMatcher:[self findInPageInputField]];
+  [ChromeEarlGreyUI waitForAppToIdle];
+}
+
+- (void)closeFindInPageWithDoneButton {
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(@(kFindInPageDoneButtonID))]
+      performAction:grey_tap()];
+}
+
+- (void)typeFindInPageText:(NSString*)text {
+  [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+      performAction:grey_typeText(text)];
+}
+
+- (void)pasteTextToFindInPage:(NSString*)text {
+  [ChromeEarlGrey copyTextToPasteboard:text];
+  [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+      performAction:grey_tap()];
+  [[EarlGrey selectElementWithMatcher:PasteButton()] performAction:grey_tap()];
+}
+
+- (void)clearFindInPageText {
+  [[EarlGrey
+      selectElementWithMatcher:grey_kindOfClassName(
+                                   @(kFindInPageClearButtonKindOfClassName))]
+      performAction:grey_tap()];
+}
+
+- (id<GREYMatcher>)findInPageInputField {
+  return grey_accessibilityID(@(kFindInPageSearchFieldID));
+}
+
+- (id<GREYMatcher>)matcherForText:(NSString*)text {
+  NSString* prefix = @"hasText";
+  GREYMatchesBlock matchesBlock = ^BOOL(id element) {
+    return [[element text] isEqualToString:text];
+  };
+
+  GREYDescribeToBlock describeToBlock = ^void(id<GREYDescription> description) {
+    [description
+        appendText:[NSString stringWithFormat:@"%@('%@')", prefix, text]];
+  };
+  // A matcher for non-SwiftUI elements
+  id<GREYMatcher> matcher =
+      [[GREYElementMatcherBlock alloc] initWithMatchesBlock:matchesBlock
+                                           descriptionBlock:describeToBlock];
+  return matcher;
+}
+
+- (void)assertResultStringIsResult:(int)resultIndex
+                        outOfTotal:(int)resultCount {
+  // Returns "<current> of <total>" search results label (e.g "1 of 5").
+  NSString* expectedResultsString =
+      [NSString stringWithFormat:@"%d of %d", resultIndex, resultCount];
+
+  ConditionBlock condition = ^{
+    NSError* error = nil;
+    [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
+                                            @(kFindInPageResultLabelID))]
+        assertWithMatcher:chrome_test_util::StaticTextWithAccessibilityLabel(
+                              expectedResultsString)
+                    error:&error];
+    return (error == nil);
+  };
+  GREYAssert(
+      base::test::ios::WaitUntilConditionOrTimeout(base::Seconds(1), condition),
+      @"Timeout waiting for correct Find in Page results string to appear");
+}
+
+- (void)assertResultStringIsEmptyOrZero {
+  ConditionBlock condition = ^{
+    NSError* error = nil;
+    [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
+                                            @(kFindInPageResultLabelID))]
+        assertWithMatcher:
+            grey_anyOf(chrome_test_util::StaticTextWithAccessibilityLabel(@"0"),
+                       grey_notVisible(), nil)
+                    error:&error];
+    return (error == nil);
+  };
+  GREYAssert(
+      base::test::ios::WaitUntilConditionOrTimeout(base::Seconds(1), condition),
+      @"Timeout waiting for correct Find in Page results string to appear");
+}
+
+- (void)assertResultStringIsNonZero {
+  ConditionBlock condition = ^{
+    NSError* error = nil;
+    [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
+                                            @(kFindInPageResultLabelID))]
+        assertWithMatcher:
+            grey_not(grey_anyOf(
+                chrome_test_util::StaticTextWithAccessibilityLabel(@"0"),
+                grey_notVisible(), nil))
+                    error:&error];
+    return (error == nil);
+  };
+  GREYAssert(
+      base::test::ios::WaitUntilConditionOrTimeout(base::Seconds(1), condition),
+      @"Timeout waiting for correct Find in Page results string to appear");
+}
+
+- (void)advanceToNextResult {
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(@(kFindInPageNextButtonID))]
+      performAction:grey_tap()];
+}
+
+- (void)advanceToPreviousResult {
+  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
+                                          @(kFindInPagePreviousButtonID))]
+      performAction:grey_tap()];
+}
+
+// Tests that FIP can be opened with Overflow menu.
+- (void)helperTestFindInPageFromOverflowMenu {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page.
+    GURL destinationURL = self.testServer->GetURL(kFindInPageTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP with Overflow menu and check it is visible.
+    [self openFindInPageWithOverflowMenu];
+    [ChromeEarlGrey
+        waitForSufficientlyVisibleElementWithMatcher:[self
+                                                         findInPageInputField]];
+  }
+}
+
+// Tests that characters appear in the search box and that results UI updates as
+// each characters is entered/deleted.
+- (void)helperTestFindInPageTextInput {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page.
+    GURL destinationURL = self.testServer->GetURL(kFindInPageTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP.
+    [self openFindInPageWithOverflowMenu];
+    // Test the result string is empty or "0".
+    [self assertResultStringIsEmptyOrZero];
+
+    [self typeFindInPageText:@(kFindInPageTestRepeatingText)];
+    // Test the input field contains the text that was just typed.
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self
+                              matcherForText:@(kFindInPageTestRepeatingText)]];
+    // Test the result UI is updated accordingly.
+    [self assertResultStringIsResult:1 outOfTotal:2];
+
+    [self typeFindInPageText:@(kFindInPageTestRepeatingText)];
+    [self assertResultStringIsResult:1 outOfTotal:1];
+
+    [self typeFindInPageText:@(kFindInPageTestRepeatingText)];
+    [self assertResultStringIsEmptyOrZero];
+
+    [self clearFindInPageText];
+    [self assertResultStringIsEmptyOrZero];
+  }
+}
+
+// Tests that the number of results for a query accounts for all the matches
+// across frames, here with a main frame and a cross-origin iframe.
+- (void)helperTestFindInPageSupportsCrossOriginFrame {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP.
+    [self openFindInPageWithOverflowMenu];
+    [self assertResultStringIsEmptyOrZero];
+
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+    // Tests there are two matches: one is in the main frame, the other in the
+    // cross-origin iframe.
+    [self assertResultStringIsResult:1 outOfTotal:2];
+
+    [self advanceToNextResult];
+    // Tests that the second match can be navigated to.
+    [self assertResultStringIsResult:2 outOfTotal:2];
+  }
+}
+
+// Tests that FIP can find different types of characters: special characters,
+// number, strings with both letters and numbers as well as non-ASCII
+// characters.
+- (void)helperTestFindInPageSpecialCharacters {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP.
+    [self openFindInPageWithOverflowMenu];
+    [self assertResultStringIsEmptyOrZero];
+
+    // Tests special characters.
+    [self typeFindInPageText:@(kFindInPageTestSpecialCharactersText)];
+    [self assertResultStringIsResult:1 outOfTotal:2];
+
+    // Tests numbers.
+    [self clearFindInPageText];
+    [self typeFindInPageText:@(kFindInPageTestNumbersText)];
+    [self assertResultStringIsResult:1 outOfTotal:2];
+
+    // Tests alphanumeric values.
+    [self clearFindInPageText];
+    [self typeFindInPageText:@(kFindInPageTestAlphanumericText)];
+    [self assertResultStringIsResult:1 outOfTotal:2];
+
+    // Tests non-ASCII characters.
+    [self clearFindInPageText];
+    [self pasteTextToFindInPage:@(kFindInPageTestNonASCIIText)];
+    [self assertResultStringIsResult:1 outOfTotal:2];
+  }
+}
+
+// Tests that text can be copied from the web page and pasted into the FIP input
+// field and that the results UI updates accordingly.
+- (void)helperTestFindInPageCopyPaste {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page.
+    GURL destinationURL = self.testServer->GetURL(kFindInPageTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Select and copy text on the web page.
+    LongPressElement(kFindInPageTestShortTextID);
+    [[EarlGrey selectElementWithMatcher:chrome_test_util::
+                                            SystemSelectionCalloutCopyButton()]
+        performAction:grey_tap()];
+
+    // Open FIP.
+    [self openFindInPageWithOverflowMenu];
+
+    // Paste content of pasteboard in the FIP text field.
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        performAction:grey_tap()];
+    [[EarlGrey selectElementWithMatcher:PasteButton()]
+        performAction:grey_tap()];
+
+    // Tests that the number of results is updated accordingly.
+    [self assertResultStringIsResult:1 outOfTotal:1];
+  }
+}
+
+// Tests that FIP yields no results for an empty search query.
+- (void)helperTestFindInPageEmptySearchQuery {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP.
+    [self openFindInPageWithOverflowMenu];
+
+    // Assert that searching text from the page yields results.
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+    [self assertResultStringIsNonZero];
+
+    // Test that the number of results is zero after clearing the FIP text
+    // field.
+    [self clearFindInPageText];
+    [self assertResultStringIsEmptyOrZero];
+  }
+}
+
+// Tests that FIP yields no results for a non-empty query with no matches in the
+// page.
+- (void)helperTestFindInPageQueryWithNoMatches {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and type text that is not in the page.
+    const char* queryWithNoMatches =
+        "example query which should not match with the content of the page";
+    [ChromeEarlGrey waitForWebStateNotContainingText:queryWithNoMatches];
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(queryWithNoMatches)];
+    // Test the result label shows no results.
+    [self assertResultStringIsEmptyOrZero];
+  }
+}
+
+// Tests that FIP yields no matches for a text with spanish accents e.g. 'á' if
+// the web page contains the same text without spanish accents e.g. 'a'. This
+// test assumes removing accents from `kFindInPageTestWithSpanishAccentText`
+// yields `kFindInPageTestWithoutSpanishAccentText`.
+- (void)helperTestFindInPageDifferentAccent {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Assert the text without accent is there but the text with accents does
+    // not match.
+    [ChromeEarlGrey
+        waitForWebStateContainingText:kFindInPageTestWithoutSpanishAccentText];
+    [ChromeEarlGrey
+        waitForWebStateNotContainingText:kFindInPageTestWithSpanishAccentText];
+
+    // Open FIP and assert that text with no accents yields matches.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestWithoutSpanishAccentText)];
+    [self assertResultStringIsNonZero];
+
+    // Replace the text without spanish accent with the same text with spanish
+    // accents and test that there are no more matches.
+    [self clearFindInPageText];
+    [self pasteTextToFindInPage:@(kFindInPageTestWithSpanishAccentText)];
+    [self assertResultStringIsEmptyOrZero];
+  }
+}
+
+// Test that there is no query persistence with this variant of Native Find in
+// Page i.e. with Find interaction.
+- (void)helperTestFindInPageHistory {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and test the input field is empty.
+    [self openFindInPageWithOverflowMenu];
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@""]];
+
+    // Type a query and assert it is contained in the input field before closing
+    // FIP.
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@(kFindInPageTestShortText)]];
+    [self closeFindInPageWithDoneButton];
+
+    // Open FIP again and test it is empty again (no query persistence).
+    [self openFindInPageWithOverflowMenu];
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@""]];
+
+    // Open the same URL in a different non-Incognito tab.
+    [ChromeEarlGrey openNewTab];
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP in this new tab and test there is no query persistence.
+    [self openFindInPageWithOverflowMenu];
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@""]];
+  }
+}
+
+// Tests that there is no query persistence from an non-Incognito to an
+// Incognito tab.
+- (void)helperTestFindInPageNormalToIncognito {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and type short query.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+
+    // Load same URL in a new Incognito tab.
+    [ChromeEarlGrey openNewIncognitoTab];
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and test the input field is empty.
+    [self openFindInPageWithOverflowMenu];
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@""]];
+  }
+}
+
+// Tests that switching orientation during a Find session does not throw away
+// the query or the current results.
+- (void)helperTestFindInPageSwitchOrientation {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP, type short query, move to second match and wait for expected
+    // results.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+    [self advanceToNextResult];
+    [self assertResultStringIsResult:2 outOfTotal:2];
+
+    // Switch to landscape.
+    GREYAssert(
+        [EarlGrey rotateDeviceToOrientation:UIDeviceOrientationLandscapeLeft
+                                      error:nil],
+        @"Could not rotate device to Landscape Left");
+
+    // Test the query is still there will the same result.
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@(kFindInPageTestShortText)]];
+    [self assertResultStringIsResult:2 outOfTotal:2];
+
+    // Switch back to portrait.
+    GREYAssert([EarlGrey rotateDeviceToOrientation:UIDeviceOrientationPortrait
+                                             error:nil],
+               @"Could not rotate device to Portrait");
+
+    // Test the query is still there will the same result.
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@(kFindInPageTestShortText)]];
+    [self assertResultStringIsResult:2 outOfTotal:2];
+  }
+}
+
+// Tests that Next/Previous buttons work and wrap.
+- (void)helperTestFindInPageNextPreviousArrows {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and type query with four expected matches.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestRepeatingText)];
+    [self assertResultStringIsResult:1 outOfTotal:4];
+
+    // Test that tapping "Next" button works and wraps.
+    [self advanceToNextResult];
+    [self assertResultStringIsResult:2 outOfTotal:4];
+    [self advanceToNextResult];
+    [self assertResultStringIsResult:3 outOfTotal:4];
+    [self advanceToNextResult];
+    [self assertResultStringIsResult:4 outOfTotal:4];
+    [self advanceToNextResult];
+    [self assertResultStringIsResult:1 outOfTotal:4];
+
+    // Test that tapping "Previous" button also works and wraps.
+    [self advanceToPreviousResult];
+    [self assertResultStringIsResult:4 outOfTotal:4];
+    [self advanceToPreviousResult];
+    [self assertResultStringIsResult:3 outOfTotal:4];
+  }
+}
+
+// Tests the various ways to dismiss the keyboard during a Find session.
+- (void)helperTestFindInPageDismissKeyboard {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and type short query.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+
+    // Tap Done button and test the keyboard is dismissed as a result.
+    [self closeFindInPageWithDoneButton];
+    GREYAssertFalse([EarlGrey isKeyboardShownWithError:nil],
+                    @"Keyboard Should be Hidden");
+
+    // Open FIP and type short query again.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+
+    // Tap an element on the page and test the keyboard is dismissed as a
+    // result.
+    [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewMatcher()]
+        performAction:chrome_test_util::TapWebElementWithId(
+                          kFindInPageTestShortTextID)];
+    GREYAssertFalse([EarlGrey isKeyboardShownWithError:nil],
+                    @"Keyboard Should be Hidden");
+  }
+}
+
+// Tests that FIP can find long strings of characters.
+- (void)helperTestFindInPageLongString {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and type short query.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestLongText)];
+
+    // Test the number of results is as expected.
+    [self assertResultStringIsResult:1 outOfTotal:2];
+  }
+}
+
+// Tests that FIP is not case sensitive.
+- (void)helperTestFindInPageNotCaseSensitive {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Assert the page contains string that is both lowercase and uppercase.
+    [ChromeEarlGrey
+        waitForWebStateContainingText:kFindInPageTestLowercaseAndUppercaseText];
+
+    // Open FIP and type lowercase version of contained text.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:[@(kFindInPageTestLowercaseAndUppercaseText)
+                                 lowercaseString]];
+    // Test the number of results is as expected.
+    [self assertResultStringIsResult:1 outOfTotal:2];
+
+    // Clear input field and type uppercase version of contained text.
+    [self clearFindInPageText];
+    [self typeFindInPageText:[@(kFindInPageTestLowercaseAndUppercaseText)
+                                 uppercaseString]];
+    // Test the number of results is as expected.
+    [self assertResultStringIsResult:1 outOfTotal:2];
+  }
+}
+
+// Tests that there is no leak of the FIP search query from Incognito tabs to
+// normal tabs.
+- (void)helperTestFindInPageIncognitoHistory {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe in new Incognito tab.
+    [ChromeEarlGrey openNewIncognitoTab];
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and type short query.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+
+    // Open a new normal tab and load the same URL.
+    [ChromeEarlGrey openNewTab];
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP again and test the input field is empty.
+    [self openFindInPageWithOverflowMenu];
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@""]];
+  }
+}
+
+// Tests that there is no query persistence when coming back to a normal tab
+// after switching temporarily to another tab.
+- (void)helperTestFindInPageSwitchingTabs {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe in a second normal tab.
+    [ChromeEarlGrey openNewTab];
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and type short query.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+
+    // Switching to first tab and then back to second tab.
+    [ChromeEarlGrey selectTabAtIndex:0];
+    [ChromeEarlGrey selectTabAtIndex:1];
+
+    // Test that there is no query persistence (input field is empty).
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@""]];
+  }
+}
+
+// Tests that FIP can find RTL text in a web page.
+- (void)helperTestFindInPageRTL {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP, type RTL text and test that the results are as expected.
+    [self openFindInPageWithOverflowMenu];
+    [self pasteTextToFindInPage:@(kFindInPageTestRTLText)];
+    [self assertResultStringIsResult:1 outOfTotal:2];
+  }
+}
+
+// Tests that Find in Page can find matches in an Incognito tab.
+- (void)helperTestFindInPageIncognito {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe in a new Incognito tab.
+    [ChromeEarlGrey openNewIncognitoTab];
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP, type text contained in test page and test that the results are
+    // as expected.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+    [self assertResultStringIsResult:1 outOfTotal:2];
+  }
+}
+
+// Tests accessibility of the Find in Page screen.
+- (void)helperTestFindInPageAccessibility {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServersForWebPageTest];
+
+    // Load test page with cross-origin iframe.
+    GURL destinationURL =
+        [self secondTestServer]->GetURL(kFindInPageCrossOriginFrameTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP, type query and check the expected number of results.
+    [self openFindInPageWithOverflowMenu];
+    [self typeFindInPageText:@(kFindInPageTestShortText)];
+    [self assertResultStringIsResult:1 outOfTotal:2];
+
+    // Test accessibility.
+    [ChromeEarlGrey verifyAccessibilityForCurrentScreen];
+  }
+}
+
+// Tests that Native Find in Page works as expected for PDF documents.
+- (void)helperTestFindInPagePDF {
+  if (@available(iOS 16.1.1, *)) {
+    [self setUpTestServerForPDFTest];
+
+    // Load test PDF document.
+    GURL destinationURL = self.testServer->GetURL(kFindInPageComplexPDFTestURL);
+    [ChromeEarlGrey loadURL:destinationURL];
+
+    // Open FIP and test that the input field is empty and there are no results.
+    [self openFindInPageWithOverflowMenu];
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:[self matcherForText:@""]];
+    [self assertResultStringIsEmptyOrZero];
+
+    // Type text with 157 expected matches and test that results are as
+    // expected.
+    [self typeFindInPageText:@"the"];
+    [self assertResultStringIsResult:1 outOfTotal:157];
+
+    // Test that the Next button works.
+    [self advanceToNextResult];
+    [self assertResultStringIsResult:2 outOfTotal:157];
+    [self advanceToNextResult];
+    [self assertResultStringIsResult:3 outOfTotal:157];
+
+    // Type more specific query and test that results are as expected.
+    [self typeFindInPageText:@" Form"];
+    [self assertResultStringIsResult:1 outOfTotal:6];
+
+    // Test that the Previous button works and wraps.
+    [self advanceToPreviousResult];
+    [self assertResultStringIsResult:6 outOfTotal:6];
+    [self advanceToPreviousResult];
+    [self assertResultStringIsResult:5 outOfTotal:6];
+
+    // Type even more specific query and test that results are as expected.
+    [self typeFindInPageText:@" 1050"];
+    [self assertResultStringIsEmptyOrZero];
+
+    // Test that the Done button does close Find in Page.
+    [self closeFindInPageWithDoneButton];
+    [[EarlGrey selectElementWithMatcher:[self findInPageInputField]]
+        assertWithMatcher:grey_notVisible()];
+  }
+}
+
+@end
+
+// Tests for Native Find in Page. This tests the variant of Native Find in Page
+// with a Find interaction i.e. with the system UI or Find navigator. Many tests
+// use the `secondTestServer` to ensure what is being tested also works with
+// cross-origin iframes.
+@interface FindInPageTestCase : ChromeTestCase
+
+@end
+
+@implementation FindInPageTestCase {
+  FindInPageTestCaseHelper* _helper;
+}
+
+- (AppLaunchConfiguration)appConfigurationForTestCase {
+  AppLaunchConfiguration config = [super appConfigurationForTestCase];
+
+  // Enable `kNativeFindInPage`. This test case only tests the "System Find
+  // Panel" variant of Native Find in Page i.e. the one relying on a Find
+  // interaction and the new system UI.
+  config.additional_args.push_back(
+      "--enable-features=" + std::string(kNativeFindInPage.name) + "<" +
+      std::string(kNativeFindInPage.name));
+  config.additional_args.push_back(
+      "--force-fieldtrials=" + std::string(kNativeFindInPage.name) + "/Test");
+
+  return config;
+}
+
+- (void)setUp {
+  [super setUp];
+
+  // Clear saved search term.
+  [FindInPageAppInterface clearSearchTerm];
+
+  // Creating helper.
+  _helper = [[FindInPageTestCaseHelper alloc] init];
+  _helper.testServer = self.testServer;
+}
+
+// Tests that FIP can be opened with Overflow menu.
+- (void)helperTestFindInPageFromOverflowMenu {
+  [_helper helperTestFindInPageFromOverflowMenu];
+}
+
+// Tests that characters appear in the search box and that results UI updates as
+// each characters is entered/deleted.
+- (void)testFindInPageTextInput {
+  [_helper helperTestFindInPageTextInput];
+}
+
+// Tests that the number of results for a query accounts for all the matches
+// across frames, here with a main frame and a cross-origin iframe.
+- (void)testFindInPageSupportsCrossOriginFrame {
+  [_helper helperTestFindInPageSupportsCrossOriginFrame];
+}
+
+// Tests that FIP can find different types of characters: special characters,
+// number, strings with both letters and numbers as well as non-ASCII
+// characters.
+- (void)testFindInPageSpecialCharacters {
+  [_helper helperTestFindInPageSpecialCharacters];
+}
+
+// Tests that text can be copied from the web page and pasted into the FIP input
+// field and that the results UI updates accordingly.
+- (void)testFindInPageCopyPaste {
+  [_helper helperTestFindInPageCopyPaste];
+}
+
+// Tests that FIP yields no results for an empty search query.
+- (void)testFindInPageEmptySearchQuery {
+  [_helper helperTestFindInPageEmptySearchQuery];
+}
+
+// Tests that FIP yields no results for a non-empty query with no matches in the
+// page.
+- (void)testFindInPageQueryWithNoMatches {
+  [_helper helperTestFindInPageQueryWithNoMatches];
+}
+
+// Tests that FIP yields no matches for a text with spanish accents e.g. 'á' if
+// the web page contains the same text without spanish accents e.g. 'a'. This
+// test assumes removing accents from `kFindInPageTestWithSpanishAccentText`
+// yields `kFindInPageTestWithoutSpanishAccentText`.
+- (void)testFindInPageDifferentAccent {
+  [_helper helperTestFindInPageDifferentAccent];
+}
+
+// Test that there is no query persistence with this variant of Native Find in
+// Page i.e. with Find interaction.
+- (void)testFindInPageHistory {
+  [_helper helperTestFindInPageHistory];
+}
+
+// Tests that there is no query persistence from an non-Incognito to an
+// Incognito tab.
+- (void)testFindInPageNormalToIncognito {
+  [_helper helperTestFindInPageNormalToIncognito];
+}
+
+// Tests that Next/Previous buttons work and wrap.
+- (void)testFindInPageNextPreviousArrows {
+  [_helper helperTestFindInPageNextPreviousArrows];
+}
+
+// Tests the various ways to dismiss the keyboard during a Find session.
+- (void)testFindInPageDismissKeyboard {
+  [_helper helperTestFindInPageDismissKeyboard];
+}
+
+// Tests that FIP can find long strings of characters.
+- (void)testFindInPageLongString {
+  [_helper helperTestFindInPageLongString];
+}
+
+// Tests that FIP is not case sensitive.
+- (void)testFindInPageNotCaseSensitive {
+  [_helper helperTestFindInPageNotCaseSensitive];
+}
+
+// Tests that there is no leak of the FIP search query from Incognito tabs to
+// normal tabs.
+- (void)testFindInPageIncognitoHistory {
+  [_helper helperTestFindInPageIncognitoHistory];
+}
+
+// Tests that there is no query persistence when coming back to a normal tab
+// after switching temporarily to another tab.
+- (void)testFindInPageSwitchingTabs {
+  [_helper helperTestFindInPageSwitchingTabs];
+}
+
+// Tests that FIP can find RTL text in a web page.
+- (void)testFindInPageRTL {
+  [_helper helperTestFindInPageRTL];
+}
+
+// Tests that Find in Page can find matches in an Incognito tab.
+- (void)testFindInPageIncognito {
+  [_helper helperTestFindInPageIncognito];
+}
+
+// Tests accessibility of the Find in Page screen.
+- (void)testFindInPageAccessibility {
+  [_helper helperTestFindInPageAccessibility];
+}
+
+// Tests that Native Find in Page works as expected for PDF documents.
+- (void)testFindInPagePDF {
+  [_helper helperTestFindInPagePDF];
+}
+
+@end
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index ec69301..705d196 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -632,7 +632,8 @@
      flag_descriptions::kShowAutofillTypePredictionsName,
      flag_descriptions::kShowAutofillTypePredictionsDescription,
      flags_ui::kOsIos,
-     FEATURE_VALUE_TYPE(autofill::features::kAutofillShowTypePredictions)},
+     FEATURE_VALUE_TYPE(
+         autofill::features::test::kAutofillShowTypePredictions)},
     {"autofill-account-profiles-union-view",
      flag_descriptions::kAutofillAccountProfilesUnionViewName,
      flag_descriptions::kAutofillAccountProfilesUnionViewDescription,
@@ -901,10 +902,6 @@
     {"use-sf-symbols", flag_descriptions::kUseSFSymbolsName,
      flag_descriptions::kUseSFSymbolsDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(kUseSFSymbols)},
-    {"ios-webpage-intent-annotations",
-     flag_descriptions::kEnableWebPageAnnotationsName,
-     flag_descriptions::kEnableWebPageAnnotationsDescription, flags_ui::kOsIos,
-     FEATURE_VALUE_TYPE(web::features::kEnableWebPageAnnotations)},
     {"enable-password-grouping", flag_descriptions::kPasswordsGroupingName,
      flag_descriptions::kPasswordsGroupingDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(password_manager::features::kPasswordsGrouping)},
@@ -1362,6 +1359,10 @@
      flag_descriptions::kFeedExperimentTaggingName,
      flag_descriptions::kFeedExperimentTaggingDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(kEnableFeedExperimentTagging)},
+    {"spotlight-reading-list-source",
+     flag_descriptions::kSpotlightReadingListSourceName,
+     flag_descriptions::kSpotlightReadingListSourceDescription,
+     flags_ui::kOsIos, FEATURE_VALUE_TYPE(kSpotlightReadingListSource)},
 };
 
 bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
index d889790e..cd72cf99 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -350,11 +350,6 @@
     "Enable refining data source reload reporting when having a very short "
     "attention log";
 
-const char kEnableWebPageAnnotationsName[] = "Enable Web Page Intent Detection";
-const char kEnableWebPageAnnotationsDescription[] =
-    "Prototype to detect and highlight data with possible intent in a web "
-    "page.";
-
 const char kEnableSuggestionsScrollingOnIPadName[] =
     "Enable omnibox suggestions scrolling on iPad";
 const char kEnableSuggestionsScrollingOnIPadDescription[] =
@@ -816,6 +811,10 @@
     "Adds the Price Tracking destination (with Smart Sorting) to the "
     "new overflow menu.";
 
+const char kSpotlightReadingListSourceName[] = "Show Reading List in Spotlight";
+const char kSpotlightReadingListSourceDescription[] =
+    "Donate Reading List items to iOS Search Engine Spotlight";
+
 const char kNewOverflowMenuShareChromeActionName[] =
     "Share Chrome App action in the new overflow menu";
 const char kNewOverflowMenuShareChromeActionDescription[] =
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
index 0d6ab11..16c3f7e 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -364,11 +364,6 @@
 extern const char kFullscreenPromosManagerSkipInternalLimitsName[];
 extern const char kFullscreenPromosManagerSkipInternalLimitsDescription[];
 
-// Title and description for the flag to enable web page detected intents
-// annotations.
-extern const char kEnableWebPageAnnotationsName[];
-extern const char kEnableWebPageAnnotationsDescription[];
-
 // Title and description for the command line switch used to determine the
 // active fullscreen viewport adjustment mode.
 extern const char kFullscreenSmoothScrollingName[];
@@ -718,6 +713,10 @@
 extern const char kSmartSortingPriceTrackingDestinationName[];
 extern const char kSmartSortingPriceTrackingDestinationDescription[];
 
+// Title and description for th eflag to index Reading List items in Spotlight.
+extern const char kSpotlightReadingListSourceName[];
+extern const char kSpotlightReadingListSourceDescription[];
+
 // Title and description for the flag to enable the Share Chrome App action
 // in the new overflow menu.
 extern const char kNewOverflowMenuShareChromeActionName[];
diff --git a/ios/chrome/browser/metrics/pageload_foreground_duration_tab_helper.h b/ios/chrome/browser/metrics/pageload_foreground_duration_tab_helper.h
index 070caa71..4d33b59b 100644
--- a/ios/chrome/browser/metrics/pageload_foreground_duration_tab_helper.h
+++ b/ios/chrome/browser/metrics/pageload_foreground_duration_tab_helper.h
@@ -14,7 +14,7 @@
 // Tracks the time spent on pages visible on the screen and logs them as UKMs.
 class PageloadForegroundDurationTabHelper
     : public web::WebStateUserData<PageloadForegroundDurationTabHelper>,
-      web::WebStateObserver {
+      public web::WebStateObserver {
  public:
   ~PageloadForegroundDurationTabHelper() override;
 
diff --git a/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent.h b/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent.h
index 9f7aa12..a4aa910 100644
--- a/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent.h
+++ b/ios/chrome/browser/metrics/tab_usage_recorder_browser_agent.h
@@ -28,9 +28,9 @@
 
 // Reports usage about the lifecycle of a single Browser's tabs.
 class TabUsageRecorderBrowserAgent
-    : BrowserObserver,
+    : public BrowserObserver,
       public BrowserUserData<TabUsageRecorderBrowserAgent>,
-      web::WebStateObserver,
+      public web::WebStateObserver,
       public WebStateListObserver,
       public SessionRestorationObserver {
  public:
diff --git a/ios/chrome/browser/overlays/default_overlay_request_cancel_handler.h b/ios/chrome/browser/overlays/default_overlay_request_cancel_handler.h
index 7fa2ef1..17dba571 100644
--- a/ios/chrome/browser/overlays/default_overlay_request_cancel_handler.h
+++ b/ios/chrome/browser/overlays/default_overlay_request_cancel_handler.h
@@ -24,7 +24,7 @@
   void Cancel();
 
   // Helper object that intercepts navigation events to trigger cancellation.
-  class NavigationHelper : web::WebStateObserver {
+  class NavigationHelper : public web::WebStateObserver {
    public:
     NavigationHelper(DefaultOverlayRequestCancelHandler* cancel_handler,
                      web::WebState* web_state);
diff --git a/ios/chrome/browser/prefs/browser_prefs.mm b/ios/chrome/browser/prefs/browser_prefs.mm
index 8e99f7b..124b342 100644
--- a/ios/chrome/browser/prefs/browser_prefs.mm
+++ b/ios/chrome/browser/prefs/browser_prefs.mm
@@ -267,6 +267,8 @@
 
   registry->RegisterBooleanPref(prefs::kIosCredentialProviderPromoStopPromo,
                                 false);
+
+  registry->RegisterIntegerPref(prefs::kIosCredentialProviderPromoSource, 0);
 }
 
 void RegisterBrowserStatePrefs(user_prefs::PrefRegistrySyncable* registry) {
diff --git a/ios/chrome/browser/prefs/pref_names.cc b/ios/chrome/browser/prefs/pref_names.cc
index a6887021..1876b4c 100644
--- a/ios/chrome/browser/prefs/pref_names.cc
+++ b/ios/chrome/browser/prefs/pref_names.cc
@@ -73,6 +73,11 @@
 const char kIncognitoInterstitialEnabled[] =
     "ios.settings.incognito_interstitial_enabled";
 
+// Integer that maps to IOSCredentialProviderPromoSource, the enum type of the
+// event that leads to the credential provider promo's display.
+const char kIosCredentialProviderPromoSource[] =
+    "ios.credential_provider_promo.source";
+
 // Caches the folder id of user's position in the bookmark hierarchy navigator.
 const char kIosBookmarkCachedFolderId[] = "ios.bookmark.cached_folder_id";
 
diff --git a/ios/chrome/browser/prefs/pref_names.h b/ios/chrome/browser/prefs/pref_names.h
index af281506..b5286a98 100644
--- a/ios/chrome/browser/prefs/pref_names.h
+++ b/ios/chrome/browser/prefs/pref_names.h
@@ -25,6 +25,7 @@
 extern const char kIncognitoModeAvailability[];
 extern const char kIncognitoInterstitialEnabled[];
 extern const char kIosCredentialProviderPromoStopPromo[];
+extern const char kIosCredentialProviderPromoSource[];
 extern const char kIosBookmarkCachedFolderId[];
 extern const char kIosBookmarkCachedTopMostRow[];
 extern const char kIosBookmarkFolderDefault[];
diff --git a/ios/chrome/browser/providers/signin/OWNERS b/ios/chrome/browser/providers/signin/OWNERS
new file mode 100644
index 0000000..56e768f
--- /dev/null
+++ b/ios/chrome/browser/providers/signin/OWNERS
@@ -0,0 +1 @@
+file://components/signin/ios/OWNERS
diff --git a/ios/chrome/browser/send_tab_to_self/send_tab_to_self_browser_agent.h b/ios/chrome/browser/send_tab_to_self/send_tab_to_self_browser_agent.h
index a312d8c..9ef59b9 100644
--- a/ios/chrome/browser/send_tab_to_self/send_tab_to_self_browser_agent.h
+++ b/ios/chrome/browser/send_tab_to_self/send_tab_to_self_browser_agent.h
@@ -32,7 +32,7 @@
       public send_tab_to_self::SendTabToSelfModelObserver,
       public WebStateListObserver,
       public web::WebStateObserver,
-      BrowserObserver {
+      public BrowserObserver {
  public:
   ~SendTabToSelfBrowserAgent() override;
 
diff --git a/ios/chrome/browser/signin/account_consistency_browser_agent.h b/ios/chrome/browser/signin/account_consistency_browser_agent.h
index 35ebeed..199f134 100644
--- a/ios/chrome/browser/signin/account_consistency_browser_agent.h
+++ b/ios/chrome/browser/signin/account_consistency_browser_agent.h
@@ -23,7 +23,7 @@
     : public BrowserUserData<AccountConsistencyBrowserAgent>,
       public DependencyInstaller,
       public ManageAccountsDelegate,
-      BrowserObserver {
+      public BrowserObserver {
  public:
   // Not copyable or moveable
   AccountConsistencyBrowserAgent(const AccountConsistencyBrowserAgent&) =
diff --git a/ios/chrome/browser/tabs/BUILD.gn b/ios/chrome/browser/tabs/BUILD.gn
index 24b9ff55..d9a7233f 100644
--- a/ios/chrome/browser/tabs/BUILD.gn
+++ b/ios/chrome/browser/tabs/BUILD.gn
@@ -126,6 +126,7 @@
     "//ios/components/security_interstitials/safe_browsing",
     "//ios/public/provider/chrome/browser/find_in_page:find_in_page_api",
     "//ios/public/provider/chrome/browser/text_zoom:text_zoom_api",
+    "//ios/web/annotations",
     "//ios/web/common:features",
     "//ios/web/public/security",
     "//ios/web/public/session",
diff --git a/ios/chrome/browser/tabs/DEPS b/ios/chrome/browser/tabs/DEPS
index 728f9b5..de788260 100644
--- a/ios/chrome/browser/tabs/DEPS
+++ b/ios/chrome/browser/tabs/DEPS
@@ -3,6 +3,7 @@
   "^tab_helper_util.mm": [
     "+ios/chrome/browser/ui/download/features.h",
     "+ios/chrome/browser/ui/ui_feature_flags.h",
+    "+ios/web/annotations/annotations_utils.h",
   ],
 }
 
diff --git a/ios/chrome/browser/tabs/closing_web_state_observer_browser_agent.h b/ios/chrome/browser/tabs/closing_web_state_observer_browser_agent.h
index 42dffae4..6465faf5 100644
--- a/ios/chrome/browser/tabs/closing_web_state_observer_browser_agent.h
+++ b/ios/chrome/browser/tabs/closing_web_state_observer_browser_agent.h
@@ -21,9 +21,9 @@
 // snapshot from disk and memory. This class also records of history for
 // non-incognito Browser's WebStates.
 class ClosingWebStateObserverBrowserAgent
-    : BrowserObserver,
+    : public BrowserObserver,
       public BrowserUserData<ClosingWebStateObserverBrowserAgent>,
-      WebStateListObserver {
+      public WebStateListObserver {
  public:
   ClosingWebStateObserverBrowserAgent();
   ~ClosingWebStateObserverBrowserAgent() override;
diff --git a/ios/chrome/browser/tabs/synced_window_delegate_browser_agent.h b/ios/chrome/browser/tabs/synced_window_delegate_browser_agent.h
index c792c4d..d7f367a1 100644
--- a/ios/chrome/browser/tabs/synced_window_delegate_browser_agent.h
+++ b/ios/chrome/browser/tabs/synced_window_delegate_browser_agent.h
@@ -21,7 +21,7 @@
 // SyncedWindowDelegate.
 class SyncedWindowDelegateBrowserAgent
     : public sync_sessions::SyncedWindowDelegate,
-      BrowserObserver,
+      public BrowserObserver,
       public BrowserUserData<SyncedWindowDelegateBrowserAgent>,
       public WebStateListObserver {
  public:
diff --git a/ios/chrome/browser/tabs/tab_helper_util.mm b/ios/chrome/browser/tabs/tab_helper_util.mm
index 3ad0495b0..ab455c0 100644
--- a/ios/chrome/browser/tabs/tab_helper_util.mm
+++ b/ios/chrome/browser/tabs/tab_helper_util.mm
@@ -109,6 +109,7 @@
 #import "ios/components/security_interstitials/safe_browsing/safe_browsing_unsafe_resource_container.h"
 #import "ios/public/provider/chrome/browser/find_in_page/find_in_page_api.h"
 #import "ios/public/provider/chrome/browser/text_zoom/text_zoom_api.h"
+#import "ios/web/annotations/annotations_utils.h"
 #import "ios/web/common/features.h"
 #import "ios/web/public/web_state.h"
 
@@ -162,8 +163,7 @@
     BreadcrumbManagerTabHelper::CreateForWebState(web_state);
   }
 
-  if (base::FeatureList::IsEnabled(web::features::kEnableWebPageAnnotations) &&
-      !is_off_the_record) {
+  if (web::annotations::WebPageAnnotationsEnabled()) {
     AnnotationsTabHelper::CreateForWebState(web_state);
   }
 
diff --git a/ios/chrome/browser/tabs/tab_parenting_browser_agent.h b/ios/chrome/browser/tabs/tab_parenting_browser_agent.h
index 9fe3436..82e1541 100644
--- a/ios/chrome/browser/tabs/tab_parenting_browser_agent.h
+++ b/ios/chrome/browser/tabs/tab_parenting_browser_agent.h
@@ -10,9 +10,9 @@
 #import "ios/chrome/browser/web_state_list/web_state_list_observer.h"
 
 class TabParentingBrowserAgent
-    : BrowserObserver,
+    : public BrowserObserver,
       public BrowserUserData<TabParentingBrowserAgent>,
-      WebStateListObserver {
+      public WebStateListObserver {
  public:
   ~TabParentingBrowserAgent() override;
   TabParentingBrowserAgent(const TabParentingBrowserAgent&) = delete;
diff --git a/ios/chrome/browser/ui/badges/badge_button_factory.mm b/ios/chrome/browser/ui/badges/badge_button_factory.mm
index 139fb43..794413c 100644
--- a/ios/chrome/browser/ui/badges/badge_button_factory.mm
+++ b/ios/chrome/browser/ui/badges/badge_button_factory.mm
@@ -65,16 +65,15 @@
 
 #pragma mark - Private
 - (BadgeButton*)passwordsSaveBadgeButton {
-  UIImage* symbol =
+  UIImage* image =
       CustomSymbolWithPointSize(kPasswordSymbol, kInfobarSymbolPointSize);
 #if !BUILDFLAG(IS_IOS_MACCATALYST)
   if (base::FeatureList::IsEnabled(
           password_manager::features::kIOSShowPasswordStorageInSaveInfobar)) {
-    symbol = CustomSymbolWithPointSize(kMulticolorPasswordSymbol,
-                                       kInfobarSymbolPointSize);
+    image = CustomSymbolWithPointSize(kMulticolorPasswordSymbol,
+                                      kInfobarSymbolPointSize);
   }
 #endif  // BUILDFLAG(IS_IOS_MACCATALYST)
-  UIImage* image = UseSymbols() ? symbol : [UIImage imageNamed:@"password_key"];
   BadgeButton* button =
       [self createButtonForType:kBadgeTypePasswordSave
                           image:[image imageWithRenderingMode:
@@ -90,16 +89,15 @@
 }
 
 - (BadgeButton*)passwordsUpdateBadgeButton {
-  UIImage* symbol =
+  UIImage* image =
       CustomSymbolWithPointSize(kPasswordSymbol, kInfobarSymbolPointSize);
 #if !BUILDFLAG(IS_IOS_MACCATALYST)
   if (base::FeatureList::IsEnabled(
           password_manager::features::kIOSShowPasswordStorageInSaveInfobar)) {
-    symbol = CustomSymbolWithPointSize(kMulticolorPasswordSymbol,
-                                       kInfobarSymbolPointSize);
+    image = CustomSymbolWithPointSize(kMulticolorPasswordSymbol,
+                                      kInfobarSymbolPointSize);
   }
 #endif  // BUILDFLAG(IS_IOS_MACCATALYST)
-  UIImage* image = UseSymbols() ? symbol : [UIImage imageNamed:@"password_key"];
   BadgeButton* button =
       [self createButtonForType:kBadgeTypePasswordUpdate
                           image:[image imageWithRenderingMode:
diff --git a/ios/chrome/browser/ui/browser_container/BUILD.gn b/ios/chrome/browser/ui/browser_container/BUILD.gn
index a2a9e443..bee64caf 100644
--- a/ios/chrome/browser/ui/browser_container/BUILD.gn
+++ b/ios/chrome/browser/ui/browser_container/BUILD.gn
@@ -15,19 +15,23 @@
   configs += [ "//build/config/compiler:enable_arc" ]
 
   deps = [
+    ":edit_menu_alert_delegate",
     ":ui",
     "//base",
     "//ios/chrome/app/strings",
+    "//ios/chrome/browser/browser_state",
     "//ios/chrome/browser/link_to_text",
     "//ios/chrome/browser/main",
     "//ios/chrome/browser/overlays",
     "//ios/chrome/browser/overlays/public/web_content_area",
     "//ios/chrome/browser/screen_time:buildflags",
+    "//ios/chrome/browser/ui:feature_flags",
     "//ios/chrome/browser/ui/alert_coordinator",
     "//ios/chrome/browser/ui/commands",
     "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
     "//ios/chrome/browser/ui/link_to_text",
     "//ios/chrome/browser/ui/overlays",
+    "//ios/chrome/browser/ui/partial_translate",
     "//ios/chrome/browser/web_state_list",
     "//ios/web/public",
     "//ui/base",
@@ -59,12 +63,22 @@
     "//ios/chrome/app/strings",
     "//ios/chrome/browser/ui:feature_flags",
     "//ios/chrome/browser/ui/link_to_text",
+    "//ios/chrome/browser/ui/partial_translate",
     "//ios/chrome/browser/ui/util",
     "//ios/chrome/common/ui/util",
     "//ui/base",
   ]
 }
 
+source_set("edit_menu_alert_delegate") {
+  sources = [
+    "edit_menu_alert_delegate.h",
+    "edit_menu_alert_delegate.mm",
+  ]
+  deps = [ "//base" ]
+  configs += [ "//build/config/compiler:enable_arc" ]
+}
+
 source_set("unit_tests") {
   testonly = true
 
diff --git a/ios/chrome/browser/ui/browser_container/browser_container_coordinator.mm b/ios/chrome/browser/ui/browser_container/browser_container_coordinator.mm
index 3fa3293..b411e9fd 100644
--- a/ios/chrome/browser/ui/browser_container/browser_container_coordinator.mm
+++ b/ios/chrome/browser/ui/browser_container/browser_container_coordinator.mm
@@ -9,6 +9,7 @@
 #import "base/check.h"
 #import "base/metrics/user_metrics.h"
 #import "base/metrics/user_metrics_action.h"
+#import "ios/chrome/browser/browser_state/chrome_browser_state.h"
 #import "ios/chrome/browser/link_to_text/link_to_text_payload.h"
 #import "ios/chrome/browser/main/browser.h"
 #import "ios/chrome/browser/overlays/public/overlay_presenter.h"
@@ -17,12 +18,16 @@
 #import "ios/chrome/browser/ui/browser_container/browser_container_mediator.h"
 #import "ios/chrome/browser/ui/browser_container/browser_container_view_controller.h"
 #import "ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.h"
+#import "ios/chrome/browser/ui/browser_container/edit_menu_alert_delegate.h"
 #import "ios/chrome/browser/ui/commands/activity_service_commands.h"
+#import "ios/chrome/browser/ui/commands/browser_coordinator_commands.h"
 #import "ios/chrome/browser/ui/commands/command_dispatcher.h"
 #import "ios/chrome/browser/ui/commands/share_highlight_command.h"
 #import "ios/chrome/browser/ui/link_to_text/link_to_text_consumer.h"
 #import "ios/chrome/browser/ui/link_to_text/link_to_text_mediator.h"
 #import "ios/chrome/browser/ui/overlays/overlay_container_coordinator.h"
+#import "ios/chrome/browser/ui/partial_translate/partial_translate_mediator.h"
+#import "ios/chrome/browser/ui/ui_feature_flags.h"
 #import "ios/chrome/grit/ios_strings.h"
 #import "ui/base/l10n/l10n_util.h"
 #import "ui/strings/grit/ui_strings.h"
@@ -37,7 +42,8 @@
 #error "This file requires ARC support."
 #endif
 
-@interface BrowserContainerCoordinator () <LinkToTextConsumer>
+@interface BrowserContainerCoordinator () <LinkToTextConsumer,
+                                           EditMenuAlertDelegate>
 // Whether the coordinator is started.
 @property(nonatomic, assign, getter=isStarted) BOOL started;
 // Redefine property as readwrite.
@@ -47,6 +53,8 @@
 @property(nonatomic, strong) BrowserContainerMediator* mediator;
 // The mediator used for the Link to Text feature.
 @property(nonatomic, strong) LinkToTextMediator* linkToTextMediator;
+// The mediator used for the Partial Translate feature.
+@property(nonatomic, strong) PartialTranslateMediator* partialTranslateMediator;
 // The handler for the edit menu.
 @property(nonatomic, strong) BrowserEditMenuHandler* browserEditMenuHandler;
 // The overlay container coordinator for OverlayModality::kWebContentArea.
@@ -70,31 +78,48 @@
   self.started = YES;
   DCHECK(self.browser);
   DCHECK(!_viewController);
+  Browser* browser = self.browser;
+  WebStateList* webStateList = browser->GetWebStateList();
+  BOOL incognito = browser->GetBrowserState()->IsOffTheRecord();
   self.viewController = [[BrowserContainerViewController alloc] init];
   self.webContentAreaOverlayContainerCoordinator =
       [[OverlayContainerCoordinator alloc]
           initWithBaseViewController:self.viewController
-                             browser:self.browser
+                             browser:browser
                             modality:OverlayModality::kWebContentArea];
 
-  self.linkToTextMediator = [[LinkToTextMediator alloc]
-      initWithWebStateList:self.browser->GetWebStateList()
-                  consumer:self];
+  self.linkToTextMediator =
+      [[LinkToTextMediator alloc] initWithWebStateList:webStateList
+                                              consumer:self];
 
   self.browserEditMenuHandler = [[BrowserEditMenuHandler alloc] init];
   self.viewController.browserEditMenuHandler = self.browserEditMenuHandler;
   self.browserEditMenuHandler.linkToTextDelegate = self.linkToTextMediator;
 
+  if (base::FeatureList::IsEnabled(kIOSEditMenuPartialTranslate)) {
+    self.partialTranslateMediator = [[PartialTranslateMediator alloc]
+          initWithWebStateList:webStateList
+        withBaseViewController:self.viewController
+                     incognito:incognito];
+    self.partialTranslateMediator.alertDelegate = self;
+    CommandDispatcher* dispatcher = browser->GetCommandDispatcher();
+    id<BrowserCoordinatorCommands> handler =
+        HandlerForProtocol(dispatcher, BrowserCoordinatorCommands);
+    self.partialTranslateMediator.browserHandler = handler;
+    self.browserEditMenuHandler.partialTranslateDelegate =
+        self.partialTranslateMediator;
+  }
+
   [self.webContentAreaOverlayContainerCoordinator start];
   self.viewController.webContentsOverlayContainerViewController =
       self.webContentAreaOverlayContainerCoordinator.viewController;
-  OverlayPresenter* overlayPresenter = OverlayPresenter::FromBrowser(
-      self.browser, OverlayModality::kWebContentArea);
-  self.mediator = [[BrowserContainerMediator alloc]
-                initWithWebStateList:self.browser->GetWebStateList()
-      webContentAreaOverlayPresenter:overlayPresenter];
+  OverlayPresenter* overlayPresenter =
+      OverlayPresenter::FromBrowser(browser, OverlayModality::kWebContentArea);
+  self.mediator =
+      [[BrowserContainerMediator alloc] initWithWebStateList:webStateList
+                              webContentAreaOverlayPresenter:overlayPresenter];
   self.activityServiceHandler = HandlerForProtocol(
-      self.browser->GetCommandDispatcher(), ActivityServiceCommands);
+      browser->GetCommandDispatcher(), ActivityServiceCommands);
 
   self.mediator.consumer = self.viewController;
 
@@ -109,6 +134,7 @@
   self.started = NO;
   [self.webContentAreaOverlayContainerCoordinator stop];
   [self.screenTimeCoordinator stop];
+  [self.partialTranslateMediator shutdown];
   self.viewController = nil;
   self.mediator = nil;
   self.linkToTextMediator = nil;
@@ -156,6 +182,24 @@
   [self.alertCoordinator start];
 }
 
+#pragma mark - EditMenuAlertDelegate
+
+- (void)showAlertWithTitle:(NSString*)title
+                   message:(NSString*)message
+                   actions:(NSArray<EditMenuAlertDelegateAction*>*)actions {
+  self.alertCoordinator =
+      [[AlertCoordinator alloc] initWithBaseViewController:self.viewController
+                                                   browser:self.browser
+                                                     title:title
+                                                   message:message];
+  for (EditMenuAlertDelegateAction* action in actions) {
+    [self.alertCoordinator addItemWithTitle:action.title
+                                     action:action.action
+                                      style:action.style];
+  }
+  [self.alertCoordinator start];
+}
+
 #pragma mark - Private methods
 
 // Sets up the ScreenTime coordinator, which installs and manages the ScreenTime
diff --git a/ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.h b/ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.h
index 9e28805..99db7e9 100644
--- a/ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.h
+++ b/ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.h
@@ -8,6 +8,7 @@
 #import <UIKit/UIKit.h>
 
 @protocol LinkToTextDelegate;
+@protocol PartialTranslateDelegate;
 
 // A handler for the Browser edit menu.
 // This class is in charge of customising the menu and executing the commands.
@@ -15,6 +16,10 @@
 // The delegate to handle link to text button selection.
 @property(nonatomic, weak) id<LinkToTextDelegate> linkToTextDelegate;
 
+// The delegate to handle Partial Translate button selection.
+@property(nonatomic, weak) id<PartialTranslateDelegate>
+    partialTranslateDelegate;
+
 // Will be called by `BrowserContainerViewController buildMenuWithBuilder:`
 // to customize its edit menu.
 - (void)buildMenuWithBuilder:(id<UIMenuBuilder>)builder;
diff --git a/ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.mm b/ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.mm
index 72233aed..f9b607a86 100644
--- a/ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.mm
+++ b/ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.mm
@@ -5,7 +5,9 @@
 #import "ios/chrome/browser/ui/browser_container/browser_edit_menu_handler.h"
 
 #import "base/feature_list.h"
-#import "ios/chrome/browser/ui/link_to_text/link_to_text_mediator.h"
+#import "base/mac/foundation_util.h"
+#import "ios/chrome/browser/ui/link_to_text/link_to_text_delegate.h"
+#import "ios/chrome/browser/ui/partial_translate/partial_translate_delegate.h"
 #import "ios/chrome/browser/ui/ui_feature_flags.h"
 #import "ios/chrome/browser/ui/util/uikit_ui_util.h"
 #import "ios/chrome/grit/ios_strings.h"
@@ -16,11 +18,24 @@
 #endif
 
 @interface BrowserEditMenuHandler ()
+
+// A cache for the first responder that is reset on the next runloop.
+@property(nonatomic, weak) UIResponder* firstResponder;
+
 @end
 
-@implementation BrowserEditMenuHandler
+@implementation BrowserEditMenuHandler {
+  // Keep the original translate command to display partial translate in the
+  // same conditions.
+  UICommand* _originalTranslateCommand;
+}
 
 - (void)buildMenuWithBuilder:(id<UIMenuBuilder>)builder {
+  [self addLinkToText:builder];
+  [self addPartialTranslate:builder];
+}
+
+- (void)addLinkToText:(id<UIMenuBuilder>)builder {
   if (!base::FeatureList::IsEnabled(kIOSCustomBrowserEditMenu)) {
     return;
   }
@@ -39,30 +54,132 @@
   [builder insertChildMenu:linkToTextMenu atEndOfMenuForIdentifier:UIMenuRoot];
 }
 
+- (void)addPartialTranslate:(id<UIMenuBuilder>)builder {
+  if (!base::FeatureList::IsEnabled(kIOSEditMenuPartialTranslate)) {
+    return;
+  }
+  NSString* title =
+      l10n_util::GetNSString(IDS_IOS_PARTIAL_TRANSLATE_EDIT_MENU_ENTRY);
+  NSString* partialTranslateId = @"chromecommand.partialTranslate";
+  UICommand* partialTranslateCommand =
+      [UICommand commandWithTitle:title
+                            image:nil
+                           action:@selector(chromePartialTranslate:)
+                     propertyList:partialTranslateId];
+
+  // Translate command is in the lookup menu.
+  // Retrieve the menu so it can be replaced with partial translate.
+  UIMenu* lookupMenu = [builder menuForIdentifier:UIMenuLookup];
+  NSArray* children = lookupMenu.children;
+  NSInteger translateIndex = -1;
+  for (NSUInteger index = 0; index < children.count; index++) {
+    UIMenuElement* element = children[index];
+    // Translate is a command.
+    if (![element isKindOfClass:[UICommand class]]) {
+      continue;
+    }
+    UICommand* command = base::mac::ObjCCast<UICommand>(element);
+    if (command.action != NSSelectorFromString(@"_translate:")) {
+      continue;
+    }
+    _originalTranslateCommand = command;
+    translateIndex = index;
+    break;
+  }
+
+  if (translateIndex == -1) {
+    // Translate command not found. Fallback adding the partial translate before
+    // the lookup menu.
+    // TODO(crbug.com/1417639): Catch this so it can be fixed.
+    UIMenu* partialTranslateMenu =
+        [UIMenu menuWithTitle:title
+                        image:nil
+                   identifier:partialTranslateId
+                      options:UIMenuOptionsDisplayInline
+                     children:@[ partialTranslateCommand ]];
+    [builder insertSiblingMenu:partialTranslateMenu
+        beforeMenuForIdentifier:UIMenuLookup];
+    return;
+  }
+
+  // Rebuild the lookup menu with partial translate
+  NSMutableArray* newChildren = [NSMutableArray arrayWithArray:children];
+  newChildren[translateIndex] = partialTranslateCommand;
+  UIMenu* newPartialTranslate = [UIMenu menuWithTitle:lookupMenu.title
+                                                image:lookupMenu.image
+                                           identifier:lookupMenu.identifier
+                                              options:lookupMenu.options
+                                             children:newChildren];
+
+  [builder replaceMenuForIdentifier:UIMenuLookup withMenu:newPartialTranslate];
+}
+
 - (void)addEditMenuEntries {
   if (base::FeatureList::IsEnabled(kIOSCustomBrowserEditMenu)) {
     return;
   }
-  if (!base::FeatureList::IsEnabled(kSharedHighlightingIOS)) {
-    return;
+  if (base::FeatureList::IsEnabled(kSharedHighlightingIOS)) {
+    NSString* title = l10n_util::GetNSString(IDS_IOS_SHARE_LINK_TO_TEXT);
+    UIMenuItem* menuItem =
+        [[UIMenuItem alloc] initWithTitle:title action:@selector(linkToText:)];
+    RegisterEditMenuItem(menuItem);
   }
-  NSString* title = l10n_util::GetNSString(IDS_IOS_SHARE_LINK_TO_TEXT);
-  UIMenuItem* menuItem =
-      [[UIMenuItem alloc] initWithTitle:title action:@selector(linkToText:)];
-  RegisterEditMenuItem(menuItem);
+  if (base::FeatureList::IsEnabled(kIOSEditMenuPartialTranslate)) {
+    NSString* title =
+        l10n_util::GetNSString(IDS_IOS_PARTIAL_TRANSLATE_EDIT_MENU_ENTRY);
+    UIMenuItem* menuItem =
+        [[UIMenuItem alloc] initWithTitle:title
+                                   action:@selector(chromePartialTranslate:)];
+    RegisterEditMenuItem(menuItem);
+  }
 }
 
 - (BOOL)canPerformChromeAction:(SEL)action withSender:(id)sender {
   if (action == @selector(linkToText:)) {
     return [self.linkToTextDelegate shouldOfferLinkToText];
   }
+  if (action == @selector(chromePartialTranslate:)) {
+    BOOL canHandlePartialTranslate =
+        [self.partialTranslateDelegate canHandlePartialTranslateSelection];
+    if (canHandlePartialTranslate && [self firstResponder] &&
+        _originalTranslateCommand) {
+      return [[self firstResponder]
+          canPerformAction:_originalTranslateCommand.action
+                withSender:_originalTranslateCommand];
+    }
+    return canHandlePartialTranslate;
+  }
   return NO;
 }
 
+#pragma mark - LinkToTextDelegate methods
+
 - (void)linkToText:(UIMenuItem*)item {
   DCHECK(base::FeatureList::IsEnabled(kSharedHighlightingIOS));
   DCHECK(self.linkToTextDelegate);
   [self.linkToTextDelegate handleLinkToTextSelection];
 }
 
+#pragma mark - PartialTranslateDelegate methods
+
+- (void)chromePartialTranslate:(UIMenuItem*)item {
+  DCHECK(base::FeatureList::IsEnabled(kIOSEditMenuPartialTranslate));
+  DCHECK(self.partialTranslateDelegate);
+  [self.partialTranslateDelegate handlePartialTranslateSelection];
+}
+
+#pragma mark - private methods
+
+- (UIResponder*)firstResponder {
+  if (_firstResponder) {
+    return _firstResponder;
+  }
+  _firstResponder = GetFirstResponder();
+  __weak BrowserEditMenuHandler* weakSelf = self;
+  dispatch_async(dispatch_get_main_queue(), ^{
+    weakSelf.firstResponder = nil;
+  });
+  return _firstResponder;
+}
+
 @end
diff --git a/ios/chrome/browser/ui/browser_container/edit_menu_alert_delegate.h b/ios/chrome/browser/ui/browser_container/edit_menu_alert_delegate.h
new file mode 100644
index 0000000..a4e4715
--- /dev/null
+++ b/ios/chrome/browser/ui/browser_container/edit_menu_alert_delegate.h
@@ -0,0 +1,39 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_BROWSER_CONTAINER_EDIT_MENU_ALERT_DELEGATE_H_
+#define IOS_CHROME_BROWSER_UI_BROWSER_CONTAINER_EDIT_MENU_ALERT_DELEGATE_H_
+
+#import <UIKit/UIKit.h>
+
+#import "base/ios/block_types.h"
+
+@interface EditMenuAlertDelegateAction : NSObject
+- (instancetype)initWithTitle:(NSString*)title
+                       action:(ProceduralBlock)action
+                        style:(UIAlertActionStyle)style
+    NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
+
+// The title of the action.
+@property(nonatomic, copy, readonly) NSString* title;
+
+// The action triggered.
+@property(nonatomic, strong, readonly) ProceduralBlock action;
+
+// The style of the button.
+@property(nonatomic, assign, readonly) UIAlertActionStyle style;
+@end
+
+// Protocol to provide alert presenter to edit menu handlers.
+@protocol EditMenuAlertDelegate
+
+// Present the alert with the given title, message and actions.
+- (void)showAlertWithTitle:(NSString*)title
+                   message:(NSString*)message
+                   actions:(NSArray<EditMenuAlertDelegateAction*>*)actions;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_BROWSER_CONTAINER_EDIT_MENU_ALERT_DELEGATE_H_
diff --git a/ios/chrome/browser/ui/browser_container/edit_menu_alert_delegate.mm b/ios/chrome/browser/ui/browser_container/edit_menu_alert_delegate.mm
new file mode 100644
index 0000000..1d5a2487
--- /dev/null
+++ b/ios/chrome/browser/ui/browser_container/edit_menu_alert_delegate.mm
@@ -0,0 +1,24 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/browser_container/edit_menu_alert_delegate.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+@implementation EditMenuAlertDelegateAction
+- (instancetype)initWithTitle:(NSString*)title
+                       action:(ProceduralBlock)action
+                        style:(UIAlertActionStyle)style {
+  self = [super init];
+  if (self) {
+    _title = [title copy];
+    _action = action;
+    _style = style;
+  }
+  return self;
+}
+
+@end
diff --git a/ios/chrome/browser/ui/credential_provider_promo/BUILD.gn b/ios/chrome/browser/ui/credential_provider_promo/BUILD.gn
index 53875a9..216139c4 100644
--- a/ios/chrome/browser/ui/credential_provider_promo/BUILD.gn
+++ b/ios/chrome/browser/ui/credential_provider_promo/BUILD.gn
@@ -11,6 +11,8 @@
     "credential_provider_promo_display_handler.mm",
     "credential_provider_promo_mediator.h",
     "credential_provider_promo_mediator.mm",
+    "credential_provider_promo_metrics.h",
+    "credential_provider_promo_metrics.mm",
   ]
   deps = [
     ":credential_provider_promo_ui",
diff --git a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_constants.h b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_constants.h
index 2b63d65..2122bf44 100644
--- a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_constants.h
+++ b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_constants.h
@@ -5,11 +5,15 @@
 #ifndef IOS_CHROME_BROWSER_UI_CREDENTIAL_PROVIDER_PROMO_CREDENTIAL_PROVIDER_PROMO_CONSTANTS_H_
 #define IOS_CHROME_BROWSER_UI_CREDENTIAL_PROVIDER_PROMO_CREDENTIAL_PROVIDER_PROMO_CONSTANTS_H_
 
-enum CredentialProviderPromoSource {
-  kPasswordCopied,
-  kPasswordSaved,
-  kRemindLaterSelected,
-  kAutofillUsed,
+// Persisted in local state and used as Enum for
+// IOS.CredentialProviderExtension.Promo.Impression histogram. Entries should
+// not be renumbered and numeric values should never be reused.
+enum class IOSCredentialProviderPromoSource {
+  kUnknown = 0,
+  kPasswordCopied = 1,
+  kPasswordSaved = 2,
+  kAutofillUsed = 3,
+  kMaxValue = kAutofillUsed,
 };
 
 enum CredentialProviderPromoContext {
diff --git a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_coordinator.mm b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_coordinator.mm
index 16823e4..5ce114b0 100644
--- a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_coordinator.mm
+++ b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_coordinator.mm
@@ -13,6 +13,7 @@
 #import "ios/chrome/browser/ui/commands/credential_provider_promo_commands.h"
 #import "ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_constants.h"
 #import "ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_mediator.h"
+#import "ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_metrics.h"
 #import "ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_view_controller.h"
 #import "ios/chrome/browser/ui/util/top_view_controller.h"
 #import "ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h"
@@ -44,6 +45,8 @@
 
 @end
 
+using credential_provider_promo::IOSCredentialProviderPromoAction;
+
 @implementation CredentialProviderPromoCoordinator
 
 - (void)start {
@@ -94,6 +97,10 @@
                                   animated:YES
                                 completion:nil];
   self.promoSeenInCurrentSession = YES;
+
+  credential_provider_promo::RecordImpression(
+      [self.mediator promoOriginalSource],
+      self.trigger == CredentialProviderPromoTrigger::RemindMeLater);
 }
 
 #pragma mark - ConfirmationAlertActionHandler
@@ -102,6 +109,7 @@
   [self hidePromo];
   if (self.promoContext == CredentialProviderPromoContext::kFirstStep) {
     [self presentLearnMore];
+    [self recordAction:IOSCredentialProviderPromoAction::kLearnMore];
   } else {
     // Open iOS settings.
     [[UIApplication sharedApplication]
@@ -109,18 +117,23 @@
                               URLWithString:UIApplicationOpenSettingsURLString]
                   options:{}
         completionHandler:nil];
+    [self recordAction:IOSCredentialProviderPromoAction::kGoToSettings];
   }
 }
 
 - (void)confirmationAlertSecondaryAction {
   [self hidePromo];
+
   GetApplicationContext()->GetLocalState()->SetBoolean(
       prefs::kIosCredentialProviderPromoStopPromo, true);
+
+  [self recordAction:IOSCredentialProviderPromoAction::kNo];
 }
 
 - (void)confirmationAlertTertiaryAction {
   [self hidePromo];
   [self.mediator registerPromoWithPromosManager];
+  [self recordAction:IOSCredentialProviderPromoAction::kRemindMeLater];
 }
 
 #pragma mark - Private
@@ -148,4 +161,11 @@
                          completion:nil];
 }
 
+// Help function for metrics.
+- (void)recordAction:(IOSCredentialProviderPromoAction)action {
+  credential_provider_promo::RecordAction(
+      [self.mediator promoOriginalSource],
+      self.trigger == CredentialProviderPromoTrigger::RemindMeLater, action);
+}
+
 @end
diff --git a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_mediator.h b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_mediator.h
index 10d1a69..874fdfe 100644
--- a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_mediator.h
+++ b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_mediator.h
@@ -46,6 +46,11 @@
 // Registers the promo for single display.
 - (void)registerPromoWithPromosManager;
 
+// Returns the source for the last time the promo was displayed. ::kUnknown is
+// returned by default. This is persisted so subsequent resurfacing of the promo
+// can access it.
+- (IOSCredentialProviderPromoSource)promoOriginalSource;
+
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_CREDENTIAL_PROVIDER_PROMO_CREDENTIAL_PROVIDER_PROMO_MEDIATOR_H_
diff --git a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_mediator.mm b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_mediator.mm
index 0c86cb5..0f18bc9a 100644
--- a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_mediator.mm
+++ b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_mediator.mm
@@ -8,6 +8,7 @@
 #import "base/path_service.h"
 #import "components/password_manager/core/browser/password_manager_util.h"
 #import "components/prefs/pref_service.h"
+#import "ios/chrome/browser/application_context/application_context.h"
 #import "ios/chrome/browser/credential_provider_promo/features.h"
 #import "ios/chrome/browser/prefs/pref_names.h"
 #import "ios/chrome/browser/promos_manager/constants.h"
@@ -75,34 +76,39 @@
 
 - (void)configureConsumerWithTrigger:(CredentialProviderPromoTrigger)trigger
                              context:(CredentialProviderPromoContext)context {
-  CredentialProviderPromoSource source;
+  IOSCredentialProviderPromoSource source;
   self.promoContext = context;
   switch (trigger) {
     case CredentialProviderPromoTrigger::PasswordCopied:
-      source = CredentialProviderPromoSource::kPasswordCopied;
+      source = IOSCredentialProviderPromoSource::kPasswordCopied;
       [self setAnimation];
       break;
     case CredentialProviderPromoTrigger::PasswordSaved:
-      source = CredentialProviderPromoSource::kPasswordSaved;
+      source = IOSCredentialProviderPromoSource::kPasswordSaved;
       if (self.promoContext == CredentialProviderPromoContext::kLearnMore) {
         [self setAnimation];
       }
       break;
     case CredentialProviderPromoTrigger::SuccessfulLoginUsingExistingPassword:
-      source = CredentialProviderPromoSource::kAutofillUsed;
+      source = IOSCredentialProviderPromoSource::kAutofillUsed;
       if (self.promoContext == CredentialProviderPromoContext::kLearnMore) {
         [self setAnimation];
       }
       break;
     case CredentialProviderPromoTrigger::RemindMeLater:
-      // TODO(crbug.com/1392116): show the same promo that was shown when
-      // 'remind me later' was selected
-      source = CredentialProviderPromoSource::kRemindLaterSelected;
+      source = [self promoOriginalSource];
       [self setAnimation];
       break;
   }
 
   [self setTextAndImageWithSource:source];
+
+  // Set the promo source in the Prefs. Skip for 'RemindMeLater' triggers as
+  // source is already present.
+  if (trigger != CredentialProviderPromoTrigger::RemindMeLater) {
+    GetApplicationContext()->GetLocalState()->SetInteger(
+        prefs::kIosCredentialProviderPromoSource, static_cast<int>(source));
+  }
 }
 
 - (void)registerPromoWithPromosManager {
@@ -114,6 +120,14 @@
       promos_manager::Promo::CredentialProviderExtension);
 }
 
+- (IOSCredentialProviderPromoSource)promoOriginalSource {
+  int sourceAsInteger = GetApplicationContext()->GetLocalState()->GetInteger(
+      prefs::kIosCredentialProviderPromoSource);
+  DCHECK(sourceAsInteger <=
+         static_cast<int>(IOSCredentialProviderPromoSource::kMaxValue));
+  return static_cast<IOSCredentialProviderPromoSource>(sourceAsInteger);
+}
+
 #pragma mark - Private
 
 // Sets the animation to the consumer that corresponds to the value of
@@ -134,7 +148,7 @@
 
 // Sets the text and image to the consumer. The text set depends on the value of
 // promoContext. When `source` is kPasswordCopied, no image is set.
-- (void)setTextAndImageWithSource:(CredentialProviderPromoSource)source {
+- (void)setTextAndImageWithSource:(IOSCredentialProviderPromoSource)source {
   DCHECK(self.consumer);
   NSString* titleString;
   NSString* subtitleString;
@@ -154,8 +168,7 @@
         l10n_util::GetNSString(IDS_IOS_CREDENTIAL_PROVIDER_PROMO_LEARN_HOW);
     image = ios::provider::GetBrandedImage(
         ios::provider::BrandedImage::kPasswordSuggestionKey);
-    if (source == CredentialProviderPromoSource::kPasswordCopied ||
-        source == CredentialProviderPromoSource::kRemindLaterSelected) {
+    if (source == IOSCredentialProviderPromoSource::kPasswordCopied) {
       image = nil;
     }
   } else {
diff --git a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_metrics.h b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_metrics.h
new file mode 100644
index 0000000..c601c11
--- /dev/null
+++ b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_metrics.h
@@ -0,0 +1,33 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+#import "ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_constants.h"
+
+#ifndef IOS_CHROME_BROWSER_UI_CREDENTIAL_PROVIDER_PROMO_CREDENTIAL_PROVIDER_PROMO_METRICS_H_
+#define IOS_CHROME_BROWSER_UI_CREDENTIAL_PROVIDER_PROMO_CREDENTIAL_PROVIDER_PROMO_METRICS_H_
+
+namespace credential_provider_promo {
+
+// Enum for histograms like
+// IOS.CredentialProviderExtension.Promo.OnPasswordSaved. Entries should not be
+// renumbered and numeric values should never be reused.
+enum class IOSCredentialProviderPromoAction : int {
+  kLearnMore = 0,
+  kGoToSettings = 1,
+  kRemindMeLater = 2,
+  kNo = 3,
+  kMaxValue = kNo,
+};
+
+// Record impression metric when a credentail provider promo is displayed.
+void RecordImpression(IOSCredentialProviderPromoSource source,
+                      bool is_reminder);
+
+// Record action metric for all the user actions on the displayed promo.
+void RecordAction(IOSCredentialProviderPromoSource source,
+                  bool is_reminder,
+                  IOSCredentialProviderPromoAction action);
+
+}  // namespace credential_provider_promo
+
+#endif  // IOS_CHROME_BROWSER_UI_CREDENTIAL_PROVIDER_PROMO_CREDENTIAL_PROVIDER_PROMO_METRICS_H_
diff --git a/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_metrics.mm b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_metrics.mm
new file mode 100644
index 0000000..7692534
--- /dev/null
+++ b/ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_metrics.mm
@@ -0,0 +1,61 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/credential_provider_promo/credential_provider_promo_metrics.h"
+
+#import "base/metrics/histogram_functions.h"
+#import "base/notreached.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+namespace credential_provider_promo {
+
+void RecordImpression(IOSCredentialProviderPromoSource source,
+                      bool is_reminder) {
+  if (is_reminder) {
+    base::UmaHistogramEnumeration(
+        "IOS.CredentialProviderExtension.Promo.Impression.IsReminder", source);
+  } else {
+    base::UmaHistogramEnumeration(
+        "IOS.CredentialProviderExtension.Promo.Impression", source);
+  }
+}
+
+void RecordAction(IOSCredentialProviderPromoSource source,
+                  bool is_reminder,
+                  IOSCredentialProviderPromoAction action) {
+  std::string name;
+  switch (source) {
+    case IOSCredentialProviderPromoSource::kPasswordCopied:
+      name = is_reminder
+                 ? "IOS.CredentialProviderExtension.Promo.OnPasswordCopied."
+                   "IsReminder"
+                 : "IOS.CredentialProviderExtension.Promo.OnPasswordCopied";
+      break;
+    case IOSCredentialProviderPromoSource::kPasswordSaved:
+      name = is_reminder
+                 ? "IOS.CredentialProviderExtension.Promo.OnPasswordSaved."
+                   "IsReminder"
+                 : "IOS.CredentialProviderExtension.Promo.OnPasswordSaved";
+      break;
+    case IOSCredentialProviderPromoSource::kAutofillUsed:
+      name = is_reminder ? "IOS.CredentialProviderExtension.Promo."
+                           "OnSuccessfulLoginWithAutofilledPassword.IsReminder"
+                         : "IOS.CredentialProviderExtension.Promo."
+                           "OnSuccessfulLoginWithAutofilledPassword";
+      break;
+    case IOSCredentialProviderPromoSource::kUnknown:
+      NOTREACHED();
+      name = is_reminder
+                 ? "IOS.CredentialProviderExtension.Promo.Unknown.IsReminder"
+                 : "IOS.CredentialProviderExtension.Promo.Unknown";
+      break;
+  }
+
+  base::UmaHistogramEnumeration(name.data(), action);
+}
+
+}  // namespace credential_provider_promo
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator+private.h b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator+private.h
index 0cf6f56..4c12467 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator+private.h
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator+private.h
@@ -12,6 +12,7 @@
 #import "ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h"
 
 @class ContentSuggestionsHeaderViewController;
+@class NewTabPageViewController;
 
 // This is a private category that is intended to only be imported in
 // new_tab_page_coordinator.mm and tests.
@@ -27,6 +28,8 @@
 // True if the NTP view is currently displayed to the user.
 @property(nonatomic, readonly) BOOL visible;
 
+@property(nonatomic, strong) NewTabPageViewController* NTPViewController;
+
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_NTP_NEW_TAB_PAGE_COORDINATOR_PRIVATE_H_
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator_unittest.mm b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator_unittest.mm
index 94591f04..26ff416 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator_unittest.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator_unittest.mm
@@ -128,6 +128,39 @@
                      forProtocol:@protocol(FakeboxFocuser)];
   }
 
+  // Dynamically calls a selector on an object.
+  void DynamicallyCallSelector(id object, SEL selector, Class klass) {
+    NSMethodSignature* signature =
+        [klass instanceMethodSignatureForSelector:selector];
+    // Note: numberOfArguments is always at least 2 (self and _cmd).
+    ASSERT_EQ(int(signature.numberOfArguments), 2);
+    NSInvocation* invocation =
+        [NSInvocation invocationWithMethodSignature:signature];
+    invocation.selector = selector;
+    [invocation invokeWithTarget:object];
+  }
+
+  // Expects a coordinator method call to call a view controller method.
+  void ExpectMethodToProxyToVC(SEL coordinator_selector,
+                               SEL view_controller_selector) {
+    NewTabPageViewController* original_vc = coordinator_.NTPViewController;
+    id view_controller_mock = OCMClassMock([NewTabPageViewController class]);
+    coordinator_.NTPViewController =
+        (NewTabPageViewController*)view_controller_mock;
+
+    // Expect the call on the view controller.
+    DynamicallyCallSelector([view_controller_mock expect],
+                            view_controller_selector,
+                            [NewTabPageViewController class]);
+
+    // Call the method on the coordinator.
+    DynamicallyCallSelector(coordinator_, coordinator_selector,
+                            [coordinator_ class]);
+
+    [view_controller_mock verify];
+    coordinator_.NTPViewController = original_vc;
+  }
+
   web::WebState* web_state_;
   id toolbar_delegate_;
   id delegate_;
@@ -252,3 +285,22 @@
     coordinator_ = nil;
   }
 }
+
+// Tests that various NTPCoordinator methods correctly proxy method calls to
+// the NTPViewController.
+TEST_F(NewTabPageCoordinatorTest, ProxiesNTPViewControllerMethods) {
+  CreateCoordinator(/*off_the_record=*/false);
+  SetupCommandHandlerMocks();
+  [coordinator_ start];
+
+  ExpectMethodToProxyToVC(@selector(stopScrolling), @selector(stopScrolling));
+  ExpectMethodToProxyToVC(@selector(isScrolledToTop),
+                          @selector(isNTPScrolledToTop));
+  ExpectMethodToProxyToVC(@selector(willUpdateSnapshot),
+                          @selector(willUpdateSnapshot));
+  ExpectMethodToProxyToVC(@selector(focusFakebox), @selector(focusFakebox));
+  ExpectMethodToProxyToVC(@selector(locationBarDidResignFirstResponder),
+                          @selector(omniboxDidResignFirstResponder));
+
+  [coordinator_ stop];
+}
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator.mm
index 1f2dcd9c..628f1fb 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator.mm
@@ -46,19 +46,15 @@
 // The icon image, can be from the config or not from it.
 - (UIImage*)iconImageWithConfig:
     (PasswordInfobarBannerOverlayRequestConfig*)config {
-  UIImage* image;
-  if (UseSymbols()) {
-    image = CustomSymbolWithPointSize(kPasswordSymbol, kInfobarSymbolPointSize);
+  UIImage* image =
+      CustomSymbolWithPointSize(kPasswordSymbol, kInfobarSymbolPointSize);
 #if !BUILDFLAG(IS_IOS_MACCATALYST)
-    if (base::FeatureList::IsEnabled(
-            password_manager::features::kIOSShowPasswordStorageInSaveInfobar)) {
-      image = MakeSymbolMulticolor(CustomSymbolWithPointSize(
-          kMulticolorPasswordSymbol, kInfobarSymbolPointSize));
-    }
-#endif  // BUILDFLAG(IS_IOS_MACCATALYST)
-  } else {
-    image = [UIImage imageNamed:@"password_key"];
+  if (base::FeatureList::IsEnabled(
+          password_manager::features::kIOSShowPasswordStorageInSaveInfobar)) {
+    image = MakeSymbolMulticolor(CustomSymbolWithPointSize(
+        kMulticolorPasswordSymbol, kInfobarSymbolPointSize));
   }
+#endif  // BUILDFLAG(IS_IOS_MACCATALYST)
   return image;
 }
 
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator_unittest.mm b/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator_unittest.mm
index 01366f6..6870893e 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator_unittest.mm
@@ -82,63 +82,7 @@
               consumer.buttonText);
   EXPECT_NSEQ(title, consumer.titleText);
   EXPECT_NSEQ(subtitle, consumer.subtitleText);
-
   EXPECT_TRUE(consumer.presentsModal);
-}
-
-// Tests that a PasswordInfobarBannerOverlayMediator correctly sets up its
-// consumer's icon with legacy assets.
-TEST_F(PasswordInfobarBannerOverlayMediatorTest,
-       SetUpConsumerIconNotUseSymbols) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndDisableFeature(kUseSFSymbols);
-
-  // Create an InfoBarIOS with a IOSChromeSavePasswordInfoBarDelegate.
-  std::unique_ptr<IOSChromeSavePasswordInfoBarDelegate> passed_delegate =
-      MockIOSChromeSavePasswordInfoBarDelegate::Create(kUsername, kPassword);
-  InfoBarIOS infobar(InfobarType::kInfobarTypePasswordSave,
-                     std::move(passed_delegate));
-  // Package the infobar into an OverlayRequest, then create a mediator that
-  // uses this request in order to set up a fake consumer.
-  std::unique_ptr<OverlayRequest> request = OverlayRequest::CreateWithConfig<
-      PasswordInfobarBannerOverlayRequestConfig>(&infobar);
-  PasswordInfobarBannerOverlayMediator* mediator =
-      [[PasswordInfobarBannerOverlayMediator alloc]
-          initWithRequest:request.get()];
-  FakeInfobarBannerConsumer* consumer =
-      [[FakeInfobarBannerConsumer alloc] init];
-  mediator.consumer = consumer;
-
-  // Verify that the infobar icon was set up properly.
-  EXPECT_NSEQ([UIImage imageNamed:@"password_key"], consumer.iconImage);
-}
-
-// Tests that a PasswordInfobarBannerOverlayMediator correctly sets up its
-// consumer's icon with SF symbol.
-TEST_F(PasswordInfobarBannerOverlayMediatorTest, SetUpConsumerIconUseSymbols) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeatures(
-      /*enabled_features=*/{kUseSFSymbols},
-      /*disabled_features=*/{
-          password_manager::features::kIOSShowPasswordStorageInSaveInfobar});
-
-  // Create an InfoBarIOS with a IOSChromeSavePasswordInfoBarDelegate.
-  std::unique_ptr<IOSChromeSavePasswordInfoBarDelegate> passed_delegate =
-      MockIOSChromeSavePasswordInfoBarDelegate::Create(kUsername, kPassword);
-  InfoBarIOS infobar(InfobarType::kInfobarTypePasswordSave,
-                     std::move(passed_delegate));
-  // Package the infobar into an OverlayRequest, then create a mediator that
-  // uses this request in order to set up a fake consumer.
-  std::unique_ptr<OverlayRequest> request = OverlayRequest::CreateWithConfig<
-      PasswordInfobarBannerOverlayRequestConfig>(&infobar);
-  PasswordInfobarBannerOverlayMediator* mediator =
-      [[PasswordInfobarBannerOverlayMediator alloc]
-          initWithRequest:request.get()];
-  FakeInfobarBannerConsumer* consumer =
-      [[FakeInfobarBannerConsumer alloc] init];
-  mediator.consumer = consumer;
-
-  // Verify that the infobar icon was set up properly.
   EXPECT_NSEQ(
       CustomSymbolWithPointSize(kPasswordSymbol, kInfobarSymbolPointSize),
       consumer.iconImage);
@@ -147,11 +91,8 @@
 TEST_F(PasswordInfobarBannerOverlayMediatorTest,
        SetUpConsumerWithLocalStorage) {
   base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeatures(
-      /*enabled_features=*/{kUseSFSymbols,
-                            password_manager::features::
-                                kIOSShowPasswordStorageInSaveInfobar},
-      /*disabled_features=*/{});
+  feature_list.InitAndEnableFeature(
+      password_manager::features::kIOSShowPasswordStorageInSaveInfobar);
 
   // Create an InfoBarIOS with a IOSChromeSavePasswordInfoBarDelegate.
   InfoBarIOS infobar(InfobarType::kInfobarTypePasswordSave,
@@ -190,11 +131,8 @@
 TEST_F(PasswordInfobarBannerOverlayMediatorTest,
        SetUpConsumerWithAccountStorage) {
   base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeatures(
-      /*enabled_features=*/{kUseSFSymbols,
-                            password_manager::features::
-                                kIOSShowPasswordStorageInSaveInfobar},
-      /*disabled_features=*/{});
+  feature_list.InitAndEnableFeature(
+      password_manager::features::kIOSShowPasswordStorageInSaveInfobar);
 
   // Create an InfoBarIOS with a IOSChromeSavePasswordInfoBarDelegate.
   InfoBarIOS infobar(InfobarType::kInfobarTypePasswordSave,
diff --git a/ios/chrome/browser/ui/partial_translate/BUILD.gn b/ios/chrome/browser/ui/partial_translate/BUILD.gn
new file mode 100644
index 0000000..b701361
--- /dev/null
+++ b/ios/chrome/browser/ui/partial_translate/BUILD.gn
@@ -0,0 +1,23 @@
+# Copyright 2023 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("partial_translate") {
+  sources = [
+    "partial_translate_delegate.h",
+    "partial_translate_mediator.h",
+    "partial_translate_mediator.mm",
+  ]
+  deps = [
+    "//components/strings",
+    "//ios/chrome/app/strings",
+    "//ios/chrome/browser/ui:feature_flags",
+    "//ios/chrome/browser/ui/browser_container:edit_menu_alert_delegate",
+    "//ios/chrome/browser/ui/commands",
+    "//ios/chrome/browser/web_selection",
+    "//ios/chrome/browser/web_state_list",
+    "//ios/public/provider/chrome/browser/partial_translate:partial_translate_api",
+    "//ios/web/public",
+  ]
+  configs += [ "//build/config/compiler:enable_arc" ]
+}
diff --git a/ios/chrome/browser/ui/partial_translate/OWNERS b/ios/chrome/browser/ui/partial_translate/OWNERS
new file mode 100644
index 0000000..e054424d
--- /dev/null
+++ b/ios/chrome/browser/ui/partial_translate/OWNERS
@@ -0,0 +1,2 @@
+olivierrobin@chromium.org
+djean@chromium.org
diff --git a/ios/chrome/browser/ui/partial_translate/partial_translate_delegate.h b/ios/chrome/browser/ui/partial_translate/partial_translate_delegate.h
new file mode 100644
index 0000000..b3e4dea
--- /dev/null
+++ b/ios/chrome/browser/ui/partial_translate/partial_translate_delegate.h
@@ -0,0 +1,19 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_PARTIAL_TRANSLATE_PARTIAL_TRANSLATE_DELEGATE_H_
+#define IOS_CHROME_BROWSER_UI_PARTIAL_TRANSLATE_PARTIAL_TRANSLATE_DELEGATE_H_
+
+// Protocol for handling link to text and presenting related UI.
+@protocol PartialTranslateDelegate
+
+// Handles the link to text menu item selection.
+- (void)handlePartialTranslateSelection;
+
+// Returns whether a partial translate can be handled.
+- (BOOL)canHandlePartialTranslateSelection;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_PARTIAL_TRANSLATE_PARTIAL_TRANSLATE_DELEGATE_H_
diff --git a/ios/chrome/browser/ui/partial_translate/partial_translate_mediator.h b/ios/chrome/browser/ui/partial_translate/partial_translate_mediator.h
new file mode 100644
index 0000000..104a4d0
--- /dev/null
+++ b/ios/chrome/browser/ui/partial_translate/partial_translate_mediator.h
@@ -0,0 +1,40 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_PARTIAL_TRANSLATE_PARTIAL_TRANSLATE_MEDIATOR_H_
+#define IOS_CHROME_BROWSER_UI_PARTIAL_TRANSLATE_PARTIAL_TRANSLATE_MEDIATOR_H_
+
+#import <UIKit/UIKit.h>
+
+#import "ios/chrome/browser/ui/partial_translate/partial_translate_delegate.h"
+
+@protocol ActivityServiceCommands;
+@protocol BrowserCoordinatorCommands;
+@protocol EditMenuAlertDelegate;
+class WebStateList;
+
+// Mediator that mediates between the browser container views and the
+// link_to_text tab helpers.
+@interface PartialTranslateMediator : NSObject <PartialTranslateDelegate>
+
+// Initializer for a mediator. `webStateList` is the WebStateList for the
+// Browser whose content is shown within the BrowserContainerConsumer. It must
+// be non-null.
+- (instancetype)initWithWebStateList:(WebStateList*)webStateList
+              withBaseViewController:(UIViewController*)baseViewController
+                           incognito:(BOOL)incognito NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
+
+// Disconnects the mediator.
+- (void)shutdown;
+
+// The handler for BrowserCoordinator commands (to trigger full page translate).
+@property(nonatomic, weak) id<BrowserCoordinatorCommands> browserHandler;
+
+// The delegate to present error message alerts.
+@property(nonatomic, weak) id<EditMenuAlertDelegate> alertDelegate;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_PARTIAL_TRANSLATE_PARTIAL_TRANSLATE_MEDIATOR_H_
diff --git a/ios/chrome/browser/ui/partial_translate/partial_translate_mediator.mm b/ios/chrome/browser/ui/partial_translate/partial_translate_mediator.mm
new file mode 100644
index 0000000..0db0566b
--- /dev/null
+++ b/ios/chrome/browser/ui/partial_translate/partial_translate_mediator.mm
@@ -0,0 +1,163 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/partial_translate/partial_translate_mediator.h"
+
+#import "components/strings/grit/components_strings.h"
+#import "ios/chrome/browser/ui/browser_container/edit_menu_alert_delegate.h"
+#import "ios/chrome/browser/ui/commands/browser_coordinator_commands.h"
+#import "ios/chrome/browser/ui/ui_feature_flags.h"
+#import "ios/chrome/browser/web_selection/web_selection_response.h"
+#import "ios/chrome/browser/web_selection/web_selection_tab_helper.h"
+#import "ios/chrome/browser/web_state_list/web_state_list.h"
+#import "ios/chrome/grit/ios_strings.h"
+#import "ios/public/provider/chrome/browser/partial_translate/partial_translate_api.h"
+#import "ios/web/public/web_state.h"
+#import "ui/base/l10n/l10n_util_mac.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+@interface PartialTranslateMediator ()
+
+// The Browser's WebStateList.
+@property(nonatomic, readonly) WebStateList* webStateList;
+
+// Whether the mediator is handling partial translate for an incognito tab.
+@property(nonatomic, weak) UIViewController* baseViewController;
+
+// Whether the mediator is handling partial translate for an incognito tab.
+@property(nonatomic, assign) BOOL incognito;
+
+// The controller to display Partial Translate.
+@property(nonatomic, strong) id<PartialTranslateController> controller;
+
+@end
+
+@implementation PartialTranslateMediator
+
+- (instancetype)initWithWebStateList:(WebStateList*)webStateList
+              withBaseViewController:(UIViewController*)baseViewController
+                           incognito:(BOOL)incognito {
+  if (self = [super init]) {
+    DCHECK(webStateList);
+    DCHECK(baseViewController);
+    _webStateList = webStateList;
+    _baseViewController = baseViewController;
+    _incognito = incognito;
+  }
+  return self;
+}
+
+- (void)shutdown {
+  if (_webStateList) {
+    _webStateList = nullptr;
+  }
+}
+
+- (void)handlePartialTranslateSelection {
+  DCHECK(base::FeatureList::IsEnabled(kSharedHighlightingIOS));
+  // TODO(crbug.com/1417238): add metrics
+  WebSelectionTabHelper* tabHelper = [self webSelectionTabHelper];
+  if (!tabHelper) {
+    return;
+  }
+
+  __weak __typeof(self) weakSelf = self;
+  tabHelper->GetSelectedText(base::BindOnce(^(WebSelectionResponse* response) {
+    [weakSelf receivedWebSelectionResponse:response];
+  }));
+}
+
+- (BOOL)canHandlePartialTranslateSelection {
+  DCHECK(base::FeatureList::IsEnabled(kSharedHighlightingIOS));
+  // TODO(crbug.com/1417238): add metrics
+  WebSelectionTabHelper* tabHelper = [self webSelectionTabHelper];
+  if (!tabHelper) {
+    return NO;
+  }
+  return tabHelper->CanRetrieveSelectedText() &&
+         PartialTranslateLimitMaxCharacters() > 0u;
+}
+
+- (void)switchToFullTranslateWithMessage:(NSString*)message {
+  // TODO(crbug.com/1417238): add metrics
+  if (!self.alertDelegate) {
+    return;
+  }
+  __weak __typeof(self) weakSelf = self;
+  EditMenuAlertDelegateAction* cancelAction =
+      [[EditMenuAlertDelegateAction alloc]
+          initWithTitle:l10n_util::GetNSString(IDS_CANCEL)
+                 action:^{
+                   // TODO(crbug.com/1417238): add metrics
+                 }
+                  style:UIAlertActionStyleCancel];
+  EditMenuAlertDelegateAction* translateAction = [[EditMenuAlertDelegateAction
+      alloc]
+      initWithTitle:l10n_util::GetNSString(
+                        IDS_IOS_PARTIAL_TRANSLATE_ACTION_TRANSLATE_FULL_PAGE)
+             action:^{
+               // TODO(crbug.com/1417238): add metrics
+               [weakSelf triggerFullTranslate];
+             }
+              style:UIAlertActionStyleDefault];
+
+  [self.alertDelegate
+      showAlertWithTitle:
+          l10n_util::GetNSString(
+              IDS_IOS_PARTIAL_TRANSLATE_SWITCH_FULL_PAGE_TRANSLATION)
+                 message:message
+                 actions:@[ cancelAction, translateAction ]];
+}
+
+- (void)receivedWebSelectionResponse:(WebSelectionResponse*)response {
+  DCHECK(response);
+  // TODO(crbug.com/1417238): add metrics
+  if (response.selectedText.length > PartialTranslateLimitMaxCharacters()) {
+    return
+        [self switchToFullTranslateWithMessage:
+                  l10n_util::GetNSString(
+                      IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_TOO_LONG_ERROR)];
+  }
+  if ([[response.selectedText
+          stringByTrimmingCharactersInSet:[NSCharacterSet
+                                              whitespaceAndNewlineCharacterSet]]
+          length] == 0u) {
+    return
+        [self switchToFullTranslateWithMessage:
+                  l10n_util::GetNSString(
+                      IDS_IOS_PARTIAL_TRANSLATE_ERROR_STRING_TOO_LONG_ERROR)];
+  }
+  __weak __typeof(self) weakSelf = self;
+  self.controller = NewPartialTranslateController(
+      response.selectedText, response.sourceRect, self.incognito);
+  [self.controller
+      presentOnViewController:self.baseViewController
+        flowCompletionHandler:^(BOOL success) {
+          weakSelf.controller = nil;
+          if (!success) {
+            [weakSelf switchToFullTranslateWithMessage:
+                          l10n_util::GetNSString(
+                              IDS_IOS_PARTIAL_TRANSLATE_ERROR_GENERIC)];
+          }
+        }];
+}
+
+- (void)triggerFullTranslate {
+  [self.browserHandler showTranslate];
+}
+
+- (WebSelectionTabHelper*)webSelectionTabHelper {
+  web::WebState* webState =
+      _webStateList ? _webStateList->GetActiveWebState() : nullptr;
+  if (!webState) {
+    return nullptr;
+  }
+  WebSelectionTabHelper* helper = WebSelectionTabHelper::FromWebState(webState);
+  return helper;
+}
+
+@end
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm b/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm
index 507a051..21ebcf6 100644
--- a/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/password/password_manager_view_controller.mm
@@ -386,6 +386,10 @@
 // Add button for the toolbar.
 @property(nonatomic, strong) UIBarButtonItem* addButtonInToolbar;
 
+// Indicates whether the check button should be shown or not. Used when
+// kIOSPasswordCheckup feature is enabled.
+@property(nonatomic, assign) BOOL shouldShowCheckButton;
+
 @end
 
 @implementation PasswordManagerViewController
@@ -551,10 +555,7 @@
   [self setSearchBarEnabled:self.shouldEnableSearchBar];
   [self updatePasswordCheckButtonWithState:self.passwordCheckState];
   [self updatePasswordCheckStatusLabelWithState:self.passwordCheckState];
-  if (_checkForProblemsItem) {
-    [self reconfigureCellsForItems:@[ _checkForProblemsItem ]];
-  }
-  [self updatePasswordProblemsItem];
+  [self updatePasswordCheckSection];
   [self updateUIForEditState];
 }
 
@@ -629,8 +630,14 @@
   }
 
   [self updatePasswordCheckButtonWithState:_passwordCheckState];
-  [model addItem:_checkForProblemsItem
-      toSectionWithIdentifier:SectionIdentifierPasswordCheck];
+
+  // Only add check button if kIOSPasswordCheckup is disabled, or if it is
+  // enabled and the current PasswordCheckUIState requires the button to be
+  // shown.
+  if (!IsPasswordCheckupEnabled() || self.shouldShowCheckButton) {
+    [model addItem:_checkForProblemsItem
+        toSectionWithIdentifier:SectionIdentifierPasswordCheck];
+  }
 
   // When the Password Checkup feature is enabled, this timestamp only appears
   // in the detail text of the Password Checkup status cell. It is therefore
@@ -1248,9 +1255,7 @@
     return;
   }
 
-  if (_checkForProblemsItem)
-    [self reconfigureCellsForItems:@[ _checkForProblemsItem ]];
-  [self updatePasswordProblemsItem];
+  [self updatePasswordCheckSection];
 
   // When the Password Checkup feature is enabled, this timestamp only appears
   // in the detail text of the Password Checkup status cell. It is therefore
@@ -1520,12 +1525,18 @@
             withRowAnimation:UITableViewRowAnimationTop];
         [model addItem:_passwordProblemsItem
             toSectionWithIdentifier:SectionIdentifierPasswordCheck];
-        [model addItem:_checkForProblemsItem
-            toSectionWithIdentifier:SectionIdentifierPasswordCheck];
         [rowsIndexPaths addObject:[NSIndexPath indexPathForRow:0
                                                      inSection:checkSection]];
-        [rowsIndexPaths addObject:[NSIndexPath indexPathForRow:1
-                                                     inSection:checkSection]];
+        // Only add check button if kIOSPasswordCheckup is disabled, or if it is
+        // enabled and the current PasswordCheckUIState requires the button to
+        // be shown.
+        if (!IsPasswordCheckupEnabled() || self.shouldShowCheckButton) {
+          [model addItem:_checkForProblemsItem
+              toSectionWithIdentifier:SectionIdentifierPasswordCheck];
+
+          [rowsIndexPaths addObject:[NSIndexPath indexPathForRow:1
+                                                       inSection:checkSection]];
+        }
         sectionIndex++;
 
         // Add "Add Password" button.
@@ -1809,8 +1820,9 @@
 
 // Updates password check button according to provided state.
 - (void)updatePasswordCheckButtonWithState:(PasswordCheckUIState)state {
-  if (!_checkForProblemsItem)
+  if (!_checkForProblemsItem) {
     return;
+  }
 
   _checkForProblemsItem.text =
       l10n_util::GetNSString(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON);
@@ -1821,26 +1833,54 @@
     return;
   }
 
-  switch (state) {
-    case PasswordCheckStateSafe:
-    case PasswordCheckStateUnmutedCompromisedPasswords:
-    case PasswordCheckStateReusedPasswords:
-    case PasswordCheckStateWeakPasswords:
-    case PasswordCheckStateDismissedWarnings:
-    case PasswordCheckStateDefault:
-    case PasswordCheckStateError:
-      _checkForProblemsItem.textColor = [UIColor colorNamed:kBlueColor];
-      _checkForProblemsItem.accessibilityTraits &=
-          ~UIAccessibilityTraitNotEnabled;
-      break;
-    case PasswordCheckStateRunning:
-    // Fall through.
-    case PasswordCheckStateDisabled:
-      _checkForProblemsItem.textColor =
-          [UIColor colorNamed:kTextSecondaryColor];
-      _checkForProblemsItem.accessibilityTraits |=
-          UIAccessibilityTraitNotEnabled;
-      break;
+  if (IsPasswordCheckupEnabled()) {
+    switch (state) {
+      case PasswordCheckStateSafe:
+      case PasswordCheckStateUnmutedCompromisedPasswords:
+      case PasswordCheckStateReusedPasswords:
+      case PasswordCheckStateWeakPasswords:
+      case PasswordCheckStateDismissedWarnings:
+      case PasswordCheckStateRunning:
+        self.shouldShowCheckButton = NO;
+        break;
+      case PasswordCheckStateDefault:
+      case PasswordCheckStateError:
+        self.shouldShowCheckButton = YES;
+        _checkForProblemsItem.textColor = [UIColor colorNamed:kBlueColor];
+        _checkForProblemsItem.accessibilityTraits &=
+            ~UIAccessibilityTraitNotEnabled;
+        break;
+      // Fall through.
+      case PasswordCheckStateDisabled:
+        self.shouldShowCheckButton = YES;
+        _checkForProblemsItem.textColor =
+            [UIColor colorNamed:kTextSecondaryColor];
+        _checkForProblemsItem.accessibilityTraits |=
+            UIAccessibilityTraitNotEnabled;
+        break;
+    }
+  } else {
+    switch (state) {
+      case PasswordCheckStateSafe:
+      case PasswordCheckStateUnmutedCompromisedPasswords:
+      case PasswordCheckStateReusedPasswords:
+      case PasswordCheckStateWeakPasswords:
+      case PasswordCheckStateDismissedWarnings:
+      case PasswordCheckStateDefault:
+      case PasswordCheckStateError:
+        _checkForProblemsItem.textColor = [UIColor colorNamed:kBlueColor];
+        _checkForProblemsItem.accessibilityTraits &=
+            ~UIAccessibilityTraitNotEnabled;
+        break;
+      case PasswordCheckStateRunning:
+      // Fall through.
+      case PasswordCheckStateDisabled:
+        _checkForProblemsItem.textColor =
+            [UIColor colorNamed:kTextSecondaryColor];
+        _checkForProblemsItem.accessibilityTraits |=
+            UIAccessibilityTraitNotEnabled;
+        break;
+    }
   }
 }
 
@@ -2325,17 +2365,56 @@
   [self deleteItemAtIndexPaths:indexPaths];
 }
 
-// Updates the UI of the password checkup status cell.
-- (void)updatePasswordProblemsItem {
-  NSIndexPath* indexPath =
-      [self.tableViewModel indexPathForItemType:ItemTypePasswordCheckStatus];
-  if (_passwordProblemsItem &&
-      [self.tableView cellForRowAtIndexPath:indexPath]) {
-    [self reconfigureCellsForItems:@[ _passwordProblemsItem ]];
-    // Refresh the cells' height.
-    [self.tableView beginUpdates];
-    [self.tableView endUpdates];
+- (void)updatePasswordCheckSection {
+  if (![self.tableViewModel
+          hasSectionForSectionIdentifier:SectionIdentifierPasswordCheck]) {
+    return;
   }
+
+  [self.tableView
+      performBatchUpdates:^{
+        if (_passwordProblemsItem) {
+          [self reconfigureCellsForItems:@[ _passwordProblemsItem ]];
+        }
+        if (_checkForProblemsItem) {
+          // If kIOSPasswordCheckup feature is disabled, only reconfigure the
+          // check button cell.
+          if (!IsPasswordCheckupEnabled()) {
+            [self reconfigureCellsForItems:@[ _checkForProblemsItem ]];
+          } else {
+            BOOL checkForProblemsItemIsInModel = [self.tableViewModel
+                hasItemForItemType:ItemTypeCheckForProblemsButton
+                 sectionIdentifier:SectionIdentifierPasswordCheck];
+            // Check if the check button should be removed from the table view.
+            if (!self.shouldShowCheckButton && checkForProblemsItemIsInModel) {
+              [self.tableView
+                  deleteRowsAtIndexPaths:@[ [self checkButtonIndexPath] ]
+                        withRowAnimation:UITableViewRowAnimationAutomatic];
+              [self.tableViewModel
+                         removeItemWithType:ItemTypeCheckForProblemsButton
+                  fromSectionWithIdentifier:SectionIdentifierPasswordCheck];
+            } else if (self.shouldShowCheckButton) {
+              [self reconfigureCellsForItems:@[ _checkForProblemsItem ]];
+              // Check if the check button should be added to the table view.
+              if (!checkForProblemsItemIsInModel) {
+                [self.tableViewModel addItem:_checkForProblemsItem
+                     toSectionWithIdentifier:SectionIdentifierPasswordCheck];
+                [self.tableView
+                    insertRowsAtIndexPaths:@[ [self checkButtonIndexPath] ]
+                          withRowAnimation:UITableViewRowAnimationAutomatic];
+              }
+            }
+          }
+        }
+        [self.tableView layoutIfNeeded];
+      }
+               completion:nil];
+}
+
+- (NSIndexPath*)checkButtonIndexPath {
+  return
+      [self.tableViewModel indexPathForItemType:ItemTypeCheckForProblemsButton
+                              sectionIdentifier:SectionIdentifierPasswordCheck];
 }
 
 #pragma mark - UITableViewDelegate
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/password/password_manager_view_controller_unittest.mm
index 81f925f..81bcd4a4 100644
--- a/ios/chrome/browser/ui/settings/password/password_manager_view_controller_unittest.mm
+++ b/ios/chrome/browser/ui/settings/password/password_manager_view_controller_unittest.mm
@@ -791,6 +791,10 @@
       GetPasswordManagerViewController();
   AddSavedForm1();
 
+  // Switch to default state so that the button is present for when
+  // kIOSPasswordCheckup feature is enabled.
+  ChangePasswordCheckState(PasswordCheckStateDefault);
+
   TableViewDetailTextItem* checkPasswordButton =
       GetTableViewItem(GetSectionIndex(SectionIdentifierPasswordCheck), 1);
   CheckTextCellTextWithId(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON,
@@ -883,6 +887,8 @@
 
   ChangePasswordCheckState(PasswordCheckStateDisabled);
 
+  CheckTextCellTextWithId(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON,
+                          GetSectionIndex(SectionIdentifierPasswordCheck), 1);
   CheckDetailItemTextWithIds(
       IDS_IOS_CHECK_PASSWORDS, IDS_IOS_CHECK_PASSWORDS_DESCRIPTION,
       GetSectionIndex(SectionIdentifierPasswordCheck), 0);
@@ -916,6 +922,8 @@
 
   ChangePasswordCheckState(PasswordCheckStateDisabled);
 
+  CheckTextCellTextWithId(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON,
+                          GetSectionIndex(SectionIdentifierPasswordCheck), 1);
   CheckDetailItemTextWithIds(
       IDS_IOS_PASSWORD_CHECKUP, IDS_IOS_PASSWORD_CHECKUP_DESCRIPTION,
       GetSectionIndex(SectionIdentifierPasswordCheck), 0);
@@ -1054,8 +1062,9 @@
 
   ChangePasswordCheckState(PasswordCheckStateSafe);
 
-  CheckTextCellTextWithId(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON,
-                          GetSectionIndex(SectionIdentifierPasswordCheck), 1);
+  // Check button should be hidden.
+  EXPECT_FALSE(
+      HasTableViewItem(GetSectionIndex(SectionIdentifierPasswordCheck), 1));
 
   SettingsCheckItem* checkPassword =
       GetTableViewItem(GetSectionIndex(SectionIdentifierPasswordCheck), 0);
@@ -1134,8 +1143,10 @@
   AddSavedInsecureForm(InsecureType::kLeaked);
   ChangePasswordCheckState(PasswordCheckStateUnmutedCompromisedPasswords);
 
-  CheckTextCellTextWithId(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON,
-                          GetSectionIndex(SectionIdentifierPasswordCheck), 1);
+  // Check button should be hidden.
+  EXPECT_FALSE(
+      HasTableViewItem(GetSectionIndex(SectionIdentifierPasswordCheck), 1));
+
   CheckDetailItemTextWithPluralIds(
       IDS_IOS_PASSWORD_CHECKUP, IDS_IOS_PASSWORD_CHECKUP_COMPROMISED_COUNT, 1,
       GetSectionIndex(SectionIdentifierPasswordCheck), 0);
@@ -1172,8 +1183,10 @@
                        /*username_value=*/u"test1@egmail.com");
   ChangePasswordCheckState(PasswordCheckStateReusedPasswords);
 
-  CheckTextCellTextWithId(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON,
-                          GetSectionIndex(SectionIdentifierPasswordCheck), 1);
+  // Check button should be hidden.
+  EXPECT_FALSE(
+      HasTableViewItem(GetSectionIndex(SectionIdentifierPasswordCheck), 1));
+
   CheckDetailItemTextWithPlaceholder(
       IDS_IOS_PASSWORD_CHECKUP, IDS_IOS_PASSWORD_CHECKUP_REUSED_COUNT,
       base::NumberToString16(2),
@@ -1209,8 +1222,10 @@
   AddSavedInsecureForm(InsecureType::kWeak);
   ChangePasswordCheckState(PasswordCheckStateWeakPasswords);
 
-  CheckTextCellTextWithId(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON,
-                          GetSectionIndex(SectionIdentifierPasswordCheck), 1);
+  // Check button should be hidden.
+  EXPECT_FALSE(
+      HasTableViewItem(GetSectionIndex(SectionIdentifierPasswordCheck), 1));
+
   CheckDetailItemTextWithPluralIds(
       IDS_IOS_PASSWORD_CHECKUP, IDS_IOS_PASSWORD_CHECKUP_WEAK_COUNT, 1,
       GetSectionIndex(SectionIdentifierPasswordCheck), 0);
@@ -1246,8 +1261,10 @@
   AddSavedInsecureForm(InsecureType::kLeaked, /*is_muted=*/true);
   ChangePasswordCheckState(PasswordCheckStateDismissedWarnings);
 
-  CheckTextCellTextWithId(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON,
-                          GetSectionIndex(SectionIdentifierPasswordCheck), 1);
+  // Check button should be hidden.
+  EXPECT_FALSE(
+      HasTableViewItem(GetSectionIndex(SectionIdentifierPasswordCheck), 1));
+
   CheckDetailItemTextWithPluralIds(
       IDS_IOS_PASSWORD_CHECKUP, IDS_IOS_PASSWORD_CHECKUP_DISMISSED_COUNT, 1,
       GetSectionIndex(SectionIdentifierPasswordCheck), 0);
@@ -1322,8 +1339,10 @@
   AddSavedForm1();
   ChangePasswordCheckState(PasswordCheckStateRunning);
 
-  CheckTextCellTextWithId(IDS_IOS_CHECK_PASSWORDS_NOW_BUTTON,
-                          GetSectionIndex(SectionIdentifierPasswordCheck), 1);
+  // Check button should be hidden.
+  EXPECT_FALSE(
+      HasTableViewItem(GetSectionIndex(SectionIdentifierPasswordCheck), 1));
+
   CheckDetailItemTextWithPluralIds(
       IDS_IOS_PASSWORD_CHECKUP_ONGOING,
       IDS_IOS_PASSWORD_CHECKUP_SITES_AND_APPS_COUNT, 1,
@@ -1426,6 +1445,10 @@
   AddSavedForm1();
   RunUntilIdle();
 
+  // Switch to default state so that the button is present for when
+  // kIOSPasswordCheckup feature is enabled.
+  ChangePasswordCheckState(PasswordCheckStateDefault);
+
   PasswordManagerViewController* passwords_controller =
       GetPasswordManagerViewController();
 
diff --git a/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator_unittest.mm b/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator_unittest.mm
index 524f31c..5e80982 100644
--- a/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator_unittest.mm
@@ -75,6 +75,9 @@
   TimestampFooterItem,
 };
 
+// The size of trailing symbol icons.
+NSInteger kTrailingSymbolImagePointSize = 22;
+
 using password_manager::InsecureCredential;
 using password_manager::InsecureType;
 using password_manager::TestPasswordStore;
@@ -92,7 +95,8 @@
 // The image when the state is safe.
 UIImage* SafeImage() {
   if (UseSymbols()) {
-    return DefaultSymbolTemplateWithPointSize(kCheckmarkCircleFillSymbol, 18);
+    return DefaultSymbolTemplateWithPointSize(kCheckmarkCircleFillSymbol,
+                                              kTrailingSymbolImagePointSize);
   }
   return [[UIImage imageNamed:@"settings_safe_state"]
       imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
@@ -101,7 +105,8 @@
 // The image when the state is unsafe.
 UIImage* UnsafeImage() {
   if (UseSymbols()) {
-    return DefaultSymbolTemplateWithPointSize(kWarningFillSymbol, 18);
+    return DefaultSymbolTemplateWithPointSize(kWarningFillSymbol,
+                                              kTrailingSymbolImagePointSize);
   }
   return [[UIImage imageNamed:@"settings_unsafe_state"]
       imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
diff --git a/ios/chrome/browser/ui/settings/settings_table_view_controller.mm b/ios/chrome/browser/ui/settings/settings_table_view_controller.mm
index 078f831..2d22980 100644
--- a/ios/chrome/browser/ui/settings/settings_table_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/settings_table_view_controller.mm
@@ -152,7 +152,7 @@
 NSString* const kDefaultBrowserWorldImageName = @"default_browser_world";
 
 // The size of trailing symbol icons for unsafe state.
-NSInteger kTrailingSymbolImagePointSize = 18;
+NSInteger kTrailingSymbolImagePointSize = 22;
 
 // Key used for storing NSUserDefault entry to keep track of the last timestamp
 // we've shown the default browser blue dot promo.
diff --git a/ios/chrome/browser/ui/start_surface/start_surface_recent_tab_browser_agent.h b/ios/chrome/browser/ui/start_surface/start_surface_recent_tab_browser_agent.h
index 11cc769..38f5673 100644
--- a/ios/chrome/browser/ui/start_surface/start_surface_recent_tab_browser_agent.h
+++ b/ios/chrome/browser/ui/start_surface/start_surface_recent_tab_browser_agent.h
@@ -46,7 +46,7 @@
 // updates to the current page's favicon for that WebState.
 class StartSurfaceRecentTabBrowserAgent
     : public BrowserUserData<StartSurfaceRecentTabBrowserAgent>,
-      BrowserObserver,
+      public BrowserObserver,
       public WebStateListObserver,
       public web::WebStateObserver,
       public favicon::FaviconDriverObserver {
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/BUILD.gn b/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/BUILD.gn
index b3213987..2b67f27 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/BUILD.gn
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/BUILD.gn
@@ -7,13 +7,20 @@
   sources = [
     "inactive_tabs_coordinator.h",
     "inactive_tabs_coordinator.mm",
+    "inactive_tabs_mediator.h",
+    "inactive_tabs_mediator.mm",
   ]
   deps = [
     ":inactive_tabs_ui",
     "//base",
+    "//ios/chrome/browser/main:public",
     "//ios/chrome/browser/tabs/inactive_tabs:features",
     "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
+    "//ios/chrome/browser/ui/tab_switcher",
+    "//ios/chrome/browser/ui/tab_switcher:tab_utils",
     "//ios/chrome/browser/ui/tab_switcher/tab_grid/grid:grid_ui",
+    "//ios/chrome/browser/web_state_list",
+    "//ios/web/public",
   ]
 }
 
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_coordinator.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_coordinator.mm
index 8bd92e2..eeeaaa3 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_coordinator.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_coordinator.mm
@@ -9,6 +9,7 @@
 #import "base/notreached.h"
 #import "ios/chrome/browser/tabs/inactive_tabs/features.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_mediator.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_view_controller.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
@@ -27,6 +28,9 @@
 // The view controller displaying the inactive tabs.
 @property(nonatomic, strong) InactiveTabsViewController* viewController;
 
+// The mediator handling the inactive tabs.
+@property(nonatomic, strong) InactiveTabsMediator* mediator;
+
 // The mutually exclusive constraints for placing `viewController`.
 @property(nonatomic, strong) NSLayoutConstraint* hiddenConstraint;
 @property(nonatomic, strong) NSLayoutConstraint* visibleConstraint;
@@ -46,9 +50,17 @@
 - (void)start {
   [super start];
 
+  // Create the view controller.
   self.viewController = [[InactiveTabsViewController alloc] init];
   self.viewController.delegate = self;
   self.viewController.gridViewController.delegate = self;
+
+  // Create the mediator.
+  self.mediator = [[InactiveTabsMediator alloc]
+      initWithConsumer:self.viewController.gridViewController];
+  self.mediator.inactiveBrowser = self.browser;
+
+  // Add the view controller to the hierarchy.
   UIView* baseView = self.baseViewController.view;
   UIView* view = self.viewController.view;
   view.translatesAutoresizingMaskIntoConstraints = NO;
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_mediator.h b/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_mediator.h
new file mode 100644
index 0000000..fe1c2558
--- /dev/null
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_mediator.h
@@ -0,0 +1,25 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_INACTIVE_TABS_INACTIVE_TABS_MEDIATOR_H_
+#define IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_INACTIVE_TABS_INACTIVE_TABS_MEDIATOR_H_
+
+#import <Foundation/Foundation.h>
+
+class Browser;
+@protocol TabCollectionConsumer;
+
+@interface InactiveTabsMediator : NSObject
+
+// The inactive browser reference.
+@property(nonatomic, assign) Browser* inactiveBrowser;
+
+// Initializer with `consumer` as the receiver of model layer updates.
+- (instancetype)initWithConsumer:(id<TabCollectionConsumer>)consumer
+    NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_INACTIVE_TABS_INACTIVE_TABS_MEDIATOR_H_
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_mediator.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_mediator.mm
new file mode 100644
index 0000000..0c36e49e
--- /dev/null
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_mediator.mm
@@ -0,0 +1,175 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/tab_switcher/tab_grid/inactive_tabs/inactive_tabs_mediator.h"
+
+#import "base/notreached.h"
+#import "base/scoped_multi_source_observation.h"
+#import "ios/chrome/browser/main/browser.h"
+#import "ios/chrome/browser/tabs/inactive_tabs/features.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_consumer.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_utils.h"
+#import "ios/chrome/browser/web_state_list/web_state_list.h"
+#import "ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h"
+#import "ios/web/public/web_state.h"
+#import "ios/web/public/web_state_observer_bridge.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+using ScopedWebStateListObservation =
+    base::ScopedMultiSourceObservation<WebStateList, WebStateListObserver>;
+using ScopedWebStateObservation =
+    base::ScopedMultiSourceObservation<web::WebState, web::WebStateObserver>;
+
+@interface InactiveTabsMediator () <CRWWebStateObserver,
+                                    WebStateListObserving> {
+  // Observers for WebStateList.
+  std::unique_ptr<WebStateListObserverBridge> _webStateListObserverBridge;
+  std::unique_ptr<ScopedWebStateListObservation> _scopedWebStateListObservation;
+  // Observers for WebStates.
+  std::unique_ptr<web::WebStateObserverBridge> _webStateObserverBridge;
+  std::unique_ptr<ScopedWebStateObservation> _scopedWebStateObservation;
+}
+
+// The UI consumer to which updates are made.
+@property(nonatomic, weak, readonly) id<TabCollectionConsumer> consumer;
+// The list of inactive tabs.
+@property(nonatomic, assign, readonly) WebStateList* webStateList;
+
+@end
+
+@implementation InactiveTabsMediator
+
+- (instancetype)initWithConsumer:(id<TabCollectionConsumer>)consumer {
+  if (self = [super init]) {
+    DCHECK(IsInactiveTabsEnabled());
+    _consumer = consumer;
+    _webStateListObserverBridge =
+        std::make_unique<WebStateListObserverBridge>(self);
+    _scopedWebStateListObservation =
+        std::make_unique<ScopedWebStateListObservation>(
+            _webStateListObserverBridge.get());
+    _webStateObserverBridge =
+        std::make_unique<web::WebStateObserverBridge>(self);
+    _scopedWebStateObservation = std::make_unique<ScopedWebStateObservation>(
+        _webStateObserverBridge.get());
+  }
+  return self;
+}
+
+#pragma mark - Public properties
+
+- (void)setInactiveBrowser:(Browser*)inactiveBrowser {
+  _scopedWebStateListObservation->RemoveAllObservations();
+  _scopedWebStateObservation->RemoveAllObservations();
+
+  _inactiveBrowser = inactiveBrowser;
+  _webStateList = inactiveBrowser->GetWebStateList();
+
+  if (_webStateList) {
+    _scopedWebStateListObservation->AddObservation(_webStateList);
+    [self addWebStateObservations];
+    [self populateConsumerItems];
+  }
+}
+
+#pragma mark - CRWWebStateObserver
+
+- (void)webStateDidStartLoading:(web::WebState*)webState {
+  [self updateConsumerItemForWebState:webState];
+}
+
+- (void)webStateDidStopLoading:(web::WebState*)webState {
+  [self updateConsumerItemForWebState:webState];
+}
+
+- (void)webStateDidChangeTitle:(web::WebState*)webState {
+  [self updateConsumerItemForWebState:webState];
+}
+
+- (void)updateConsumerItemForWebState:(web::WebState*)webState {
+  [_consumer replaceItemID:webState->GetStableIdentifier()
+                  withItem:GetTabSwitcherItem(webState)];
+}
+
+#pragma mark - WebStateListObserving
+
+- (void)webStateList:(WebStateList*)webStateList
+    didInsertWebState:(web::WebState*)webState
+              atIndex:(int)index
+           activating:(BOOL)activating {
+  NOTREACHED();
+}
+
+- (void)webStateList:(WebStateList*)webStateList
+     didMoveWebState:(web::WebState*)webState
+           fromIndex:(int)fromIndex
+             toIndex:(int)toIndex {
+  NOTREACHED();
+}
+
+- (void)webStateList:(WebStateList*)webStateList
+    didReplaceWebState:(web::WebState*)oldWebState
+          withWebState:(web::WebState*)newWebState
+               atIndex:(int)index {
+  NOTREACHED();
+}
+
+- (void)webStateList:(WebStateList*)webStateList
+    willDetachWebState:(web::WebState*)webState
+               atIndex:(int)index {
+  DCHECK_EQ(_webStateList, webStateList);
+  DCHECK(!webStateList->IsBatchInProgress());
+
+  [_consumer removeItemWithID:webState->GetStableIdentifier()
+               selectedItemID:nil];
+
+  _scopedWebStateObservation->RemoveObservation(webState);
+}
+
+- (void)webStateList:(WebStateList*)webStateList
+    didChangeActiveWebState:(web::WebState*)newWebState
+                oldWebState:(web::WebState*)oldWebState
+                    atIndex:(int)atIndex
+                     reason:(ActiveWebStateChangeReason)reason {
+  // No-op.
+}
+
+- (void)webStateList:(WebStateList*)webStateList
+    didChangePinnedStateForWebState:(web::WebState*)webState
+                            atIndex:(int)index {
+  NOTREACHED();
+}
+
+- (void)webStateListWillBeginBatchOperation:(WebStateList*)webStateList {
+  NOTREACHED();
+}
+
+- (void)webStateListBatchOperationEnded:(WebStateList*)webStateList {
+  NOTREACHED();
+}
+
+#pragma mark - Private
+
+// Add observers to all web states from the list.
+- (void)addWebStateObservations {
+  for (int i = 0; i < _webStateList->count(); i++) {
+    web::WebState* webState = _webStateList->GetWebStateAt(i);
+    _scopedWebStateObservation->AddObservation(webState);
+  }
+}
+
+// Calls `-populateItems:selectedItemID:` on the consumer.
+- (void)populateConsumerItems {
+  NSMutableArray* items = [[NSMutableArray alloc] init];
+  for (int i = 0; i < _webStateList->count(); i++) {
+    web::WebState* webState = _webStateList->GetWebStateAt(i);
+    [items addObject:GetTabSwitcherItem(webState)];
+  }
+  [_consumer populateItems:items selectedItemID:nil];
+}
+
+@end
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.mm
index a0b03396..06264a4d4 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/pinned_tabs/pinned_tabs_view_controller.mm
@@ -117,7 +117,6 @@
 
 - (void)contentWillAppearAnimated:(BOOL)animated {
   [self.collectionView reloadData];
-  [self updateEmptyCollectionViewLabelVisibility];
 
   [self selectCollectionViewItemWithID:_selectedItemID animated:NO];
 
@@ -160,6 +159,7 @@
 
   // Show the view if `visible` is true to ensure smooth animation.
   if (visible) {
+    [self updateEmptyCollectionViewLabelVisibility];
     self.view.hidden = NO;
   }
 
@@ -621,7 +621,6 @@
   [self.delegate pinnedTabsViewController:self didChangeItemCount:_items.count];
 
   [self.collectionView deleteItemsAtIndexPaths:@[ CreateIndexPath(index) ]];
-  [self updateEmptyCollectionViewLabelVisibility];
 }
 
 // Handles the completion of item insertion into the collection view.
@@ -699,8 +698,6 @@
     [_emptyCollectionViewLabel.centerXAnchor
         constraintEqualToAnchor:self.view.centerXAnchor],
   ]];
-
-  [self updateEmptyCollectionViewLabelVisibility];
 }
 
 // Configures `cell`'s identifier and title synchronously, favicon and snapshot
diff --git a/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.h b/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.h
index a9c28119..cff927a 100644
--- a/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.h
+++ b/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.h
@@ -43,6 +43,9 @@
   // Returns the number of items in `section`.
   int NumberOfItemsInSection(int section);
 
+  // Indicates whether the collection view has an item at `item` in `section`.
+  bool HasTableViewItem(int section, int item);
+
   // Returns the collection view item at `item` in `section`.
   id GetTableViewItem(int section, int item);
 
diff --git a/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.mm b/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.mm
index 69cc1a6..e102cc3f 100644
--- a/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.mm
+++ b/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.mm
@@ -70,6 +70,13 @@
   return [[controller_ tableViewModel] numberOfItemsInSection:section];
 }
 
+bool ChromeTableViewControllerTest::HasTableViewItem(int section, int item) {
+  TableViewModel* model = [controller_ tableViewModel];
+  NSIndexPath* index_path = [NSIndexPath indexPathForItem:item
+                                                inSection:section];
+  return [model hasItemAtIndexPath:index_path];
+}
+
 id ChromeTableViewControllerTest::GetTableViewItem(int section, int item) {
   TableViewModel* model = [controller_ tableViewModel];
   NSIndexPath* index_path = [NSIndexPath indexPathForItem:item
diff --git a/ios/chrome/browser/ui/ui_feature_flags.cc b/ios/chrome/browser/ui/ui_feature_flags.cc
index 4a1c9d9..d6f8d3d 100644
--- a/ios/chrome/browser/ui/ui_feature_flags.cc
+++ b/ios/chrome/browser/ui/ui_feature_flags.cc
@@ -139,3 +139,7 @@
 BASE_FEATURE(kMultilineFadeTruncatingLabel,
              "MultilineFadeTruncatingLabel",
              base::FEATURE_DISABLED_BY_DEFAULT);
+
+BASE_FEATURE(kSpotlightReadingListSource,
+             "SpotlightReadingListSource",
+             base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/ios/chrome/browser/ui/ui_feature_flags.h b/ios/chrome/browser/ui/ui_feature_flags.h
index c61663d4..4d609f9 100644
--- a/ios/chrome/browser/ui/ui_feature_flags.h
+++ b/ios/chrome/browser/ui/ui_feature_flags.h
@@ -124,4 +124,7 @@
 // Feature to enable multiline gradient support in fade truncating label.
 BASE_DECLARE_FEATURE(kMultilineFadeTruncatingLabel);
 
+// Enables indexing Reading List items in Spotlight.
+BASE_DECLARE_FEATURE(kSpotlightReadingListSource);
+
 #endif  // IOS_CHROME_BROWSER_UI_UI_FEATURE_FLAGS_H_
diff --git a/ios/chrome/browser/web_state_list/web_state_dependency_installation_observer.h b/ios/chrome/browser/web_state_list/web_state_dependency_installation_observer.h
index 31a33bf..37bd879 100644
--- a/ios/chrome/browser/web_state_list/web_state_dependency_installation_observer.h
+++ b/ios/chrome/browser/web_state_list/web_state_dependency_installation_observer.h
@@ -51,6 +51,7 @@
   void WebStateDetachedAt(WebStateList* web_state_list,
                           web::WebState* web_state,
                           int index) override;
+  void WebStateListDestroyed(WebStateList* web_state_list) override;
 
   WebStateDependencyInstallationObserver(
       const WebStateDependencyInstallationObserver&) = delete;
diff --git a/ios/chrome/browser/web_state_list/web_state_dependency_installation_observer.mm b/ios/chrome/browser/web_state_list/web_state_dependency_installation_observer.mm
index 2502bdd7..baab2cc 100644
--- a/ios/chrome/browser/web_state_list/web_state_dependency_installation_observer.mm
+++ b/ios/chrome/browser/web_state_list/web_state_dependency_installation_observer.mm
@@ -55,6 +55,14 @@
   OnWebStateRemoved(web_state);
 }
 
+void WebStateDependencyInstallationObserver::WebStateListDestroyed(
+    WebStateList* web_state_list) {
+  // Checking that all WebStates have been destroyed before destroying
+  // the WebStateList, so we should not be observing anything.
+  DCHECK(!web_state_observations_.IsObservingAnySource());
+  web_state_list_observation_.Reset();
+}
+
 void WebStateDependencyInstallationObserver::OnWebStateAdded(
     web::WebState* web_state) {
   if (web_state->IsRealized()) {
diff --git a/ios/chrome/browser/web_state_list/web_state_list.mm b/ios/chrome/browser/web_state_list/web_state_list.mm
index fdc3f51f..39908440 100644
--- a/ios/chrome/browser/web_state_list/web_state_list.mm
+++ b/ios/chrome/browser/web_state_list/web_state_list.mm
@@ -147,6 +147,9 @@
 
 WebStateList::~WebStateList() {
   CloseAllWebStates(CLOSE_NO_FLAGS);
+  for (auto& observer : observers_) {
+    observer.WebStateListDestroyed(this);
+  }
 }
 
 bool WebStateList::ContainsIndex(int index) const {
diff --git a/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.h b/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.h
index 0103f89e..fdec08d 100644
--- a/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.h
+++ b/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.h
@@ -15,7 +15,7 @@
 class SessionMetrics;
 
 class WebStateListMetricsBrowserAgent
-    : BrowserObserver,
+    : public BrowserObserver,
       public WebStateListObserver,
       public SessionRestorationObserver,
       public web::WebStateObserver,
diff --git a/ios/chrome/browser/web_state_list/web_state_list_observer.h b/ios/chrome/browser/web_state_list/web_state_list_observer.h
index ef92a399..fc92d49 100644
--- a/ios/chrome/browser/web_state_list/web_state_list_observer.h
+++ b/ios/chrome/browser/web_state_list/web_state_list_observer.h
@@ -108,6 +108,10 @@
   // were performed on it during the batch (e.g. detect that all tabs were
   // closed at once).
   virtual void BatchOperationEnded(WebStateList* web_state_list);
+
+  // Invoked when the WebStateList is being destroyed. Gives subclasses a chance
+  // to cleanup.
+  virtual void WebStateListDestroyed(WebStateList* web_state_list);
 };
 
 #endif  // IOS_CHROME_BROWSER_WEB_STATE_LIST_WEB_STATE_LIST_OBSERVER_H_
diff --git a/ios/chrome/browser/web_state_list/web_state_list_observer.mm b/ios/chrome/browser/web_state_list/web_state_list_observer.mm
index 0adff9ed..897f65a 100644
--- a/ios/chrome/browser/web_state_list/web_state_list_observer.mm
+++ b/ios/chrome/browser/web_state_list/web_state_list_observer.mm
@@ -64,3 +64,6 @@
     WebStateList* web_state_list) {}
 
 void WebStateListObserver::BatchOperationEnded(WebStateList* web_state_list) {}
+
+void WebStateListObserver::WebStateListDestroyed(WebStateList* web_state_list) {
+}
diff --git a/ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h b/ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h
index 9575739..0caf73d 100644
--- a/ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h
+++ b/ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h
@@ -83,6 +83,10 @@
 // closed at once).
 - (void)webStateListBatchOperationEnded:(WebStateList*)webStateList;
 
+// Invoked when the WebStateList is being destroyed. Gives subclasses a chance
+// to cleanup.
+- (void)webStateListDestroyed:(WebStateList*)webStateList;
+
 @end
 
 // Observer that bridges WebStateList events to an Objective-C observer that
@@ -131,7 +135,7 @@
                                   int index) final;
   void WillBeginBatchOperation(WebStateList* web_state_list) final;
   void BatchOperationEnded(WebStateList* web_state_list) final;
-
+  void WebStateListDestroyed(WebStateList* web_state_list) final;
   __weak id<WebStateListObserving> observer_ = nil;
 };
 
diff --git a/ios/chrome/browser/web_state_list/web_state_list_observer_bridge.mm b/ios/chrome/browser/web_state_list/web_state_list_observer_bridge.mm
index 7c1e5fca..2bf6622 100644
--- a/ios/chrome/browser/web_state_list/web_state_list_observer_bridge.mm
+++ b/ios/chrome/browser/web_state_list/web_state_list_observer_bridge.mm
@@ -153,3 +153,13 @@
 
   [observer_ webStateListBatchOperationEnded:web_state_list];
 }
+
+void WebStateListObserverBridge::WebStateListDestroyed(
+    WebStateList* web_state_list) {
+  const SEL selector = @selector(webStateListDestroyed:);
+  if (![observer_ respondsToSelector:selector]) {
+    return;
+  }
+
+  [observer_ webStateListDestroyed:web_state_list];
+}
diff --git a/ios/chrome/browser/web_state_list/web_state_list_unittest.mm b/ios/chrome/browser/web_state_list/web_state_list_unittest.mm
index de8f80a..40b947d 100644
--- a/ios/chrome/browser/web_state_list/web_state_list_unittest.mm
+++ b/ios/chrome/browser/web_state_list/web_state_list_unittest.mm
@@ -4,6 +4,7 @@
 
 #import "ios/chrome/browser/web_state_list/web_state_list.h"
 
+#import "base/scoped_multi_source_observation.h"
 #import "base/supports_user_data.h"
 #import "ios/chrome/browser/web_state_list/fake_web_state_list_delegate.h"
 #import "ios/chrome/browser/web_state_list/web_state_list_observer.h"
@@ -33,6 +34,10 @@
   WebStateListTestObserver(const WebStateListTestObserver&) = delete;
   WebStateListTestObserver& operator=(const WebStateListTestObserver&) = delete;
 
+  void Observe(WebStateList* web_state_list) {
+    observation_.AddObservation(web_state_list);
+  }
+
   // Reset statistics whether events have been called.
   void ResetStatistics() {
     web_state_inserted_called_ = false;
@@ -42,6 +47,7 @@
     web_state_activated_called_ = false;
     batch_operation_started_ = false;
     batch_operation_ended_ = false;
+    web_state_list_destroyed_called_ = false;
   }
 
   // Returns whether WebStateInsertedAt was invoked.
@@ -67,6 +73,10 @@
   // Returns whether BatchOperationEnded was invoked.
   bool batch_operation_ended() const { return batch_operation_ended_; }
 
+  bool web_state_list_destroyed_called() const {
+    return web_state_list_destroyed_called_;
+  }
+
   // WebStateListObserver implementation.
   void WebStateInsertedAt(WebStateList* web_state_list,
                           web::WebState* web_state,
@@ -114,6 +124,11 @@
     batch_operation_ended_ = true;
   }
 
+  void WebStateListDestroyed(WebStateList* web_state_list) override {
+    web_state_list_destroyed_called_ = true;
+    observation_.RemoveObservation(web_state_list);
+  }
+
  private:
   bool web_state_inserted_called_ = false;
   bool web_state_moved_called_ = false;
@@ -122,6 +137,9 @@
   bool web_state_activated_called_ = false;
   bool batch_operation_started_ = false;
   bool batch_operation_ended_ = false;
+  bool web_state_list_destroyed_called_ = false;
+  base::ScopedMultiSourceObservation<WebStateList, WebStateListObserver>
+      observation_{this};
 };
 
 // A fake NavigationManager used to test opener-opened relationship in the
@@ -164,14 +182,12 @@
 class WebStateListTest : public PlatformTest {
  public:
   WebStateListTest() : web_state_list_(&web_state_list_delegate_) {
-    web_state_list_.AddObserver(&observer_);
+    observer_.Observe(&web_state_list_);
   }
 
   WebStateListTest(const WebStateListTest&) = delete;
   WebStateListTest& operator=(const WebStateListTest&) = delete;
 
-  ~WebStateListTest() override { web_state_list_.RemoveObserver(&observer_); }
-
  protected:
   FakeWebStateListDelegate web_state_list_delegate_;
   WebStateList web_state_list_;
@@ -1190,3 +1206,13 @@
   EXPECT_EQ(web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec(), kURL3);
   EXPECT_EQ(web_state_list_.GetWebStateAt(3)->GetVisibleURL().spec(), kURL2);
 }
+
+TEST_F(WebStateListTest, WebStateListDestroyed) {
+  // Using a local WebStateList to observe its destruction.
+  std::unique_ptr<WebStateList> web_state_list =
+      std::make_unique<WebStateList>(&web_state_list_delegate_);
+  observer_.Observe(web_state_list.get());
+  EXPECT_FALSE(observer_.web_state_list_destroyed_called());
+  web_state_list.reset();
+  EXPECT_TRUE(observer_.web_state_list_destroyed_called());
+}
diff --git a/ios/chrome/test/earl_grey2/BUILD.gn b/ios/chrome/test/earl_grey2/BUILD.gn
index 44c5415..48d074e 100644
--- a/ios/chrome/test/earl_grey2/BUILD.gn
+++ b/ios/chrome/test/earl_grey2/BUILD.gn
@@ -76,6 +76,7 @@
     "//ios/chrome/browser/autofill:eg2_tests",
     "//ios/chrome/browser/device_sharing:eg2_tests",
     "//ios/chrome/browser/feature_engagement:eg2_tests",
+    "//ios/chrome/browser/find_in_page:eg2_tests",
     "//ios/chrome/browser/https_upgrades:eg2_tests",
     "//ios/chrome/browser/metrics:eg2_tests",
     "//ios/chrome/browser/net:eg2_tests",
diff --git a/ios/chrome/test/providers/signin/OWNERS b/ios/chrome/test/providers/signin/OWNERS
new file mode 100644
index 0000000..56e768f
--- /dev/null
+++ b/ios/chrome/test/providers/signin/OWNERS
@@ -0,0 +1 @@
+file://components/signin/ios/OWNERS
diff --git a/ios/chrome/test/wpt/BUILD.gn b/ios/chrome/test/wpt/BUILD.gn
index d0e5b9d..dbc8e829 100644
--- a/ios/chrome/test/wpt/BUILD.gn
+++ b/ios/chrome/test/wpt/BUILD.gn
@@ -15,6 +15,8 @@
   args = [
     "--product",
     "chrome_ios",
+    "--target",
+    "Default",
   ]
   deps = [ ":all_tests" ]
   data = [
diff --git a/ios/web/annotations/annotations_inttest.mm b/ios/web/annotations/annotations_inttest.mm
index bb050c30..86315e2a 100644
--- a/ios/web/annotations/annotations_inttest.mm
+++ b/ios/web/annotations/annotations_inttest.mm
@@ -107,7 +107,7 @@
  protected:
   void SetUp() override {
     WebTestWithWebState::SetUp();
-    feature_.InitAndEnableFeature(features::kEnableWebPageAnnotations);
+    feature_.InitAndEnableFeature(features::kEnableEmails);
 
     AnnotationsTextManager::CreateForWebState(web_state());
     auto* manager = AnnotationsTextManager::FromWebState(web_state());
diff --git a/ios/web/annotations/annotations_utils.h b/ios/web/annotations/annotations_utils.h
index b74a819..a9803f24 100644
--- a/ios/web/annotations/annotations_utils.h
+++ b/ios/web/annotations/annotations_utils.h
@@ -37,6 +37,10 @@
                                            NSString* data,
                                            NSString* type);
 
+// Checks whether to activate the web page annotations or not, depending on the
+// experiences enabled (emails, phone numbers or maps).
+bool WebPageAnnotationsEnabled();
+
 }  // namespace annotations
 }  // namespace web
 
diff --git a/ios/web/annotations/annotations_utils.mm b/ios/web/annotations/annotations_utils.mm
index 3bf9630..262146f 100644
--- a/ios/web/annotations/annotations_utils.mm
+++ b/ios/web/annotations/annotations_utils.mm
@@ -8,6 +8,7 @@
 #import "base/strings/string_util.h"
 #import "base/strings/sys_string_conversions.h"
 #import "base/strings/utf_string_conversions.h"
+#import "ios/web/common/features.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
 #error "This file requires ARC support."
@@ -141,5 +142,11 @@
   return [NSTextCheckingResult linkCheckingResultWithRange:range URL:email_url];
 }
 
+bool WebPageAnnotationsEnabled() {
+  return base::FeatureList::IsEnabled(web::features::kEnableEmails) ||
+         base::FeatureList::IsEnabled(web::features::kEnablePhoneNumbers) ||
+         base::FeatureList::IsEnabled(web::features::kOneTapForMaps);
+}
+
 }  // namespace annotations
 }  // namespace web
diff --git a/ios/web/common/features.h b/ios/web/common/features.h
index 8424917..fb06720c 100644
--- a/ios/web/common/features.h
+++ b/ios/web/common/features.h
@@ -61,9 +61,6 @@
 // should be used instead of directly checking this feature.
 BASE_DECLARE_FEATURE(kUseLoadSimulatedRequestForOfflinePage);
 
-// Feature flag that enable web page detected intents annotations.
-BASE_DECLARE_FEATURE(kEnableWebPageAnnotations);
-
 // Feature flag that enables getting more of the surrounding text when the user
 // long presses at a certain location.
 BASE_DECLARE_FEATURE(kLongPressSurroundingText);
diff --git a/ios/web/common/features.mm b/ios/web/common/features.mm
index 1d97fce..e5e49bcc 100644
--- a/ios/web/common/features.mm
+++ b/ios/web/common/features.mm
@@ -61,10 +61,6 @@
              "UseLoadSimulatedRequestForErrorPageNavigation",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
-BASE_FEATURE(kEnableWebPageAnnotations,
-             "EnableWebPageAnnotations",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
 BASE_FEATURE(kLongPressSurroundingText,
              "LongPressSurroundingText",
              base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/ios/web/js_messaging/java_script_feature_util_impl.mm b/ios/web/js_messaging/java_script_feature_util_impl.mm
index a07924a..dad482d 100644
--- a/ios/web/js_messaging/java_script_feature_util_impl.mm
+++ b/ios/web/js_messaging/java_script_feature_util_impl.mm
@@ -11,6 +11,7 @@
 #import "base/no_destructor.h"
 #import "base/strings/sys_string_conversions.h"
 #import "ios/web/annotations/annotations_java_script_feature.h"
+#import "ios/web/annotations/annotations_utils.h"
 #import "ios/web/common/features.h"
 #import "ios/web/favicon/favicon_java_script_feature.h"
 #import "ios/web/find_in_page/find_in_page_java_script_feature.h"
@@ -150,7 +151,7 @@
     features.push_back(GetPluginPlaceholderJavaScriptFeature());
   }
 
-  if (base::FeatureList::IsEnabled(web::features::kEnableWebPageAnnotations)) {
+  if (web::annotations::WebPageAnnotationsEnabled()) {
     features.push_back(AnnotationsJavaScriptFeature::GetInstance());
   }
 
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm
index 473f23e..d692409 100644
--- a/ios/web/web_state/ui/crw_web_controller.mm
+++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -18,6 +18,7 @@
 #import "base/strings/sys_string_conversions.h"
 #import "build/branding_buildflags.h"
 #import "ios/web/annotations/annotations_text_manager.h"
+#import "ios/web/annotations/annotations_utils.h"
 #import "ios/web/browsing_data/browsing_data_remover.h"
 #import "ios/web/common/crw_input_view_provider.h"
 #import "ios/web/common/crw_web_view_content_view.h"
@@ -293,8 +294,7 @@
     web::JavaScriptFindInPageManagerImpl::CreateForWebState(_webStateImpl);
     web::TextFragmentsManagerImpl::CreateForWebState(_webStateImpl);
 
-    if (base::FeatureList::IsEnabled(
-            web::features::kEnableWebPageAnnotations) &&
+    if (web::annotations::WebPageAnnotationsEnabled() &&
         !browserState->IsOffTheRecord()) {
       web::AnnotationsTextManager::CreateForWebState(_webStateImpl);
     }
@@ -1175,7 +1175,7 @@
 
 // Hides highlights triggered by custom context menu.
 - (void)hideHighlight {
-  if (base::FeatureList::IsEnabled(web::features::kEnableWebPageAnnotations)) {
+  if (web::annotations::WebPageAnnotationsEnabled()) {
     web::AnnotationsTextManager* manager =
         web::AnnotationsTextManager::FromWebState(_webStateImpl);
     if (manager) {
diff --git a/mojo/public/tools/bindings/mojom.gni b/mojo/public/tools/bindings/mojom.gni
index 754c476..23f5bc02 100644
--- a/mojo/public/tools/bindings/mojom.gni
+++ b/mojo/public/tools/bindings/mojom.gni
@@ -1424,75 +1424,6 @@
       }
     }
 
-    if (generate_fuzzing && !defined(variant)) {
-      # This block contains the C++ targets for the MojoLPM fuzzer, we need to
-      # do this here so that we can use the typemap configuration for the
-      # empty-variant Mojo target.
-
-      mojolpm_target_name = "${target_name}_mojolpm"
-      mojolpm_generator_target_name = "${target_name}__generator"
-      source_set(mojolpm_target_name) {
-        # There are still a few missing header dependencies between mojo targets
-        # with typemaps and the dependencies of their typemap headers. It would
-        # be good to enable include checking for these in the future though.
-        check_includes = false
-        testonly = true
-        if (defined(invoker.sources)) {
-          # Split the input into generated and non-generated source files. They
-          # need to be processed separately.
-          gen_dir_path_wildcard = get_path_info("//", "gen_dir") + "/*"
-          non_gen_sources =
-              filter_exclude(invoker.sources, [ gen_dir_path_wildcard ])
-          gen_sources =
-              filter_include(invoker.sources, [ gen_dir_path_wildcard ])
-          sources = process_file_template(
-                  non_gen_sources,
-                  [
-                    "{{source_gen_dir}}/{{source_file_part}}-mojolpm.cc",
-                    "{{source_gen_dir}}/{{source_file_part}}-mojolpm.h",
-                  ])
-          sources += process_file_template(
-                  gen_sources,
-                  [
-                    "{{source_dir}}/{{source_file_part}}-mojolpm.cc",
-                    "{{source_dir}}/{{source_file_part}}-mojolpm.h",
-                  ])
-          deps = []
-        } else {
-          sources = []
-          deps = []
-        }
-
-        public_deps = [
-          ":$generator_shared_target_name",
-
-          # NB: hardcoded dependency on the no-variant variant generator, since
-          # mojolpm only uses the no-variant type.
-          ":$mojolpm_generator_target_name",
-          ":$mojolpm_proto_target_name",
-          "//base",
-          "//mojo/public/tools/fuzzers:mojolpm",
-        ]
-
-        foreach(d, all_deps) {
-          # Resolve the name, so that a target //mojo/something becomes
-          # //mojo/something:something and we can append variant_suffix to
-          # get the cpp dependency name.
-          full_name = get_label_info("$d", "label_no_toolchain")
-          public_deps += [ "${full_name}_mojolpm" ]
-        }
-
-        foreach(config, cpp_typemap_configs) {
-          if (defined(config.traits_deps)) {
-            deps += config.traits_deps
-          }
-          if (defined(config.traits_public_deps)) {
-            public_deps += config.traits_public_deps
-          }
-        }
-      }
-    }
-
     # Write the typemapping configuration for this target out to a file to be
     # validated by a Python script. This helps catch mistakes that can't
     # be caught by logic in GN.
@@ -1616,7 +1547,10 @@
       if (defined(output_name_override)) {
         output_name = output_name_override
       }
-      visibility = output_visibility + [ ":$output_target_name" ]
+      visibility = output_visibility + [
+                     ":$output_target_name",
+                     ":${target_name}_mojolpm",
+                   ]
       if (defined(invoker.testonly)) {
         testonly = invoker.testonly
       }
@@ -1709,6 +1643,75 @@
       }
     }
 
+    if (generate_fuzzing && !defined(variant)) {
+      # This block contains the C++ targets for the MojoLPM fuzzer, we need to
+      # do this here so that we can use the typemap configuration for the
+      # empty-variant Mojo target.
+
+      mojolpm_target_name = "${target_name}_mojolpm"
+      mojolpm_generator_target_name = "${target_name}__generator"
+      source_set(mojolpm_target_name) {
+        # There are still a few missing header dependencies between mojo targets
+        # with typemaps and the dependencies of their typemap headers. It would
+        # be good to enable include checking for these in the future though.
+        check_includes = false
+        testonly = true
+        if (defined(invoker.sources)) {
+          # Split the input into generated and non-generated source files. They
+          # need to be processed separately.
+          gen_dir_path_wildcard = get_path_info("//", "gen_dir") + "/*"
+          non_gen_sources =
+              filter_exclude(invoker.sources, [ gen_dir_path_wildcard ])
+          gen_sources =
+              filter_include(invoker.sources, [ gen_dir_path_wildcard ])
+          sources = process_file_template(
+                  non_gen_sources,
+                  [
+                    "{{source_gen_dir}}/{{source_file_part}}-mojolpm.cc",
+                    "{{source_gen_dir}}/{{source_file_part}}-mojolpm.h",
+                  ])
+          sources += process_file_template(
+                  gen_sources,
+                  [
+                    "{{source_dir}}/{{source_file_part}}-mojolpm.cc",
+                    "{{source_dir}}/{{source_file_part}}-mojolpm.h",
+                  ])
+          deps = [ ":$output_target_name" ]
+        } else {
+          sources = []
+          deps = []
+        }
+
+        public_deps = [
+          ":$generator_shared_target_name",
+
+          # NB: hardcoded dependency on the no-variant variant generator, since
+          # mojolpm only uses the no-variant type.
+          ":$mojolpm_generator_target_name",
+          ":$mojolpm_proto_target_name",
+          "//base",
+          "//mojo/public/tools/fuzzers:mojolpm",
+        ]
+
+        foreach(d, all_deps) {
+          # Resolve the name, so that a target //mojo/something becomes
+          # //mojo/something:something and we can append variant_suffix to
+          # get the cpp dependency name.
+          full_name = get_label_info("$d", "label_no_toolchain")
+          public_deps += [ "${full_name}_mojolpm" ]
+        }
+
+        foreach(config, cpp_typemap_configs) {
+          if (defined(config.traits_deps)) {
+            deps += config.traits_deps
+          }
+          if (defined(config.traits_public_deps)) {
+            public_deps += config.traits_public_deps
+          }
+        }
+      }
+    }
+
     if (generate_java && is_android) {
       import("//build/config/android/rules.gni")
 
diff --git a/net/base/ip_address.cc b/net/base/ip_address.cc
index c2a8c80..778d8e3 100644
--- a/net/base/ip_address.cc
+++ b/net/base/ip_address.cc
@@ -181,14 +181,21 @@
 
 // static
 absl::optional<IPAddress> IPAddress::FromValue(const base::Value& value) {
-  if (!value.is_string())
+  if (!value.is_string()) {
     return absl::nullopt;
+  }
 
+  return IPAddress::FromIPLiteral(value.GetString());
+}
+
+// static
+absl::optional<IPAddress> IPAddress::FromIPLiteral(
+    base::StringPiece ip_literal) {
   IPAddress address;
-  bool success = address.AssignFromIPLiteral(value.GetString());
-  if (!success || !address.IsValid())
+  if (!address.AssignFromIPLiteral(ip_literal)) {
     return absl::nullopt;
-
+  }
+  DCHECK(address.IsValid());
   return address;
 }
 
diff --git a/net/base/ip_address.h b/net/base/ip_address.h
index adfcab33..1624909 100644
--- a/net/base/ip_address.h
+++ b/net/base/ip_address.h
@@ -107,6 +107,10 @@
   // Nullopt if `value` is malformed to be deserialized to IPAddress.
   static absl::optional<IPAddress> FromValue(const base::Value& value);
 
+  // Parses an IP address literal (either IPv4 or IPv6). Returns the resulting
+  // IPAddress on success, or nullopt on error.
+  static absl::optional<IPAddress> FromIPLiteral(base::StringPiece ip_literal);
+
   // Creates a zero-sized, invalid address.
   IPAddress();
 
diff --git a/net/dns/dns_reloader.cc b/net/dns/dns_reloader.cc
index 1750343..363eb14 100644
--- a/net/dns/dns_reloader.cc
+++ b/net/dns/dns_reloader.cc
@@ -16,9 +16,11 @@
 // res_nclose(3), which requires __RES >= 19991006 (most libcs at this point,
 // but not all).
 //
-// Historically, this code was also not used on Apple platforms - /etc/hosts
-// can't change on iOS, but on macOS the situation is less clear.
-// TODO(https://crbug.com/1414923): Why is this not used on macOS?
+// This code is also not used on either macOS or iOS, even though both platforms
+// have res_ninit(3). On iOS, /etc/hosts is immutable so there's no reason for
+// us to watch it; on macOS, there is a system mechanism for listening to DNS
+// changes which does not require use to do this kind of reloading. See
+// //net/dns/dns_config_watcher_mac.cc.
 //
 // It *also* is not used on Android, because Android handles nameserver changes
 // for us and has no /etc/resolv.conf. Despite that, Bionic does export these
diff --git a/net/dns/mock_host_resolver.cc b/net/dns/mock_host_resolver.cc
index 78562f5..f49726b0 100644
--- a/net/dns/mock_host_resolver.cc
+++ b/net/dns/mock_host_resolver.cc
@@ -84,6 +84,7 @@
 }
 
 absl::optional<HostCache::Entry> CreateCacheEntry(
+    base::StringPiece canonical_name,
     const std::vector<HostResolverEndpointResult>& endpoint_results,
     const std::set<std::string>& aliases) {
   absl::optional<std::vector<net::IPEndPoint>> ip_endpoints;
@@ -107,6 +108,7 @@
   DCHECK(ip_endpoints);
   auto endpoint_entry = HostCache::Entry(OK, *ip_endpoints, aliases,
                                          HostCache::Entry::SOURCE_UNKNOWN);
+  endpoint_entry.set_canonical_names(std::set{std::string(canonical_name)});
   if (endpoint_metadatas.empty()) {
     return endpoint_entry;
   }
@@ -1028,13 +1030,10 @@
     if (cache_result) {
       rv = cache_result->second.error();
       if (rv == OK) {
-        *out_endpoints = std::vector<HostResolverEndpointResult>(1);
-        (*out_endpoints)[0].ip_endpoints = *cache_result->second.ip_endpoints();
+        *out_endpoints = cache_result->second.GetEndpoints().value();
 
         if (cache_result->second.aliases()) {
-          const auto& aliasess = *cache_result->second.aliases();
-          *out_aliases =
-              std::set<std::string>(aliasess.begin(), aliasess.end());
+          *out_aliases = *cache_result->second.aliases();
         }
         *out_stale_info = std::move(stale_info);
       }
@@ -1073,7 +1072,8 @@
     // TODO(crbug.com/1264933): Change `error` on empty results?
     error = OK;
     if (cache_.get()) {
-      cache_entry = CreateCacheEntry(endpoint_results, aliases);
+      cache_entry = CreateCacheEntry(request.request_endpoint().GetHostname(),
+                                     endpoint_results, aliases);
     }
   } else {
     DCHECK(absl::holds_alternative<RuleResolver::ErrorResult>(result));
diff --git a/net/http/http_stream_parser.cc b/net/http/http_stream_parser.cc
index 947e016..3de540bb 100644
--- a/net/http/http_stream_parser.cc
+++ b/net/http/http_stream_parser.cc
@@ -166,8 +166,7 @@
     data_ = real_data_;
   }
 
-  // DanglingUntriaged because it is assigned a DanglingUntriaged pointer.
-  raw_ptr<char, DanglingUntriaged | AllowPtrArithmetic> real_data_;
+  raw_ptr<char, AllowPtrArithmetic> real_data_;
   const int capacity_;
   int size_ = 0;
   int used_ = 0;
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins
index 27fdf76..4a39920 100644
--- a/net/http/transport_security_state_static.pins
+++ b/net/http/transport_security_state_static.pins
@@ -43,9 +43,9 @@
 #   hash function for preloaded entries again (we have already done so once).
 #
 
-# Last updated: 2023-02-20 12:54 UTC
+# Last updated: 2023-02-21 12:54 UTC
 PinsListTimestamp
-1676897673
+1676984041
 
 TestSPKI
 sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/net/quic/mock_crypto_client_stream.cc b/net/quic/mock_crypto_client_stream.cc
index 3d23e74..73f5cc2 100644
--- a/net/quic/mock_crypto_client_stream.cc
+++ b/net/quic/mock_crypto_client_stream.cc
@@ -92,6 +92,7 @@
 }
 
 bool MockCryptoClientStream::CryptoConnect() {
+  DCHECK(session()->version().UsesTls());
   IPEndPoint local_ip;
   static_cast<QuicChromiumClientSession*>(session())
       ->GetDefaultSocket()
@@ -167,16 +168,11 @@
       if (!session()->connection()->connected()) {
         break;
       }
-      if (session()->version().UsesQuicCrypto()) {
-        session()->SetDefaultEncryptionLevel(ENCRYPTION_ZERO_RTT);
-      } else {
-        session()->DiscardOldEncryptionKey(ENCRYPTION_INITIAL);
-      }
+      session()->DiscardOldEncryptionKey(ENCRYPTION_INITIAL);
       break;
     }
 
     case ASYNC_ZERO_RTT: {
-      DCHECK(session()->version().UsesTls());
       handshake_confirmed_ = false;
       FillCryptoParams();
       if (proof_verify_details_) {
@@ -228,11 +224,7 @@
       if (!session()->connection()->connected()) {
         break;
       }
-      if (session()->version().UsesTls()) {
-        session()->OnTlsHandshakeComplete();
-      } else {
-        session()->SetDefaultEncryptionLevel(ENCRYPTION_FORWARD_SECURE);
-      }
+      session()->OnTlsHandshakeComplete();
       session()->DiscardOldEncryptionKey(ENCRYPTION_INITIAL);
       session()->NeuterHandshakeData();
       break;
@@ -310,8 +302,7 @@
 void MockCryptoClientStream::NotifySessionOneRttKeyAvailable() {
   encryption_established_ = true;
   handshake_confirmed_ = true;
-  if (session()->version().UsesQuicCrypto())
-    SetConfigNegotiated();
+  DCHECK(session()->version().UsesTls());
   if (use_mock_crypter_) {
     if (session()->connection()->version().KnowsWhichDecrypterToUse()) {
       session()->connection()->InstallDecrypter(
@@ -340,16 +331,10 @@
         ENCRYPTION_FORWARD_SECURE,
         std::make_unique<TaggingEncrypter>(ENCRYPTION_FORWARD_SECURE));
   }
-  if (session()->version().UsesTls()) {
-    SetConfigNegotiated();
-    session()->OnTlsHandshakeComplete();
-  } else {
-    session()->SetDefaultEncryptionLevel(ENCRYPTION_FORWARD_SECURE);
-  }
+  SetConfigNegotiated();
+  session()->OnTlsHandshakeComplete();
   session()->DiscardOldEncryptionKey(ENCRYPTION_INITIAL);
-  if (session()->version().UsesTls()) {
-    session()->DiscardOldEncryptionKey(ENCRYPTION_ZERO_RTT);
-  }
+  session()->DiscardOldEncryptionKey(ENCRYPTION_ZERO_RTT);
   session()->NeuterHandshakeData();
 }
 
@@ -361,6 +346,7 @@
 }
 
 void MockCryptoClientStream::SetConfigNegotiated() {
+  DCHECK(session()->version().UsesTls());
   QuicTagVector cgst;
 // TODO(rtenneti): Enable the following code after BBR code is checked in.
 #if 0
@@ -381,42 +367,28 @@
   auto connection_id = quic::test::TestConnectionId();
   config.SetStatelessResetTokenToSend(
       quic::QuicUtils::GenerateStatelessResetToken(connection_id));
-  if (session()->version().UsesTls()) {
-    if (session()->perspective() == Perspective::IS_CLIENT) {
-      config.SetOriginalConnectionIdToSend(
-          session()->connection()->connection_id());
-      config.SetInitialSourceConnectionIdToSend(
-          session()->connection()->connection_id());
-    } else {
-      config.SetInitialSourceConnectionIdToSend(
-          session()->connection()->client_connection_id());
-    }
+  if (session()->perspective() == Perspective::IS_CLIENT) {
+    config.SetOriginalConnectionIdToSend(
+        session()->connection()->connection_id());
+    config.SetInitialSourceConnectionIdToSend(
+        session()->connection()->connection_id());
+  } else {
+    config.SetInitialSourceConnectionIdToSend(
+        session()->connection()->client_connection_id());
   }
 
-  QuicErrorCode error;
+  TransportParameters params;
+  ASSERT_TRUE(config.FillTransportParameters(&params));
   std::string error_details;
-  if (session()->version().UsesTls()) {
-    TransportParameters params;
-    ASSERT_TRUE(config.FillTransportParameters(&params));
-    error = session()->config()->ProcessTransportParameters(
-        params, /*is_resumption=*/false, &error_details);
-  } else {
-    CryptoHandshakeMessage msg;
-    config.ToHandshakeMessage(
-        &msg, session()->connection()->version().transport_version);
-    error = session()->config()->ProcessPeerHello(msg, CLIENT, &error_details);
-  }
+  QuicErrorCode error = session()->config()->ProcessTransportParameters(
+      params, /*is_resumption=*/false, &error_details);
   ASSERT_EQ(QUIC_NO_ERROR, error);
   ASSERT_TRUE(session()->config()->negotiated());
   session()->OnConfigNegotiated();
 }
 
 void MockCryptoClientStream::FillCryptoParams() {
-  if (session()->version().UsesQuicCrypto()) {
-    crypto_negotiated_params_->key_exchange = kC255;
-    crypto_negotiated_params_->aead = kAESG;
-    return;
-  }
+  DCHECK(session()->version().UsesTls());
   crypto_negotiated_params_->cipher_suite = TLS1_CK_AES_128_GCM_SHA256 & 0xffff;
   crypto_negotiated_params_->key_exchange_group = SSL_CURVE_X25519;
   crypto_negotiated_params_->peer_signature_algorithm =
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc
index e9dd6ef8..08b0c4cf 100644
--- a/net/quic/quic_chromium_client_session.cc
+++ b/net/quic/quic_chromium_client_session.cc
@@ -1429,68 +1429,17 @@
   ssl_info->signed_certificate_timestamps = cert_verify_result_->scts;
   ssl_info->ct_policy_compliance = cert_verify_result_->policy_compliance;
 
+  DCHECK(connection()->version().UsesTls());
   const auto& crypto_params = crypto_stream_->crypto_negotiated_params();
-  uint16_t cipher_suite;
-  if (connection()->version().UsesTls()) {
-    cipher_suite = crypto_params.cipher_suite;
-  } else {
-    // Map QUIC AEADs to the corresponding TLS 1.3 cipher. OpenSSL's cipher
-    // suite numbers begin with a stray 0x03, so mask them off.
-    quic::QuicTag aead = crypto_params.aead;
-    switch (aead) {
-      case quic::kAESG:
-        cipher_suite = TLS1_CK_AES_128_GCM_SHA256 & 0xffff;
-        break;
-      case quic::kCC20:
-        cipher_suite = TLS1_CK_CHACHA20_POLY1305_SHA256 & 0xffff;
-        break;
-      default:
-        NOTREACHED();
-        return false;
-    }
-  }
+  uint16_t cipher_suite = crypto_params.cipher_suite;
   int ssl_connection_status = 0;
   SSLConnectionStatusSetCipherSuite(cipher_suite, &ssl_connection_status);
   SSLConnectionStatusSetVersion(SSL_CONNECTION_VERSION_QUIC,
                                 &ssl_connection_status);
   ssl_info->connection_status = ssl_connection_status;
 
-  if (connection()->version().UsesTls()) {
-    ssl_info->key_exchange_group = crypto_params.key_exchange_group;
-    ssl_info->peer_signature_algorithm = crypto_params.peer_signature_algorithm;
-    return true;
-  }
-
-  // Report the QUIC key exchange as the corresponding TLS curve.
-  switch (crypto_stream_->crypto_negotiated_params().key_exchange) {
-    case quic::kP256:
-      ssl_info->key_exchange_group = SSL_CURVE_SECP256R1;
-      break;
-    case quic::kC255:
-      ssl_info->key_exchange_group = SSL_CURVE_X25519;
-      break;
-    default:
-      NOTREACHED();
-      return false;
-  }
-
-  // QUIC-Crypto always uses RSA-PSS or ECDSA with SHA-256.
-  size_t unused;
-  X509Certificate::PublicKeyType key_type;
-  X509Certificate::GetPublicKeyInfo(ssl_info->cert->cert_buffer(), &unused,
-                                    &key_type);
-  switch (key_type) {
-    case X509Certificate::kPublicKeyTypeRSA:
-      ssl_info->peer_signature_algorithm = SSL_SIGN_RSA_PSS_RSAE_SHA256;
-      break;
-    case X509Certificate::kPublicKeyTypeECDSA:
-      ssl_info->peer_signature_algorithm = SSL_SIGN_ECDSA_SECP256R1_SHA256;
-      break;
-    default:
-      NOTREACHED();
-      return false;
-  }
-
+  ssl_info->key_exchange_group = crypto_params.key_exchange_group;
+  ssl_info->peer_signature_algorithm = crypto_params.peer_signature_algorithm;
   return true;
 }
 
@@ -2070,38 +2019,39 @@
         "Net.QuicSession.ConnectionDuration",
         tick_clock_->NowTicks() - connect_timing_.connect_end);
     UMA_HISTOGRAM_COUNTS_100("Net.QuicSession.NumMigrations", num_migrations_);
-    if (connection()->version().UsesTls()) {
-      base::UmaHistogramCounts100("Net.QuicSession.KeyUpdate.PerConnection2",
-                                  connection()->GetStats().key_update_count);
-      base::UmaHistogramCounts100(
-          "Net.QuicSession.KeyUpdate.PotentialPeerKeyUpdateAttemptCount",
-          connection()->PotentialPeerKeyUpdateAttemptCount());
-      if (last_key_update_reason_ != quic::KeyUpdateReason::kInvalid) {
-        std::string suffix =
-            last_key_update_reason_ == quic::KeyUpdateReason::kRemote ? "Remote"
-                                                                      : "Local";
-        // These values are persisted to logs. Entries should not be renumbered
-        // and numeric values should never be reused.
-        enum class KeyUpdateSuccess {
-          kInvalid = 0,
-          kSuccess = 1,
-          kFailedInitial = 2,
-          kFailedNonInitial = 3,
-          kMaxValue = kFailedNonInitial,
-        };
-        KeyUpdateSuccess value = KeyUpdateSuccess::kInvalid;
-        if (connection()->HaveSentPacketsInCurrentKeyPhaseButNoneAcked()) {
-          if (connection()->GetStats().key_update_count >= 2) {
-            value = KeyUpdateSuccess::kFailedNonInitial;
-          } else {
-            value = KeyUpdateSuccess::kFailedInitial;
-          }
+
+    // KeyUpdates are used in TLS, but we no longer support pre-TLS QUIC.
+    DCHECK(connection()->version().UsesTls());
+    base::UmaHistogramCounts100("Net.QuicSession.KeyUpdate.PerConnection2",
+                                connection()->GetStats().key_update_count);
+    base::UmaHistogramCounts100(
+        "Net.QuicSession.KeyUpdate.PotentialPeerKeyUpdateAttemptCount",
+        connection()->PotentialPeerKeyUpdateAttemptCount());
+    if (last_key_update_reason_ != quic::KeyUpdateReason::kInvalid) {
+      std::string suffix =
+          last_key_update_reason_ == quic::KeyUpdateReason::kRemote ? "Remote"
+                                                                    : "Local";
+      // These values are persisted to logs. Entries should not be renumbered
+      // and numeric values should never be reused.
+      enum class KeyUpdateSuccess {
+        kInvalid = 0,
+        kSuccess = 1,
+        kFailedInitial = 2,
+        kFailedNonInitial = 3,
+        kMaxValue = kFailedNonInitial,
+      };
+      KeyUpdateSuccess value = KeyUpdateSuccess::kInvalid;
+      if (connection()->HaveSentPacketsInCurrentKeyPhaseButNoneAcked()) {
+        if (connection()->GetStats().key_update_count >= 2) {
+          value = KeyUpdateSuccess::kFailedNonInitial;
         } else {
-          value = KeyUpdateSuccess::kSuccess;
+          value = KeyUpdateSuccess::kFailedInitial;
         }
-        base::UmaHistogramEnumeration(
-            "Net.QuicSession.KeyUpdate.Success." + suffix, value);
+      } else {
+        value = KeyUpdateSuccess::kSuccess;
       }
+      base::UmaHistogramEnumeration(
+          "Net.QuicSession.KeyUpdate.Success." + suffix, value);
     }
   } else {
     if (error == quic::QUIC_PUBLIC_RESET) {
diff --git a/net/quic/quic_http_stream.h b/net/quic/quic_http_stream.h
index 812bc4e..c4d743c 100644
--- a/net/quic/quic_http_stream.h
+++ b/net/quic/quic_http_stream.h
@@ -166,8 +166,7 @@
   bool can_send_early_ = false;
 
   // The request body to send, if any, owned by the caller.
-  // DanglingUntriaged because it is assigned a DanglingUntriaged pointer.
-  raw_ptr<UploadDataStream, DanglingUntriaged> request_body_stream_ = nullptr;
+  raw_ptr<UploadDataStream> request_body_stream_ = nullptr;
   // Time the request was issued.
   base::Time request_time_;
   // The priority of the request.
diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
index b63d9d7f..1577ed51 100644
--- a/net/quic/quic_stream_factory.cc
+++ b/net/quic/quic_stream_factory.cc
@@ -216,21 +216,6 @@
   return hosts;
 }
 
-quic::ParsedQuicVersion SelectQuicVersion(
-    const std::vector<HostResolverEndpointResult>& endpoint_results,
-    const quic::ParsedQuicVersionVector& supported_versions) {
-  for (const auto& result : endpoint_results) {
-    for (const auto& alpn : result.metadata.supported_protocol_alpns) {
-      for (const auto& supported_version : supported_versions) {
-        if (alpn == AlpnForVersion(supported_version)) {
-          return supported_version;
-        }
-      }
-    }
-  }
-  return quic::UnsupportedQuicVersion();
-}
-
 }  // namespace
 
 // Refcounted class that owns quic::QuicCryptoClientConfig and tracks how many
@@ -458,17 +443,64 @@
     }
   }
 
-  bool DoesPeerAddressMatchWithFreshAddressList() {
+  bool DoesConnectionMatchFreshHostResolution() {
     if (!session_)
       return false;
 
-    std::vector<net::IPEndPoint> endpoints =
-        fresh_resolve_host_request_->GetAddressResults()->endpoints();
+    DCHECK(quic_version_used_.IsKnown());
+    IPEndPoint stale_address = endpoint_result_.ip_endpoints.front();
+    for (const auto& candidate :
+         *fresh_resolve_host_request_->GetEndpointResults()) {
+      // TODO(https://crbug.com/1416963): Should other values also be checked
+      // for consistency?
+      if (SelectQuicVersion(candidate) == quic_version_used_ &&
+          base::Contains(candidate.ip_endpoints, stale_address)) {
+        return true;
+      }
+    }
 
-    IPEndPoint stale_address =
-        resolve_host_request_->GetAddressResults()->front();
+    return false;
+  }
 
-    return base::Contains(endpoints, stale_address);
+  // Returns the QUIC version that would be used with `endpoint_result`, or
+  // `quic::ParsedQuicVersion::Unsupported()` if `endpoint_result` cannot be
+  // used with QUIC.
+  quic::ParsedQuicVersion SelectQuicVersion(
+      const HostResolverEndpointResult& endpoint_result) const {
+    // TODO(davidben): `require_dns_https_alpn_` only exists to be `DCHECK`ed
+    // for consistency against `quic_version_`. Remove the parameter?
+    DCHECK_EQ(require_dns_https_alpn_, !quic_version_.IsKnown());
+
+    if (endpoint_result.metadata.supported_protocol_alpns.empty()) {
+      // `endpoint_result` came from A/AAAA records directly, without HTTPS/SVCB
+      // records. If we know the QUIC ALPN to use externally, i.e. via Alt-Svc,
+      // use it. Otherwise, `endpoint_result` is not eligible for QUIC.
+      return quic_version_;
+    }
+
+    // Otherwise, `endpoint_result` came from an HTTPS/SVCB record. We can use
+    // QUIC if a suitable match is found in the record's ALPN list.
+    // Additionally, if this connection attempt came from Alt-Svc, the DNS
+    // result must be consistent with it. See
+    // https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb-https-11.html#name-interaction-with-alt-svc
+    if (quic_version_.IsKnown()) {
+      std::string expected_alpn = quic::AlpnForVersion(quic_version_);
+      if (base::Contains(endpoint_result.metadata.supported_protocol_alpns,
+                         quic::AlpnForVersion(quic_version_))) {
+        return quic_version_;
+      }
+      return quic::ParsedQuicVersion::Unsupported();
+    }
+
+    for (const auto& alpn : endpoint_result.metadata.supported_protocol_alpns) {
+      for (const auto& supported_version : factory_->supported_versions()) {
+        if (alpn == AlpnForVersion(supported_version)) {
+          return supported_version;
+        }
+      }
+    }
+
+    return quic::ParsedQuicVersion::Unsupported();
   }
 
   void LogStaleHostRacing(bool used) {
@@ -500,6 +532,8 @@
   IoState io_state_ = STATE_RESOLVE_HOST;
   raw_ptr<QuicStreamFactory> factory_;
   quic::ParsedQuicVersion quic_version_;
+  quic::ParsedQuicVersion quic_version_used_ =
+      quic::ParsedQuicVersion::Unsupported();
   raw_ptr<HostResolver> host_resolver_;
   const QuicSessionAliasKey key_;
   const std::unique_ptr<CryptoClientConfigHandle> client_config_handle_;
@@ -516,6 +550,7 @@
   bool quic_session_created_ = false;
   bool connection_retried_ = false;
   QuicChromiumClientSession* session_ = nullptr;
+  HostResolverEndpointResult endpoint_result_;
   // If connection migraiton is supported, |network_| denotes the network on
   // which |session_| is created.
   handles::NetworkHandle network_;
@@ -674,7 +709,7 @@
     } else if (io_state_ != STATE_HOST_VALIDATION) {
       // Case where host resolution returns successfully, but stale connection
       // hasn't finished yet.
-      if (DoesPeerAddressMatchWithFreshAddressList()) {
+      if (DoesConnectionMatchFreshHostResolution()) {
         LogRacingStatus(ConnectionStateAfterDNS::kWaitingForCryptoDnsMatched);
         LogStaleAndFreshHostMatched(true);
         fresh_resolve_host_request_ = nullptr;
@@ -793,7 +828,7 @@
   }
 
   // Check to make sure stale host request does produce valid results.
-  if (!resolve_host_request_->GetAddressResults()) {
+  if (!resolve_host_request_->GetEndpointResults()) {
     LogStaleHostRacing(false);
     resolve_host_request_ = std::move(fresh_resolve_host_request_);
     return fresh_rv;
@@ -818,15 +853,6 @@
   DCHECK(!fresh_resolve_host_request_);
   DCHECK(!factory_->HasActiveSession(key_.session_key()));
 
-  if (require_dns_https_alpn_) {
-    quic_version_ =
-        SelectQuicVersion(*resolve_host_request_->GetEndpointResults(),
-                          factory_->supported_versions());
-    if (quic_version_ == quic::ParsedQuicVersion::Unsupported()) {
-      return ERR_DNS_NO_MATCHING_SUPPORTED_ALPN;
-    }
-  }
-
   // Inform the factory of this resolution, which will set up
   // a session alias, if possible.
   // TODO(crbug.com/1264933): Consider dealing with the other endpoints
@@ -901,6 +927,22 @@
 }
 
 int QuicStreamFactory::Job::DoCreateSession() {
+  // TODO(https://crbug.com/1416409): This logic only knows how to try one
+  // endpoint result.
+  bool found = false;
+  for (const auto& candidate : *resolve_host_request_->GetEndpointResults()) {
+    quic::ParsedQuicVersion version = SelectQuicVersion(candidate);
+    if (version.IsKnown()) {
+      found = true;
+      quic_version_used_ = version;
+      endpoint_result_ = candidate;
+      break;
+    }
+  }
+  if (!found) {
+    return ERR_DNS_NO_MATCHING_SUPPORTED_ALPN;
+  }
+
   quic_connection_start_time_ = base::TimeTicks::Now();
   DCHECK(dns_resolution_end_time_ != base::TimeTicks());
   io_state_ = STATE_CONNECT;
@@ -909,13 +951,13 @@
       NetLogEventType::QUIC_STREAM_FACTORY_JOB_CONNECT, NetLogEventPhase::BEGIN,
       "require_confirmation", require_confirmation);
 
-  DCHECK_NE(quic_version_, quic::ParsedQuicVersion::Unsupported());
+  DCHECK_NE(quic_version_used_, quic::ParsedQuicVersion::Unsupported());
   return factory_->CreateSession(
       base::BindOnce(&QuicStreamFactory::Job::OnCreateSessionComplete,
                      GetWeakPtr()),
-      key_, quic_version_, cert_verify_flags_, require_confirmation,
-      *resolve_host_request_->GetAddressResults(), dns_resolution_start_time_,
-      dns_resolution_end_time_, net_log_, &session_, &network_);
+      key_, quic_version_used_, cert_verify_flags_, require_confirmation,
+      endpoint_result_, dns_resolution_start_time_, dns_resolution_end_time_,
+      net_log_, &session_, &network_);
 }
 
 int QuicStreamFactory::Job::DoConnect() {
@@ -962,7 +1004,7 @@
 // This state is reached iff both host resolution and connection from stale dns
 // have finished successfully.
 int QuicStreamFactory::Job::DoValidateHost() {
-  if (DoesPeerAddressMatchWithFreshAddressList()) {
+  if (DoesConnectionMatchFreshHostResolution()) {
     LogValidConnectionTime(quic_connection_start_time_);
     LogRacingStatus(ConnectionStateAfterDNS::kCryptoFinishedDnsMatch);
     LogStaleAndFreshHostMatched(true);
@@ -1982,30 +2024,34 @@
   return base::Contains(active_jobs_, session_key);
 }
 
-int QuicStreamFactory::CreateSession(CompletionOnceCallback callback,
-                                     const QuicSessionAliasKey& key,
-                                     quic::ParsedQuicVersion quic_version,
-                                     int cert_verify_flags,
-                                     bool require_confirmation,
-                                     const AddressList& address_list,
-                                     base::TimeTicks dns_resolution_start_time,
-                                     base::TimeTicks dns_resolution_end_time,
-                                     const NetLogWithSource& net_log,
-                                     QuicChromiumClientSession** session,
-                                     handles::NetworkHandle* network) {
+int QuicStreamFactory::CreateSession(
+    CompletionOnceCallback callback,
+    const QuicSessionAliasKey& key,
+    quic::ParsedQuicVersion quic_version,
+    int cert_verify_flags,
+    bool require_confirmation,
+    const HostResolverEndpointResult& endpoint_result,
+    base::TimeTicks dns_resolution_start_time,
+    base::TimeTicks dns_resolution_end_time,
+    const NetLogWithSource& net_log,
+    QuicChromiumClientSession** session,
+    handles::NetworkHandle* network) {
   TRACE_EVENT0(NetTracingCategory(), "QuicStreamFactory::CreateSession");
+  // TODO(https://crbug.com/1416409): This logic only knows how to try one IP
+  // endpoint.
+  IPEndPoint addr = endpoint_result.ip_endpoints.front();
   std::unique_ptr<DatagramClientSocket> socket(
       CreateSocket(net_log.net_log(), net_log.source()));
   DatagramClientSocket* socket_ptr = socket.get();
   CompletionOnceCallback connect_and_configure_callback = base::BindOnce(
       &QuicStreamFactory::FinishCreateSession, weak_factory_.GetWeakPtr(),
       std::move(callback), key, quic_version, cert_verify_flags,
-      require_confirmation, address_list, dns_resolution_start_time,
+      require_confirmation, endpoint_result, dns_resolution_start_time,
       dns_resolution_end_time, net_log, session, network, std::move(socket));
 
   // Passing in handles::kInvalidNetworkHandle binds socket to default network.
   return ConnectAndConfigureSocket(std::move(connect_and_configure_callback),
-                                   socket_ptr, *address_list.begin(), *network,
+                                   socket_ptr, addr, *network,
                                    key.session_key().socket_tag());
 }
 
@@ -2015,7 +2061,7 @@
     quic::ParsedQuicVersion quic_version,
     int cert_verify_flags,
     bool require_confirmation,
-    const AddressList& address_list,
+    const HostResolverEndpointResult& endpoint_result,
     base::TimeTicks dns_resolution_start_time,
     base::TimeTicks dns_resolution_end_time,
     const NetLogWithSource& net_log,
@@ -2027,7 +2073,9 @@
     std::move(callback).Run(rv);
     return;
   }
-  IPEndPoint addr = *address_list.begin();
+  // TODO(https://crbug.com/1416409): This logic only knows how to try one IP
+  // endpoint.
+  IPEndPoint addr = endpoint_result.ip_endpoints.front();
   const quic::QuicServerId& server_id = key.server_id();
 
   if (params_.migrate_sessions_on_network_change_v2 &&
diff --git a/net/quic/quic_stream_factory.h b/net/quic/quic_stream_factory.h
index 84c11cd..672b949d 100644
--- a/net/quic/quic_stream_factory.h
+++ b/net/quic/quic_stream_factory.h
@@ -70,6 +70,7 @@
 class CertVerifier;
 class ClientSocketFactory;
 class HostResolver;
+struct HostResolverEndpointResult;
 class HttpServerProperties;
 class NetLog;
 class NetworkAnonymizationKey;
@@ -481,7 +482,7 @@
                     quic::ParsedQuicVersion quic_version,
                     int cert_verify_flags,
                     bool require_confirmation,
-                    const AddressList& address_list,
+                    const HostResolverEndpointResult& endpoint_result,
                     base::TimeTicks dns_resolution_start_time,
                     base::TimeTicks dns_resolution_end_time,
                     const NetLogWithSource& net_log,
@@ -492,7 +493,7 @@
                            quic::ParsedQuicVersion quic_version,
                            int cert_verify_flags,
                            bool require_confirmation,
-                           const AddressList& address_list,
+                           const HostResolverEndpointResult& endpoint_result,
                            base::TimeTicks dns_resolution_start_time,
                            base::TimeTicks dns_resolution_end_time,
                            const NetLogWithSource& net_log,
diff --git a/net/quic/quic_stream_factory_peer.cc b/net/quic/quic_stream_factory_peer.cc
index 3eed4e0..9e8a618 100644
--- a/net/quic/quic_stream_factory_peer.cc
+++ b/net/quic/quic_stream_factory_peer.cc
@@ -39,19 +39,19 @@
 bool QuicStreamFactoryPeer::HasActiveSession(
     QuicStreamFactory* factory,
     const quic::QuicServerId& server_id,
-    const NetworkAnonymizationKey& network_anonymization_key) {
+    const NetworkAnonymizationKey& network_anonymization_key,
+    bool require_dns_https_alpn) {
   return factory->HasActiveSession(
       QuicSessionKey(server_id, SocketTag(), network_anonymization_key,
-                     SecureDnsPolicy::kAllow,
-                     /*require_dns_https_alpn=*/false));
+                     SecureDnsPolicy::kAllow, require_dns_https_alpn));
 }
 
 bool QuicStreamFactoryPeer::HasActiveJob(QuicStreamFactory* factory,
-                                         const quic::QuicServerId& server_id) {
+                                         const quic::QuicServerId& server_id,
+                                         bool require_dns_https_alpn) {
   return factory->HasActiveJob(
       QuicSessionKey(server_id, SocketTag(), NetworkAnonymizationKey(),
-                     SecureDnsPolicy::kAllow,
-                     /*require_dns_https_alpn=*/false));
+                     SecureDnsPolicy::kAllow, require_dns_https_alpn));
 }
 
 // static
@@ -73,21 +73,21 @@
 QuicChromiumClientSession* QuicStreamFactoryPeer::GetActiveSession(
     QuicStreamFactory* factory,
     const quic::QuicServerId& server_id,
-    const NetworkAnonymizationKey& network_anonymization_key) {
+    const NetworkAnonymizationKey& network_anonymization_key,
+    bool require_dns_https_alpn) {
   QuicSessionKey session_key(server_id, SocketTag(), network_anonymization_key,
-                             SecureDnsPolicy::kAllow,
-                             /*require_dns_https_alpn=*/false);
+                             SecureDnsPolicy::kAllow, require_dns_https_alpn);
   DCHECK(factory->HasActiveSession(session_key));
   return factory->active_sessions_[session_key];
 }
 
-bool QuicStreamFactoryPeer::HasLiveSession(
-    QuicStreamFactory* factory,
-    url::SchemeHostPort destination,
-    const quic::QuicServerId& server_id) {
+bool QuicStreamFactoryPeer::HasLiveSession(QuicStreamFactory* factory,
+                                           url::SchemeHostPort destination,
+                                           const quic::QuicServerId& server_id,
+                                           bool require_dns_https_alpn) {
   QuicSessionKey session_key =
       QuicSessionKey(server_id, SocketTag(), NetworkAnonymizationKey(),
-                     SecureDnsPolicy::kAllow, /*require_dns_https_alpn=*/false);
+                     SecureDnsPolicy::kAllow, require_dns_https_alpn);
   QuicStreamFactory::QuicSessionAliasKey alias_key(std::move(destination),
                                                    session_key);
   for (const auto& it : factory->all_sessions_) {
diff --git a/net/quic/quic_stream_factory_peer.h b/net/quic/quic_stream_factory_peer.h
index 1d8e45a..282ec06 100644
--- a/net/quic/quic_stream_factory_peer.h
+++ b/net/quic/quic_stream_factory_peer.h
@@ -49,10 +49,12 @@
       QuicStreamFactory* factory,
       const quic::QuicServerId& server_id,
       const NetworkAnonymizationKey& network_anonymization_key =
-          NetworkAnonymizationKey());
+          NetworkAnonymizationKey(),
+      bool require_dns_https_alpn = false);
 
   static bool HasActiveJob(QuicStreamFactory* factory,
-                           const quic::QuicServerId& server_id);
+                           const quic::QuicServerId& server_id,
+                           bool require_dns_https_alpn = false);
 
   static QuicChromiumClientSession* GetPendingSession(
       QuicStreamFactory* factory,
@@ -63,11 +65,13 @@
       QuicStreamFactory* factory,
       const quic::QuicServerId& server_id,
       const NetworkAnonymizationKey& network_anonymization_key =
-          NetworkAnonymizationKey());
+          NetworkAnonymizationKey(),
+      bool require_dns_https_alpn = false);
 
   static bool HasLiveSession(QuicStreamFactory* factory,
                              url::SchemeHostPort destination,
-                             const quic::QuicServerId& server_id);
+                             const quic::QuicServerId& server_id,
+                             bool require_dns_https_alpn = false);
 
   static bool IsLiveSession(QuicStreamFactory* factory,
                             QuicChromiumClientSession* session);
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc
index d8123b1a..7fcf74e 100644
--- a/net/quic/quic_stream_factory_test.cc
+++ b/net/quic/quic_stream_factory_test.cc
@@ -360,19 +360,22 @@
                                                    network_anonymization_key);
   }
 
-  bool HasLiveSession(const url::SchemeHostPort& scheme_host_port) {
+  bool HasLiveSession(const url::SchemeHostPort& scheme_host_port,
+                      bool require_dns_https_alpn = false) {
     quic::QuicServerId server_id(scheme_host_port.host(),
                                  scheme_host_port.port(), false);
-    return QuicStreamFactoryPeer::HasLiveSession(factory_.get(),
-                                                 scheme_host_port, server_id);
+    return QuicStreamFactoryPeer::HasLiveSession(
+        factory_.get(), scheme_host_port, server_id, require_dns_https_alpn);
   }
 
   bool HasActiveJob(const url::SchemeHostPort& scheme_host_port,
-                    const PrivacyMode privacy_mode) {
+                    const PrivacyMode privacy_mode,
+                    bool require_dns_https_alpn = false) {
     quic::QuicServerId server_id(scheme_host_port.host(),
                                  scheme_host_port.port(),
                                  privacy_mode == PRIVACY_MODE_ENABLED);
-    return QuicStreamFactoryPeer::HasActiveJob(factory_.get(), server_id);
+    return QuicStreamFactoryPeer::HasActiveJob(factory_.get(), server_id,
+                                               require_dns_https_alpn);
   }
 
   // Get the pending, not activated session, if there is only one session alive.
@@ -387,11 +390,13 @@
   QuicChromiumClientSession* GetActiveSession(
       const url::SchemeHostPort& scheme_host_port,
       const NetworkAnonymizationKey& network_anonymization_key =
-          NetworkAnonymizationKey()) {
+          NetworkAnonymizationKey(),
+      bool require_dns_https_alpn = false) {
     quic::QuicServerId server_id(scheme_host_port.host(),
                                  scheme_host_port.port(), false);
     return QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server_id,
-                                                   network_anonymization_key);
+                                                   network_anonymization_key,
+                                                   require_dns_https_alpn);
   }
 
   int GetSourcePortForNewSession(const url::SchemeHostPort& destination) {
@@ -13617,11 +13622,93 @@
   EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult());
 }
 
+namespace {
+
+struct DnsRaceTestParams {
+  quic::ParsedQuicVersion version;
+  bool enable_quic_priority_incremental_support;
+  bool require_dns_https_alpn;
+};
+
+// Used by ::testing::PrintToStringParamName().
+std::string PrintToString(const DnsRaceTestParams& p) {
+  return base::StrCat({ParsedQuicVersionToString(p.version), "_",
+                       (p.enable_quic_priority_incremental_support ? "" : "No"),
+                       "Incremental",
+                       (p.require_dns_https_alpn ? "_SVCB" : "")});
+}
+
+std::vector<DnsRaceTestParams> GetDnsRaceTestParams() {
+  std::vector<DnsRaceTestParams> ret;
+  for (const auto& p : GetTestParams()) {
+    DnsRaceTestParams params{.version = p.version,
+                             .enable_quic_priority_incremental_support =
+                                 p.enable_quic_priority_incremental_support,
+                             .require_dns_https_alpn = false};
+    ret.push_back(params);
+    params.require_dns_https_alpn = true;
+    ret.push_back(params);
+  }
+  return ret;
+}
+
+}  // namespace
+
+class QuicStreamFactoryDnsRaceTest
+    : public QuicStreamFactoryTestBase,
+      public ::testing::TestWithParam<DnsRaceTestParams> {
+ protected:
+  QuicStreamFactoryDnsRaceTest()
+      : QuicStreamFactoryTestBase(
+            GetParam().version,
+            GetParam().enable_quic_priority_incremental_support) {
+    quic_params_->race_stale_dns_on_connection = true;
+    if (require_dns_https_alpn()) {
+      quic_params_->supported_versions = {version_};
+    }
+  }
+
+  bool require_dns_https_alpn() const {
+    return GetParam().require_dns_https_alpn;
+  }
+
+  quic::ParsedQuicVersion InitialQuicVersion() const {
+    if (require_dns_https_alpn()) {
+      return quic::ParsedQuicVersion::Unsupported();
+    }
+    return version_;
+  }
+
+  void AddSvcbHostResolverRule(base::StringPiece ip_literal,
+                               base::StringPiece alpn) {
+    HostResolverEndpointResult endpoint_result;
+    endpoint_result.ip_endpoints.push_back(IPEndPoint(
+        *IPAddress::FromIPLiteral(ip_literal), scheme_host_port_.port()));
+    endpoint_result.metadata.target_name = scheme_host_port_.host();
+    endpoint_result.metadata.supported_protocol_alpns = {std::string(alpn)};
+    host_resolver_->rules()->AddRule(
+        scheme_host_port_.host(),
+        MockHostResolver::RuleResolver::RuleResult({endpoint_result}));
+  }
+
+  void AddDefaultHostResolverRule(base::StringPiece ip_literal) {
+    if (require_dns_https_alpn()) {
+      AddSvcbHostResolverRule(ip_literal, quic::AlpnForVersion(version_));
+    } else {
+      host_resolver_->rules()->AddRule(scheme_host_port_.host(), ip_literal);
+    }
+  }
+};
+
+INSTANTIATE_TEST_SUITE_P(VersionIncludeStreamDependencySequence,
+                         QuicStreamFactoryDnsRaceTest,
+                         ::testing::ValuesIn(GetDnsRaceTestParams()),
+                         ::testing::PrintToStringParamName());
+
 // With dns race experiment turned on, and DNS resolve succeeds synchronously,
 // the final connection is established through the resolved DNS. No racing
 // connection.
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceAndHostResolutionSync) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest, ResultAfterDNSRaceAndHostResolutionSync) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -13629,7 +13716,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_synchronous_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -13638,8 +13725,7 @@
 
   // Change to different address for fresh host resolutions.
   host_resolver_->rules()->ClearRules();
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(),
-                                   kNonCachedIPAddress);
+  AddDefaultHostResolverRule(kNonCachedIPAddress);
 
   MockQuicData quic_data(version_);
   quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
@@ -13649,15 +13735,17 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
   EXPECT_THAT(callback_.WaitForResult(), IsOk());
   std::unique_ptr<HttpStream> stream = CreateStream(&request);
   EXPECT_TRUE(stream.get());
-  QuicChromiumClientSession* session = GetActiveSession(scheme_host_port_);
+  QuicChromiumClientSession* session = GetActiveSession(
+      scheme_host_port_, NetworkAnonymizationKey(), require_dns_https_alpn());
   EXPECT_EQ(session->peer_address().host().ToString(), kNonCachedIPAddress);
 
   EXPECT_TRUE(quic_data.AllReadDataConsumed());
@@ -13667,7 +13755,7 @@
 // With dns race experiment on, DNS resolve returns async, no matching cache in
 // host resolver, connection should be successful and through resolved DNS. No
 // racing connection.
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceAndHostResolutionAsync) {
+TEST_P(QuicStreamFactoryDnsRaceTest, ResultAfterDNSRaceAndHostResolutionAsync) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -13675,8 +13763,7 @@
 
   // Set an address in resolver for asynchronous return.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddIPLiteralRule(scheme_host_port_.host(),
-                                            kNonCachedIPAddress, "");
+  AddDefaultHostResolverRule(kNonCachedIPAddress);
 
   MockQuicData quic_data(version_);
   quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
@@ -13686,9 +13773,10 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
   TestCompletionCallback host_resolution_callback;
@@ -13704,7 +13792,8 @@
 
   std::unique_ptr<HttpStream> stream = CreateStream(&request);
   EXPECT_TRUE(stream.get());
-  QuicChromiumClientSession* session = GetActiveSession(scheme_host_port_);
+  QuicChromiumClientSession* session = GetActiveSession(
+      scheme_host_port_, NetworkAnonymizationKey(), require_dns_https_alpn());
 
   EXPECT_EQ(session->peer_address().host().ToString(), kNonCachedIPAddress);
 
@@ -13714,9 +13803,8 @@
 
 // With dns race experiment on, dns resolve async, stale dns used, connect
 // async, and then the result matches.
-TEST_P(QuicStreamFactoryTest,
+TEST_P(QuicStreamFactoryDnsRaceTest,
        ResultAfterDNSRaceHostResolveAsyncConnectAsyncStaleMatch) {
-  quic_params_->race_stale_dns_on_connection = true;
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -13724,7 +13812,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -13744,9 +13832,10 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
@@ -13756,17 +13845,19 @@
       ->NotifySessionOneRttKeyAvailable();
 
   // Check that the racing job is running.
-  EXPECT_TRUE(HasActiveJob(scheme_host_port_, privacy_mode_));
+  EXPECT_TRUE(
+      HasActiveJob(scheme_host_port_, privacy_mode_, require_dns_https_alpn()));
 
   // Resolve dns and call back, make sure job finishes.
   host_resolver_->ResolveAllPending();
   EXPECT_THAT(callback_.WaitForResult(), IsOk());
-  EXPECT_TRUE(HasLiveSession(scheme_host_port_));
+  EXPECT_TRUE(HasLiveSession(scheme_host_port_, require_dns_https_alpn()));
 
   std::unique_ptr<HttpStream> stream = CreateStream(&request);
   EXPECT_TRUE(stream.get());
 
-  QuicChromiumClientSession* session = GetActiveSession(scheme_host_port_);
+  QuicChromiumClientSession* session = GetActiveSession(
+      scheme_host_port_, NetworkAnonymizationKey(), require_dns_https_alpn());
 
   EXPECT_EQ(session->peer_address().host().ToString(), kCachedIPAddress);
 
@@ -13776,9 +13867,8 @@
 
 // With dns race experiment on, dns resolve async, stale dns used, dns resolve
 // return, then connection finishes and matches with the result.
-TEST_P(QuicStreamFactoryTest,
+TEST_P(QuicStreamFactoryDnsRaceTest,
        ResultAfterDNSRaceHostResolveAsyncStaleMatchConnectAsync) {
-  quic_params_->race_stale_dns_on_connection = true;
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -13786,7 +13876,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -13806,9 +13896,10 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
@@ -13826,7 +13917,8 @@
   std::unique_ptr<HttpStream> stream = CreateStream(&request);
   EXPECT_TRUE(stream.get());
 
-  QuicChromiumClientSession* session = GetActiveSession(scheme_host_port_);
+  QuicChromiumClientSession* session = GetActiveSession(
+      scheme_host_port_, NetworkAnonymizationKey(), require_dns_https_alpn());
   EXPECT_EQ(session->peer_address().host().ToString(), kCachedIPAddress);
 
   EXPECT_TRUE(quic_data.AllReadDataConsumed());
@@ -13835,8 +13927,8 @@
 
 // With dns race experiment on, dns resolve async, stale used and connects
 // async, finishes before dns, but no match
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceStaleAsyncResolveAsyncNoMatch) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest,
+       ResultAfterDNSRaceStaleAsyncResolveAsyncNoMatch) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -13844,7 +13936,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -13853,8 +13945,7 @@
 
   // Change to different address for fresh host resolutions.
   host_resolver_->rules()->ClearRules();
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(),
-                                   kNonCachedIPAddress);
+  AddDefaultHostResolverRule(kNonCachedIPAddress);
 
   factory_->set_is_quic_known_to_work_on_current_network(false);
   crypto_client_stream_factory_.set_handshake_mode(
@@ -13882,9 +13973,10 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
@@ -13892,8 +13984,9 @@
   // Finish the stale connection.
   crypto_client_stream_factory_.last_stream()
       ->NotifySessionOneRttKeyAvailable();
-  EXPECT_TRUE(HasLiveSession(scheme_host_port_));
-  EXPECT_TRUE(HasActiveJob(scheme_host_port_, privacy_mode_));
+  EXPECT_TRUE(HasLiveSession(scheme_host_port_, require_dns_https_alpn()));
+  EXPECT_TRUE(
+      HasActiveJob(scheme_host_port_, privacy_mode_, require_dns_https_alpn()));
 
   // Finish host resolution and check the job is done.
   host_resolver_->ResolveAllPending();
@@ -13902,7 +13995,8 @@
   std::unique_ptr<HttpStream> stream = CreateStream(&request);
   EXPECT_TRUE(stream.get());
 
-  QuicChromiumClientSession* session = GetActiveSession(scheme_host_port_);
+  QuicChromiumClientSession* session = GetActiveSession(
+      scheme_host_port_, NetworkAnonymizationKey(), require_dns_https_alpn());
   EXPECT_EQ(session->peer_address().host().ToString(), kNonCachedIPAddress);
 
   EXPECT_TRUE(quic_data.AllReadDataConsumed());
@@ -13913,8 +14007,8 @@
 
 // With dns race experiment on, dns resolve async, stale used and connects
 // async, dns finishes first, but no match
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceResolveAsyncStaleAsyncNoMatch) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest,
+       ResultAfterDNSRaceResolveAsyncStaleAsyncNoMatch) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -13922,7 +14016,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -13931,8 +14025,7 @@
 
   // Change to different address for fresh host resolutions.
   host_resolver_->rules()->ClearRules();
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(),
-                                   kNonCachedIPAddress);
+  AddDefaultHostResolverRule(kNonCachedIPAddress);
 
   factory_->set_is_quic_known_to_work_on_current_network(false);
   crypto_client_stream_factory_.set_handshake_mode(
@@ -13959,9 +14052,10 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
   base::RunLoop().RunUntilIdle();
@@ -13975,7 +14069,8 @@
   std::unique_ptr<HttpStream> stream = CreateStream(&request);
   EXPECT_TRUE(stream.get());
 
-  QuicChromiumClientSession* session = GetActiveSession(scheme_host_port_);
+  QuicChromiumClientSession* session = GetActiveSession(
+      scheme_host_port_, NetworkAnonymizationKey(), require_dns_https_alpn());
   EXPECT_EQ(session->peer_address().host().ToString(), kNonCachedIPAddress);
 
   EXPECT_TRUE(quic_data.AllReadDataConsumed());
@@ -13986,8 +14081,7 @@
 
 // With dns race experiment on, dns resolve returns error sync, same behavior
 // as experiment is not on
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceHostResolveError) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest, ResultAfterDNSRaceHostResolveError) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -14003,17 +14097,17 @@
 
   EXPECT_EQ(ERR_NAME_NOT_RESOLVED,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 }
 
 // With dns race experiment on, no cache available, dns resolve returns error
 // async
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceHostResolveAsyncError) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest, ResultAfterDNSRaceHostResolveAsyncError) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -14029,9 +14123,10 @@
 
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
@@ -14042,8 +14137,8 @@
 
 // With dns race experiment on, dns resolve async, staled used and connects
 // sync, dns returns error and no connection is established.
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceStaleSyncHostResolveError) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest,
+       ResultAfterDNSRaceStaleSyncHostResolveError) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -14051,7 +14146,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -14077,21 +14172,82 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
   // Check that the stale connection is running.
-  EXPECT_TRUE(HasActiveJob(scheme_host_port_, privacy_mode_));
+  EXPECT_TRUE(
+      HasActiveJob(scheme_host_port_, privacy_mode_, require_dns_https_alpn()));
 
   base::RunLoop().RunUntilIdle();
   // Finish host resolution.
   host_resolver_->ResolveAllPending();
   EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_NAME_NOT_RESOLVED));
 
-  EXPECT_TRUE(HasLiveSession(scheme_host_port_));
+  EXPECT_TRUE(HasLiveSession(scheme_host_port_, require_dns_https_alpn()));
+
+  EXPECT_TRUE(quic_data.AllReadDataConsumed());
+  EXPECT_TRUE(quic_data.AllWriteDataConsumed());
+}
+
+// With dns race experiment on, dns resolve async, staled used and connects
+// sync, dns returns no ALPN match and no connection is established.
+TEST_P(QuicStreamFactoryDnsRaceTest,
+       ResultAfterDNSRaceStaleSyncHostResolveNoMatchingALPN) {
+  host_resolver_ = std::make_unique<MockCachingHostResolver>();
+  Initialize();
+  ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
+  crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
+
+  // Set up an address in stale resolver cache.
+  host_resolver_->set_ondemand_mode(true);
+  AddSvcbHostResolverRule(kCachedIPAddress, quic::AlpnForVersion(version_));
+  host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
+                                /*optional_parameters=*/absl::nullopt);
+
+  // Expire the cache
+  host_resolver_->GetHostCache()->Invalidate();
+
+  // Change the ALPN for fresh host resolutions.
+  host_resolver_->rules()->ClearRules();
+  AddSvcbHostResolverRule(kCachedIPAddress, "wrong-alpn");
+
+  // Socket for the stale connection which is supposed to disconnect.
+  MockQuicData quic_data(version_);
+  quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
+  int packet_num = 1;
+  quic_data.AddWrite(SYNCHRONOUS, ConstructInitialSettingsPacket(packet_num++));
+  quic_data.AddWrite(SYNCHRONOUS,
+                     client_maker_.MakeConnectionClosePacket(
+                         packet_num++, true,
+                         quic::QUIC_STALE_CONNECTION_CANCELLED, "net error"));
+  quic_data.AddSocketDataToFactory(socket_factory_.get());
+
+  QuicStreamRequest request(factory_.get());
+  EXPECT_EQ(ERR_IO_PENDING,
+            request.Request(
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
+                /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
+                failed_on_default_network_callback_, callback_.callback()));
+
+  // Check that the stale connection is running.
+  EXPECT_TRUE(
+      HasActiveJob(scheme_host_port_, privacy_mode_, require_dns_https_alpn()));
+
+  base::RunLoop().RunUntilIdle();
+  // Finish host resolution.
+  host_resolver_->ResolveAllPending();
+  EXPECT_THAT(callback_.WaitForResult(),
+              IsError(ERR_DNS_NO_MATCHING_SUPPORTED_ALPN));
+
+  EXPECT_TRUE(HasLiveSession(scheme_host_port_, require_dns_https_alpn()));
 
   EXPECT_TRUE(quic_data.AllReadDataConsumed());
   EXPECT_TRUE(quic_data.AllWriteDataConsumed());
@@ -14100,8 +14256,7 @@
 // With dns race experiment on, dns resolve async, stale used and connection
 // return error, then dns matches.
 // This serves as a regression test for crbug.com/956374.
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceStaleErrorDNSMatches) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest, ResultAfterDNSRaceStaleErrorDNSMatches) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -14109,7 +14264,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -14128,13 +14283,15 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
-  EXPECT_FALSE(HasLiveSession(scheme_host_port_));
-  EXPECT_TRUE(HasActiveJob(scheme_host_port_, privacy_mode_));
+  EXPECT_FALSE(HasLiveSession(scheme_host_port_, require_dns_https_alpn()));
+  EXPECT_TRUE(
+      HasActiveJob(scheme_host_port_, privacy_mode_, require_dns_https_alpn()));
 
   base::RunLoop().RunUntilIdle();
   host_resolver_->ResolveAllPending();
@@ -14143,8 +14300,7 @@
 
 // With dns race experiment on, dns resolve async, stale used and connection
 // returns error, dns no match, new connection is established
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceStaleErrorDNSNoMatch) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest, ResultAfterDNSRaceStaleErrorDNSNoMatch) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -14152,7 +14308,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -14161,8 +14317,7 @@
 
   // Change to different address for fresh host resolutions.
   host_resolver_->rules()->ClearRules();
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(),
-                                   kNonCachedIPAddress);
+  AddDefaultHostResolverRule(kNonCachedIPAddress);
 
   // Add failure for the stale connection.
   MockQuicData quic_data(version_);
@@ -14178,22 +14333,25 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
   // Check that the stale connection fails.
-  EXPECT_FALSE(HasLiveSession(scheme_host_port_));
-  EXPECT_TRUE(HasActiveJob(scheme_host_port_, privacy_mode_));
+  EXPECT_FALSE(HasLiveSession(scheme_host_port_, require_dns_https_alpn()));
+  EXPECT_TRUE(
+      HasActiveJob(scheme_host_port_, privacy_mode_, require_dns_https_alpn()));
   host_resolver_->ResolveAllPending();
   EXPECT_EQ(callback_.WaitForResult(), OK);
 
   std::unique_ptr<HttpStream> stream = CreateStream(&request);
   EXPECT_TRUE(stream.get());
 
-  QuicChromiumClientSession* session = GetActiveSession(scheme_host_port_);
+  QuicChromiumClientSession* session = GetActiveSession(
+      scheme_host_port_, NetworkAnonymizationKey(), require_dns_https_alpn());
 
   EXPECT_EQ(session->peer_address().host().ToString(), kNonCachedIPAddress);
 
@@ -14203,8 +14361,8 @@
 
 // With dns race experiment on, dns resolve async, stale used and connection
 // returns error, dns no match, new connection error
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceStaleErrorDNSNoMatchError) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest,
+       ResultAfterDNSRaceStaleErrorDNSNoMatchError) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -14212,7 +14370,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -14221,8 +14379,7 @@
 
   // Change to different address for fresh host resolutions.
   host_resolver_->rules()->ClearRules();
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(),
-                                   kNonCachedIPAddress);
+  AddDefaultHostResolverRule(kNonCachedIPAddress);
 
   // Add failure for stale connection.
   MockQuicData quic_data(version_);
@@ -14237,15 +14394,17 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
   // Check the stale connection fails.
-  EXPECT_FALSE(HasLiveSession(scheme_host_port_));
-  EXPECT_TRUE(HasActiveJob(scheme_host_port_, privacy_mode_));
+  EXPECT_FALSE(HasLiveSession(scheme_host_port_, require_dns_https_alpn()));
+  EXPECT_TRUE(
+      HasActiveJob(scheme_host_port_, privacy_mode_, require_dns_https_alpn()));
 
   // Check the resolved dns connection fails.
   host_resolver_->ResolveAllPending();
@@ -14254,8 +14413,8 @@
 
 // With dns race experiment on, dns resolve async and stale connect async, dns
 // resolve returns error and then preconnect finishes
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceResolveAsyncErrorStaleAsync) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest,
+       ResultAfterDNSRaceResolveAsyncErrorStaleAsync) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -14263,7 +14422,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -14292,9 +14451,10 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
@@ -14309,9 +14469,8 @@
 
 // With dns race experiment on, dns resolve async and stale connect async, dns
 // resolve returns error and then preconnect fails.
-TEST_P(QuicStreamFactoryTest,
+TEST_P(QuicStreamFactoryDnsRaceTest,
        ResultAfterDNSRaceResolveAsyncErrorStaleAsyncError) {
-  quic_params_->race_stale_dns_on_connection = true;
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
@@ -14319,7 +14478,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -14347,9 +14506,10 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
@@ -14365,16 +14525,14 @@
 
 // With dns race experiment on, test that host resolution callback behaves
 // normal as experiment is not on
-TEST_P(QuicStreamFactoryTest, ResultAfterDNSRaceHostResolveAsync) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest, ResultAfterDNSRaceHostResolveAsync) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   Initialize();
   ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
   crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
 
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddIPLiteralRule(scheme_host_port_.host(),
-                                            kNonCachedIPAddress, "");
+  AddDefaultHostResolverRule(kNonCachedIPAddress);
 
   MockQuicData quic_data(version_);
   quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
@@ -14384,9 +14542,10 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
@@ -14410,8 +14569,7 @@
 
 // With stale dns and migration before handshake experiment on, migration failed
 // after handshake confirmed, and then fresh resolve returns.
-TEST_P(QuicStreamFactoryTest, StaleNetworkFailedAfterHandshake) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest, StaleNetworkFailedAfterHandshake) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
 
   InitializeConnectionMigrationV2Test(
@@ -14421,7 +14579,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -14430,8 +14588,7 @@
 
   // Change to different address for fresh host resolutions.
   host_resolver_->rules()->ClearRules();
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(),
-                                   kNonCachedIPAddress);
+  AddDefaultHostResolverRule(kNonCachedIPAddress);
 
   MockQuicData quic_data(version_);
   quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
@@ -14448,15 +14605,17 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
   base::RunLoop().RunUntilIdle();
   // Check that the racing job is running.
-  EXPECT_TRUE(HasActiveJob(scheme_host_port_, privacy_mode_));
+  EXPECT_TRUE(
+      HasActiveJob(scheme_host_port_, privacy_mode_, require_dns_https_alpn()));
 
   // By disconnecting the network, the stale session will be killed.
   scoped_mock_network_change_notifier_->mock_network_change_notifier()
@@ -14464,12 +14623,13 @@
 
   host_resolver_->ResolveAllPending();
   EXPECT_THAT(callback_.WaitForResult(), IsOk());
-  EXPECT_TRUE(HasLiveSession(scheme_host_port_));
+  EXPECT_TRUE(HasLiveSession(scheme_host_port_, require_dns_https_alpn()));
 
   std::unique_ptr<HttpStream> stream = CreateStream(&request);
   EXPECT_TRUE(stream.get());
 
-  QuicChromiumClientSession* session = GetActiveSession(scheme_host_port_);
+  QuicChromiumClientSession* session = GetActiveSession(
+      scheme_host_port_, NetworkAnonymizationKey(), require_dns_https_alpn());
 
   EXPECT_EQ(session->peer_address().host().ToString(), kNonCachedIPAddress);
 
@@ -14481,8 +14641,7 @@
 
 // With stale dns experiment on,  the stale session is killed while waiting for
 // handshake
-TEST_P(QuicStreamFactoryTest, StaleNetworkFailedBeforeHandshake) {
-  quic_params_->race_stale_dns_on_connection = true;
+TEST_P(QuicStreamFactoryDnsRaceTest, StaleNetworkFailedBeforeHandshake) {
   host_resolver_ = std::make_unique<MockCachingHostResolver>();
   InitializeConnectionMigrationV2Test(
       {kDefaultNetworkForTests, kNewNetworkForTests});
@@ -14491,7 +14650,7 @@
 
   // Set up an address in stale resolver cache.
   host_resolver_->set_ondemand_mode(true);
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(), kCachedIPAddress);
+  AddDefaultHostResolverRule(kCachedIPAddress);
   host_resolver_->LoadIntoCache(scheme_host_port_, NetworkAnonymizationKey(),
                                 /*optional_parameters=*/absl::nullopt);
 
@@ -14500,8 +14659,7 @@
 
   // Change to different address for fresh host resolutions.
   host_resolver_->rules()->ClearRules();
-  host_resolver_->rules()->AddRule(scheme_host_port_.host(),
-                                   kNonCachedIPAddress);
+  AddDefaultHostResolverRule(kNonCachedIPAddress);
 
   factory_->set_is_quic_known_to_work_on_current_network(false);
   crypto_client_stream_factory_.set_handshake_mode(
@@ -14522,14 +14680,16 @@
   QuicStreamRequest request(factory_.get());
   EXPECT_EQ(ERR_IO_PENDING,
             request.Request(
-                scheme_host_port_, version_, privacy_mode_, DEFAULT_PRIORITY,
-                SocketTag(), NetworkAnonymizationKey(), SecureDnsPolicy::kAllow,
-                /*use_dns_aliases=*/true, /*require_dns_https_alpn=*/false,
+                scheme_host_port_, InitialQuicVersion(), privacy_mode_,
+                DEFAULT_PRIORITY, SocketTag(), NetworkAnonymizationKey(),
+                SecureDnsPolicy::kAllow,
+                /*use_dns_aliases=*/true, require_dns_https_alpn(),
                 /*cert_verify_flags=*/0, url_, net_log_, &net_error_details_,
                 failed_on_default_network_callback_, callback_.callback()));
 
   // Check that the racing job is running.
-  EXPECT_TRUE(HasActiveJob(scheme_host_port_, privacy_mode_));
+  EXPECT_TRUE(
+      HasActiveJob(scheme_host_port_, privacy_mode_, require_dns_https_alpn()));
 
   base::RunLoop().RunUntilIdle();
   // By disconnecting the network, the stale session will be killed.
@@ -14542,12 +14702,13 @@
   crypto_client_stream_factory_.last_stream()
       ->NotifySessionOneRttKeyAvailable();
   EXPECT_THAT(callback_.WaitForResult(), IsOk());
-  EXPECT_TRUE(HasLiveSession(scheme_host_port_));
+  EXPECT_TRUE(HasLiveSession(scheme_host_port_, require_dns_https_alpn()));
 
   std::unique_ptr<HttpStream> stream = CreateStream(&request);
   EXPECT_TRUE(stream.get());
 
-  QuicChromiumClientSession* session = GetActiveSession(scheme_host_port_);
+  QuicChromiumClientSession* session = GetActiveSession(
+      scheme_host_port_, NetworkAnonymizationKey(), require_dns_https_alpn());
   EXPECT_EQ(session->peer_address().host().ToString(), kNonCachedIPAddress);
 
   EXPECT_TRUE(quic_data.AllReadDataConsumed());
@@ -14930,11 +15091,22 @@
   TestRequireDnsHttpsAlpn(std::move(endpoints), /*expect_success=*/false);
 }
 
+// If the only routes come from HTTPS/SVCB records (impossible until
+// https://crbug.com/1417033 is implemented), we should still pick up the
+// address from the HTTPS record.
+TEST_P(QuicStreamFactoryTest, RequireDnsHttpsRecordOnly) {
+  std::vector<HostResolverEndpointResult> endpoints(1);
+  endpoints[0].ip_endpoints = {IPEndPoint(IPAddress::IPv4Localhost(), 0)};
+  endpoints[0].metadata.supported_protocol_alpns = {
+      quic::AlpnForVersion(version_)};
+  TestRequireDnsHttpsAlpn(std::move(endpoints), /*expect_success=*/true);
+}
+
 void QuicStreamFactoryTestBase::TestRequireDnsHttpsAlpn(
     std::vector<HostResolverEndpointResult> endpoints,
     bool expect_success) {
   quic_params_->supported_versions = {version_};
-  host_resolver_ = std::make_unique<MockCachingHostResolver>();
+  host_resolver_ = std::make_unique<MockHostResolver>();
   host_resolver_->rules()->AddRule(
       scheme_host_port_.host(),
       MockHostResolverBase::RuleResolver::RuleResult(
diff --git a/services/network/http_cache_data_remover.cc b/services/network/http_cache_data_remover.cc
index 966d6d4..83a642f 100644
--- a/services/network/http_cache_data_remover.cc
+++ b/services/network/http_cache_data_remover.cc
@@ -16,6 +16,7 @@
 #include "net/http/http_network_session.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_getter.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "url/gurl.h"
 
diff --git a/services/network/http_cache_data_remover.h b/services/network/http_cache_data_remover.h
index c4fc6ad..2b609a2 100644
--- a/services/network/http_cache_data_remover.h
+++ b/services/network/http_cache_data_remover.h
@@ -13,7 +13,9 @@
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "services/network/conditional_cache_deletion_helper.h"
+#include "services/network/public/mojom/clear_data_filter.mojom-forward.h"
 #include "services/network/public/mojom/network_context.mojom-forward.h"
+#include "services/network/public/mojom/network_service.mojom.h"
 #include "url/gurl.h"
 
 namespace disk_cache {
diff --git a/services/network/http_cache_data_remover_unittest.cc b/services/network/http_cache_data_remover_unittest.cc
index b758b9d..6b9835a 100644
--- a/services/network/http_cache_data_remover_unittest.cc
+++ b/services/network/http_cache_data_remover_unittest.cc
@@ -30,6 +30,7 @@
 #include "net/url_request/url_request_context_builder.h"
 #include "services/network/network_context.h"
 #include "services/network/network_service.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/test/fake_test_cert_verifier_params_factory.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
index 1cdc1d6e..569b32218 100644
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -108,6 +108,7 @@
 #include "services/network/public/cpp/network_switches.h"
 #include "services/network/public/cpp/parsed_headers.h"
 #include "services/network/public/cpp/simple_host_resolver.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom-forward.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "services/network/public/mojom/reporting_service.mojom.h"
diff --git a/services/network/network_context.h b/services/network/network_context.h
index 1af4c1f..acb4fb3 100644
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
@@ -50,6 +50,7 @@
 #include "services/network/public/cpp/cors/origin_access_list.h"
 #include "services/network/public/cpp/network_service_buildflags.h"
 #include "services/network/public/cpp/transferable_directory.h"
+#include "services/network/public/mojom/clear_data_filter.mojom-forward.h"
 #include "services/network/public/mojom/cookie_access_observer.mojom.h"
 #include "services/network/public/mojom/cookie_manager.mojom-shared.h"
 #include "services/network/public/mojom/host_resolver.mojom.h"
diff --git a/services/network/network_context_unittest.cc b/services/network/network_context_unittest.cc
index 2a1428f..adc7c63 100644
--- a/services/network/network_context_unittest.cc
+++ b/services/network/network_context_unittest.cc
@@ -127,6 +127,7 @@
 #include "services/network/public/cpp/features.h"
 #include "services/network/public/cpp/network_service_buildflags.h"
 #include "services/network/public/cpp/resolve_host_client_base.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/host_resolver.mojom.h"
 #include "services/network/public/mojom/net_log.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
@@ -7358,7 +7359,7 @@
 }
 
 TEST_F(NetworkContextTest,
-       RejectsTrustTokenBearingRequestWhenThirdPartyCookiesAreDisabled) {
+       RejectsTrustTokenBearingRequestWhenTrustTokensAreBlocked) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndEnableFeature(features::kPrivateStateTokens);
 
@@ -7372,7 +7373,38 @@
           [&run_loop](TrustTokenStore* unused) { run_loop.Quit(); }));
   run_loop.Run();
 
-  network_context->cookie_manager()->BlockThirdPartyCookies(true);
+  network_context->SetBlockTrustTokens(true);
+
+  ResourceRequest my_request;
+  my_request.trust_token_params =
+      OptionalTrustTokenParams(mojom::TrustTokenParams::New());
+
+  std::unique_ptr<TestURLLoaderClient> client = FetchRequest(
+      my_request, network_context.get(), mojom::kURLLoadOptionNone,
+      mojom::kBrowserProcessId, mojom::URLLoaderFactoryParams::New());
+  EXPECT_EQ(client->completion_status().error_code,
+            net::ERR_TRUST_TOKEN_OPERATION_FAILED);
+  EXPECT_EQ(client->completion_status().trust_token_operation_status,
+            mojom::TrustTokenOperationStatus::kUnauthorized);
+}
+
+TEST_F(NetworkContextTest,
+       RejectsTrustTokenBearingRequestWhenStorageIsBlocked) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeature(features::kPrivateStateTokens);
+
+  std::unique_ptr<NetworkContext> network_context =
+      CreateContextWithParams(CreateNetworkContextParamsForTesting());
+
+  // Allow the store time to initialize asynchronously.
+  base::RunLoop run_loop;
+  network_context->trust_token_store()->ExecuteOrEnqueue(
+      base::BindLambdaForTesting(
+          [&run_loop](TrustTokenStore* unused) { run_loop.Quit(); }));
+  run_loop.Run();
+
+  network_context->SetBlockTrustTokens(false);
+  SetDefaultContentSetting(CONTENT_SETTING_BLOCK, network_context.get());
 
   ResourceRequest my_request;
   my_request.trust_token_params =
diff --git a/services/network/oblivious_http_request_handler.cc b/services/network/oblivious_http_request_handler.cc
index e64a8ac..7aef094 100644
--- a/services/network/oblivious_http_request_handler.cc
+++ b/services/network/oblivious_http_request_handler.cc
@@ -24,6 +24,7 @@
 #include "services/network/network_context.h"
 #include "services/network/network_service.h"
 #include "services/network/public/cpp/simple_url_loader.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/oblivious_http_request.mojom.h"
 #include "services/network/public/mojom/url_loader_factory.mojom.h"
 #include "services/network/trust_tokens/trust_token_request_helper_factory.h"
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
index b7d5061f..8e40089 100644
--- a/services/network/public/mojom/BUILD.gn
+++ b/services/network/public/mojom/BUILD.gn
@@ -1234,6 +1234,7 @@
   generate_java = true
   sources = [
     "cert_verifier_service.mojom",
+    "clear_data_filter.mojom",
     "cors_origin_pattern.mojom",
     "default_credentials.mojom",
     "dhcp_wpad_url_client.mojom",
diff --git a/services/network/public/mojom/clear_data_filter.mojom b/services/network/public/mojom/clear_data_filter.mojom
new file mode 100644
index 0000000..d4680ed5
--- /dev/null
+++ b/services/network/public/mojom/clear_data_filter.mojom
@@ -0,0 +1,25 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module network.mojom;
+
+import "url/mojom/origin.mojom";
+
+// Used in some clearing methods of URL-keyed data to specify the resources to
+// keep/delete.
+struct ClearDataFilter {
+  enum Type {DELETE_MATCHES, KEEP_MATCHES};
+
+  Type type;
+
+  // A list of registrable domains (e.g. google.com), internal hostnames
+  // (e.g. localhost), or IP addresses (e.g. 127.0.0.1). Other domains, such as
+  // third and lower level domains (e.g. www.google.com) are not accepted.
+  // Formally, it must hold that GetDomainAndRegistry(|domain|, _) is |domain|
+  // itself or an empty string.
+  array<string> domains;
+
+  // List of URL origins.
+  array<url.mojom.Origin> origins;
+};
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
index dffeca0..9433e0e 100644
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -13,6 +13,7 @@
 import "services/network/public/mojom/address_list.mojom";
 import "services/network/public/mojom/url_loader_network_service_observer.mojom";
 import "services/network/public/mojom/cert_verifier_service.mojom";
+import "services/network/public/mojom/clear_data_filter.mojom";
 import "services/network/public/mojom/client_security_state.mojom";
 import "services/network/public/mojom/cookie_access_observer.mojom";
 import "services/network/public/mojom/cookie_manager.mojom";
@@ -567,24 +568,6 @@
   double upload_throughput;
 };
 
-// Used in some clearing methods of URL-keyed data to specify the resources to
-// keep/delete.
-struct ClearDataFilter {
-  enum Type {DELETE_MATCHES, KEEP_MATCHES};
-
-  Type type;
-
-  // A list of registrable domains (e.g. google.com), internal hostnames
-  // (e.g. localhost), or IP addresses (e.g. 127.0.0.1). Other domains, such as
-  // third and lower level domains (e.g. www.google.com) are not accepted.
-  // Formally, it must hold that GetDomainAndRegistry(|domain|, _) is |domain|
-  // itself or an empty string.
-  array<string> domains;
-
-  // List of URL origins.
-  array<url.mojom.Origin> origins;
-};
-
 // Represents a signed exchange report.
 // Spec: https://wicg.github.io/webpackage/loading.html#queue-report
 struct SignedExchangeReport {
diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h
index 5415522..70a7361 100644
--- a/services/network/test/test_network_context.h
+++ b/services/network/test/test_network_context.h
@@ -22,6 +22,7 @@
 #include "net/net_buildflags.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "services/network/public/cpp/network_service_buildflags.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/cookie_access_observer.mojom.h"
 #include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "services/network/public/mojom/host_resolver.mojom.h"
diff --git a/services/network/trust_tokens/trust_token_store.cc b/services/network/trust_tokens/trust_token_store.cc
index 017a50d..57b32cd2 100644
--- a/services/network/trust_tokens/trust_token_store.cc
+++ b/services/network/trust_tokens/trust_token_store.cc
@@ -12,6 +12,7 @@
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "services/network/public/cpp/is_potentially_trustworthy.h"
 #include "services/network/public/cpp/trust_token_parameterization.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/trust_tokens.mojom-forward.h"
 #include "services/network/trust_tokens/in_memory_trust_token_persister.h"
 #include "services/network/trust_tokens/proto/public.pb.h"
diff --git a/services/network/trust_tokens/trust_token_store_unittest.cc b/services/network/trust_tokens/trust_token_store_unittest.cc
index fc72c3f..9a304bd6 100644
--- a/services/network/trust_tokens/trust_token_store_unittest.cc
+++ b/services/network/trust_tokens/trust_token_store_unittest.cc
@@ -11,6 +11,7 @@
 #include "base/test/task_environment.h"
 #include "base/time/time.h"
 #include "services/network/public/cpp/trust_token_parameterization.h"
+#include "services/network/public/mojom/clear_data_filter.mojom.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "services/network/trust_tokens/in_memory_trust_token_persister.h"
 #include "services/network/trust_tokens/proto/public.pb.h"
diff --git a/services/network/url_loader_factory.cc b/services/network/url_loader_factory.cc
index 761cff5..b86541a 100644
--- a/services/network/url_loader_factory.cc
+++ b/services/network/url_loader_factory.cc
@@ -12,8 +12,11 @@
 #include "base/functional/bind.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/notreached.h"
+#include "components/content_settings/core/common/content_settings.h"
 #include "mojo/public/cpp/bindings/message.h"
+#include "net/base/isolation_info.h"
 #include "net/cookies/cookie_constants.h"
+#include "net/cookies/cookie_setting_override.h"
 #include "net/url_request/url_request_context.h"
 #include "services/network/attribution/attribution_request_helper.h"
 #include "services/network/cookie_manager.h"
@@ -279,16 +282,25 @@
         // NetworkContext::CookieManager outlives the URLLoaders associated with
         // the NetworkContext.
         base::BindRepeating(
-            [](NetworkContext* context) {
+            [](NetworkContext* context,
+               net::CookieSettingOverrides cookie_setting_overrides,
+               net::IsolationInfo isolation_info) {
               // Trust tokens will be blocked if the user has either disabled
-              // the Trust Token Privacy Sandbox setting, or if the user has
-              // disabled third party cookies.
-              return !(context->cookie_manager()
-                           ->cookie_settings()
-                           .are_third_party_cookies_blocked() ||
-                       context->are_trust_tokens_blocked());
+              // the anti-abuse content setting or blocked the top level site
+              // from storing data (i.e. the cookie content setting for that
+              // site is blocked).
+              GURL top_frame_origin = isolation_info.top_frame_origin()
+                                          .value_or(url::Origin())
+                                          .GetURL();
+              ContentSetting cookie_setting =
+                  context->cookie_manager()->cookie_settings().GetCookieSetting(
+                      top_frame_origin, top_frame_origin,
+                      cookie_setting_overrides, nullptr);
+              return !(context->are_trust_tokens_blocked() ||
+                       cookie_setting == CONTENT_SETTING_BLOCK);
             },
-            base::Unretained(context_)));
+            base::Unretained(context_), params_->cookie_setting_overrides,
+            params_->isolation_info));
   }
 
   mojo::PendingRemote<mojom::CookieAccessObserver> cookie_observer;
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
index 77999d47..4bdb828 100644
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -130,6 +130,15 @@
   if (use_blink && !use_system_freetype) {
     defines += [ "SK_FREETYPE_MINIMUM_RUNTIME_VERSION=(((FREETYPE_MAJOR) * 0x01000000) | ((FREETYPE_MINOR) * 0x00010000) | ((FREETYPE_PATCH) * 0x00000100))" ]
   }
+  if (use_blink) {
+    defines += [ "SK_TYPEFACE_FACTORY_FREETYPE" ]
+  }
+  if (is_win) {
+    defines += [ "SK_TYPEFACE_FACTORY_DIRECTWRITE" ]
+  }
+  if (is_apple) {
+    defines += [ "SK_TYPEFACE_FACTORY_CORETEXT" ]
+  }
 
   if (current_cpu == "arm") {
     if (arm_use_neon) {
@@ -371,6 +380,7 @@
   # FreeType is needed everywhere where blink is used, on Linux and Android as main
   # font backend, on Windows and Mac as fallback backend for Variations.
   if (use_blink) {
+    # See SK_TYPEFACE_FACTORY_FREETYPE
     sources += [
       "//third_party/skia/src/ports/SkFontHost_FreeType.cpp",
       "//third_party/skia/src/ports/SkFontHost_FreeType_common.cpp",
@@ -378,6 +388,7 @@
   }
 
   if (is_win) {
+    # See SK_TYPEFACE_FACTORY_DIRECTWRITE
     sources += [
       "//third_party/skia/src/ports/SkFontHost_win.cpp",
       "//third_party/skia/src/ports/SkFontMgr_win_dw.cpp",
@@ -391,6 +402,7 @@
   }
 
   if (is_apple) {
+    # See SK_TYPEFACE_FACTORY_CORETEXT
     sources += [
       "//third_party/skia/include/ports/SkFontMgr_mac_ct.h",
       "//third_party/skia/src/ports/SkFontMgr_mac_ct.cpp",
diff --git a/third_party/androidx/README.chromium b/third_party/androidx/README.chromium
index 8216f91..8c6f833 100644
--- a/third_party/androidx/README.chromium
+++ b/third_party/androidx/README.chromium
@@ -1,5 +1,6 @@
 Name: Androidx Repository
 Short Name: androidx
+URL: https://androidx.dev
 Version: 1
 License: Refer to additional_readme_paths.json
 License Android Compatible: yes
diff --git a/third_party/blink/common/BUILD.gn b/third_party/blink/common/BUILD.gn
index 54f1789..f64c8a0 100644
--- a/third_party/blink/common/BUILD.gn
+++ b/third_party/blink/common/BUILD.gn
@@ -486,22 +486,24 @@
 }
 
 if (use_libfuzzer) {
-  proto_library("storage_key_fuzzer_proto") {
-    testonly = true
-    proto_in_dir = "//"
-    sources = [ "storage_key/storage_key_fuzzer.proto" ]
-    proto_deps = [ "//third_party/blink/public/common:storage_key_proto" ]
-  }
-
-  fuzzer_test("storage_key_fuzzer") {
-    sources = [ "storage_key/storage_key_fuzzer.cc" ]
+  fuzzer_test("storage_key_proto_fuzzer") {
+    sources = [ "storage_key/storage_key_proto_fuzzer.cc" ]
     deps = [
       ":common",
-      ":storage_key_fuzzer_proto",
       "//base/test:test_support",
+      "//third_party/blink/public/common:storage_key_proto",
       "//third_party/blink/public/common:storage_key_proto_converter",
       "//third_party/libprotobuf-mutator",
     ]
+  }
+
+  fuzzer_test("storage_key_string_fuzzer") {
+    sources = [ "storage_key/storage_key_string_fuzzer.cc" ]
+    deps = [
+      ":common",
+      "//base/test:test_support",
+      "//third_party/blink/public/common",
+    ]
     seed_corpus = "//third_party/blink/common/storage_key/storage_key_corpus"
   }
 
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index 8a204c7..e062137 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -1759,5 +1759,9 @@
              "WebRtcStatsReportIdl",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+BASE_FEATURE(kQuoteEmptySecChUaStringHeadersConsistently,
+             "QuoteEmptySecChUaStringHeadersConsistently",
+             base::FEATURE_ENABLED_BY_DEFAULT);
+
 }  // namespace features
 }  // namespace blink
diff --git a/third_party/blink/common/storage_key/storage_key_corpus/14 b/third_party/blink/common/storage_key/storage_key_corpus/14
new file mode 100644
index 0000000..4faa6b70
--- /dev/null
+++ b/third_party/blink/common/storage_key/storage_key_corpus/14
@@ -0,0 +1 @@
+http://[0:1:0:1::]/^31
diff --git a/third_party/blink/common/storage_key/storage_key_fuzzer.proto b/third_party/blink/common/storage_key/storage_key_fuzzer.proto
deleted file mode 100644
index fca94120..0000000
--- a/third_party/blink/common/storage_key/storage_key_fuzzer.proto
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-syntax = "proto2";
-
-package storage_key_proto;
-
-import "third_party/blink/public/common/storage_key/proto/storage_key.proto";
-
-message StorageKeyFuzzer {
-  // This storage key will be serialized and deserialized
-  required StorageKey storage_key = 1;
-
-  // To be fed into Deserialize
-  required string deserialize = 2;
-
-  // TODO(crbug.com/1259682): Make grammar/message for
-  // DeserializeForServiceWorker
-}
\ No newline at end of file
diff --git a/third_party/blink/common/storage_key/storage_key_fuzzer.cc b/third_party/blink/common/storage_key/storage_key_proto_fuzzer.cc
similarity index 60%
rename from third_party/blink/common/storage_key/storage_key_fuzzer.cc
rename to third_party/blink/common/storage_key/storage_key_proto_fuzzer.cc
index c2327b48..539626b 100644
--- a/third_party/blink/common/storage_key/storage_key_fuzzer.cc
+++ b/third_party/blink/common/storage_key/storage_key_proto_fuzzer.cc
@@ -1,4 +1,4 @@
-// Copyright 2021 The Chromium Authors
+// Copyright 2023 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -8,7 +8,7 @@
 #include "base/i18n/icu_util.h"
 #include "base/test/scoped_feature_list.h"
 #include "net/base/features.h"
-#include "third_party/blink/common/storage_key/storage_key_fuzzer.pb.h"
+#include "third_party/blink/public/common/storage_key/proto/storage_key.pb.h"
 #include "third_party/blink/public/common/storage_key/storage_key.h"
 #include "third_party/blink/public/common/storage_key/storage_key_proto_converter.h"
 
@@ -20,14 +20,13 @@
 
 IcuEnvironment* env = new IcuEnvironment();
 
-DEFINE_PROTO_FUZZER(
-    const storage_key_proto::StorageKeyFuzzer& storage_key_fuzzer) {
+DEFINE_PROTO_FUZZER(const storage_key_proto::StorageKey& storage_key_proto) {
   for (const bool toggle : {false, true}) {
     base::test::ScopedFeatureList scope_feature_list;
     scope_feature_list.InitWithFeatureState(
         net::features::kThirdPartyStoragePartitioning, toggle);
 
-    blink::StorageKey storage_key = Convert(storage_key_fuzzer.storage_key());
+    blink::StorageKey storage_key = Convert(storage_key_proto);
 
     // General serialization test.
     absl::optional<blink::StorageKey> maybe_storage_key =
@@ -38,21 +37,5 @@
     maybe_storage_key = blink::StorageKey::DeserializeForLocalStorage(
         storage_key.SerializeForLocalStorage());
     assert(storage_key == maybe_storage_key.value());
-
-    // General deserialization test.
-    maybe_storage_key =
-        blink::StorageKey::Deserialize(storage_key_fuzzer.deserialize());
-    if (maybe_storage_key) {
-      assert(maybe_storage_key->Serialize() ==
-             storage_key_fuzzer.deserialize());
-    }
-
-    // LocalStorage deserialization test.
-    maybe_storage_key = blink::StorageKey::DeserializeForLocalStorage(
-        storage_key_fuzzer.deserialize());
-    if (maybe_storage_key) {
-      assert(maybe_storage_key->SerializeForLocalStorage() ==
-             storage_key_fuzzer.deserialize());
-    }
   }
 }
diff --git a/third_party/blink/common/storage_key/storage_key_string_fuzzer.cc b/third_party/blink/common/storage_key/storage_key_string_fuzzer.cc
new file mode 100644
index 0000000..9df0f140
--- /dev/null
+++ b/third_party/blink/common/storage_key/storage_key_string_fuzzer.cc
@@ -0,0 +1,49 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/at_exit.h"
+#include "base/i18n/icu_util.h"
+#include "base/test/scoped_feature_list.h"
+#include "net/base/features.h"
+#include "third_party/blink/public/common/storage_key/storage_key.h"
+
+struct IcuEnvironment {
+  IcuEnvironment() { CHECK(base::i18n::InitializeICU()); }
+  // used by ICU integration.
+  base::AtExitManager at_exit_manager;
+};
+
+IcuEnvironment* env = new IcuEnvironment();
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+  std::string serialized_storage_key(reinterpret_cast<const char*>(data), size);
+  for (const bool toggle : {false, true}) {
+    base::test::ScopedFeatureList scope_feature_list;
+    scope_feature_list.InitWithFeatureState(
+        net::features::kThirdPartyStoragePartitioning, toggle);
+
+    // General deserialization test.
+    absl::optional<blink::StorageKey> maybe_storage_key =
+        blink::StorageKey::Deserialize(serialized_storage_key);
+    if (maybe_storage_key) {
+      // We need to force enable third-party partitioning before serializing
+      // to ensure no information is lost due to partitioning being disabled.
+      assert(
+          maybe_storage_key->CopyWithForceEnabledThirdPartyStoragePartitioning()
+              .Serialize() == serialized_storage_key);
+    }
+
+    // LocalStorage deserialization test.
+    maybe_storage_key =
+        blink::StorageKey::DeserializeForLocalStorage(serialized_storage_key);
+    if (maybe_storage_key) {
+      // We need to force enable third-party partitioning before serializing
+      // to ensure no information is lost due to partitioning being disabled.
+      assert(
+          maybe_storage_key->CopyWithForceEnabledThirdPartyStoragePartitioning()
+              .SerializeForLocalStorage() == serialized_storage_key);
+    }
+  }
+  return 0;
+}
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
index 9923448c..28c8beda 100644
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -992,6 +992,12 @@
 BLINK_COMMON_EXPORT extern const base::FeatureParam<int>
     kMaxFCPDelayMsForRenderBlockingFonts;
 
+// Whether Sec-CH-UA headers on subresource fetches that contain an empty
+// string should be quoted (`""`) as they are for navigation fetches. See
+// https://crbug.com/1416925.
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
+    kQuoteEmptySecChUaStringHeadersConsistently);
+
 }  // namespace features
 }  // namespace blink
 
diff --git a/third_party/blink/public/mojom/navigation/navigation_params.mojom b/third_party/blink/public/mojom/navigation/navigation_params.mojom
index 48cee03..f8cf8ce 100644
--- a/third_party/blink/public/mojom/navigation/navigation_params.mojom
+++ b/third_party/blink/public/mojom/navigation/navigation_params.mojom
@@ -262,6 +262,12 @@
   // Indicates the request destination.
   network.mojom.RequestDestination request_destination =
       network.mojom.RequestDestination.kEmpty;
+
+  // Indicates whether the target document of this navigation should load with
+  // the `has_storage_access` bit set. When this is sent from the renderer to
+  // the browser, it is a suggestion that the browser will validate - and
+  // possibly override, during the navigation for the next document.
+  bool has_storage_access = false;
 };
 
 // Provided by the browser -----------------------------------------------------
diff --git a/third_party/blink/public/mojom/use_counter/metrics/css_property_id.mojom b/third_party/blink/public/mojom/use_counter/metrics/css_property_id.mojom
index b501358..208a6691 100644
--- a/third_party/blink/public/mojom/use_counter/metrics/css_property_id.mojom
+++ b/third_party/blink/public/mojom/use_counter/metrics/css_property_id.mojom
@@ -796,6 +796,7 @@
     kAnimationComposition = 743,
     kTopLayer = 744,
     kAnchorDefault = 745,
+    kTextWrap = 746,
     // 1. Add new features above this line (don't change the assigned numbers of
     //    the existing items).
     // 2. Run the src/tools/metrics/histograms/update_use_counter_css.py script
diff --git a/third_party/blink/public/web/web_navigation_params.h b/third_party/blink/public/web/web_navigation_params.h
index a2ea0d4..4dfaca0 100644
--- a/third_party/blink/public/web/web_navigation_params.h
+++ b/third_party/blink/public/web/web_navigation_params.h
@@ -188,6 +188,9 @@
   // alive until we create the NavigationRequest.
   CrossVariantMojoRemote<mojom::PolicyContainerHostKeepAliveHandleInterfaceBase>
       initiator_policy_container_keep_alive_handle;
+
+  // The initiator frame's LocalDOMWindow's has_storage_access state.
+  bool has_storage_access = false;
 };
 
 // This structure holds all information provided by the embedder that is
@@ -528,6 +531,9 @@
   // <enum_representing_runtime_enabled_feature, enabled/disabled>
   base::flat_map<::blink::mojom::RuntimeFeatureState, bool>
       modified_runtime_features;
+
+  // Whether the document should be loaded with the has_storage_access bit set.
+  bool has_storage_access = false;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
index f2fe483d..9639b675 100644
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -5894,6 +5894,18 @@
       valid_for_marker: true,
     },
     {
+      name: "text-wrap",
+      property_methods: ["CSSValueFromComputedStyleInternal"],
+      inherited: true,
+      field_template: "keyword",
+      keywords: ["wrap", "balance"],
+      default_value: "wrap",
+      typedom_types: ["Keyword"],
+      valid_for_cue: true,
+      valid_for_marker: true,
+      runtime_flag: "CSSTextWrap",
+    },
+    {
       name: "widows",
       property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
       interpolable: true,
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc
index 5700b2e6..3c9b410 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc
+++ b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc
@@ -1331,6 +1331,9 @@
     case CSSPropertyID::kWebkitTextSecurity:
       return value_id == CSSValueID::kDisc || value_id == CSSValueID::kCircle ||
              value_id == CSSValueID::kSquare || value_id == CSSValueID::kNone;
+    case CSSPropertyID::kTextWrap:
+      DCHECK(RuntimeEnabledFeatures::CSSTextWrapEnabled());
+      return value_id == CSSValueID::kWrap || value_id == CSSValueID::kBalance;
     case CSSPropertyID::kTransformBox:
       return value_id == CSSValueID::kFillBox ||
              value_id == CSSValueID::kViewBox;
@@ -1496,6 +1499,7 @@
     CSSPropertyID::kWebkitRubyPosition,
     CSSPropertyID::kWebkitTextCombine,
     CSSPropertyID::kWebkitTextSecurity,
+    CSSPropertyID::kTextWrap,
     CSSPropertyID::kTransformBox,
     CSSPropertyID::kTransformStyle,
     CSSPropertyID::kWebkitUserDrag,
diff --git a/third_party/blink/renderer/core/css/parser/css_selector_parser.cc b/third_party/blink/renderer/core/css/parser/css_selector_parser.cc
index eb24d289..9ee0e20 100644
--- a/third_party/blink/renderer/core/css/parser/css_selector_parser.cc
+++ b/third_party/blink/renderer/core/css/parser/css_selector_parser.cc
@@ -131,25 +131,23 @@
 }
 
 // static
-CSSSelectorList* CSSSelectorParser::ParseScopeBoundary(
+absl::optional<base::span<CSSSelector>> CSSSelectorParser::ParseScopeBoundary(
     CSSParserTokenRange range,
     const CSSParserContext* context,
-    StyleSheetContents* style_sheet) {
-  HeapVector<CSSSelector> arena;
+    StyleSheetContents* style_sheet,
+    HeapVector<CSSSelector>& arena) {
   CSSSelectorParser parser(context, /*parent_rule_for_nesting=*/nullptr,
                            style_sheet, arena);
   DisallowPseudoElementsScope disallow_pseudo_elements(&parser);
 
   range.ConsumeWhitespace();
-  CSSSelectorList* result = parser.ConsumeForgivingComplexSelectorList(range);
-  DCHECK(result);
+  absl::optional<base::span<CSSSelector>> result =
+      parser.ConsumeForgivingComplexSelectorList(range);
+  DCHECK(result.has_value());
   if (!range.AtEnd()) {
-    return nullptr;
+    return absl::nullopt;
   }
-  for (const CSSSelector* current = result->First(); current;
-       current = current->TagHistory()) {
-    RecordUsageAndDeprecationsOneSelector(current, context);
-  }
+  parser.RecordUsageAndDeprecations(result.value());
   return result;
 }
 
@@ -379,24 +377,31 @@
   if (inside_compound_pseudo_) {
     return ConsumeForgivingCompoundSelectorList(range);
   }
-  return ConsumeForgivingComplexSelectorList(range);
+  ResetVectorAfterScope reset_vector(output_);
+  absl::optional<base::span<CSSSelector>> forgiving_list =
+      ConsumeForgivingComplexSelectorList(range);
+  if (!forgiving_list.has_value()) {
+    return nullptr;
+  }
+  return CSSSelectorList::AdoptSelectorVector(forgiving_list.value());
 }
 
-CSSSelectorList* CSSSelectorParser::ConsumeForgivingComplexSelectorList(
+absl::optional<base::span<CSSSelector>>
+CSSSelectorParser::ConsumeForgivingComplexSelectorList(
     CSSParserTokenRange& range) {
-  ResetVectorAfterScope reset_vector(output_);
-
   if (RuntimeEnabledFeatures::CSSAtSupportsAlwaysNonForgivingParsingEnabled() &&
       in_supports_parsing_) {
     base::span<CSSSelector> selectors =
         ConsumeComplexSelectorList(range, /*in_nested_style_rule=*/false);
     if (selectors.empty()) {
-      return nullptr;
+      return absl::nullopt;
     } else {
-      return CSSSelectorList::AdoptSelectorVector(selectors);
+      return selectors;
     }
   }
 
+  ResetVectorAfterScope reset_vector(output_);
+
   CSSAtSupportsDropInvalidWhileForgivingParsingCounter
       at_supports_drop_invalid_counter(context_);
   ForgivingParsingContainsMixOfValidAndInvalidCounter valid_and_invalid_counter(
@@ -434,10 +439,10 @@
     if (in_supports_parsing_) {
       at_supports_drop_invalid_counter.Count();
     }
-    return CSSSelectorList::Empty();
+    return base::span<CSSSelector>();
   }
 
-  return CSSSelectorList::AdoptSelectorVector(reset_vector.AddedElements());
+  return reset_vector.CommitAddedElements();
 }
 
 // If the argument was unparsable but contained a & token,
diff --git a/third_party/blink/renderer/core/css/parser/css_selector_parser.h b/third_party/blink/renderer/core/css/parser/css_selector_parser.h
index 83c111bb..86fd03c 100644
--- a/third_party/blink/renderer/core/css/parser/css_selector_parser.h
+++ b/third_party/blink/renderer/core/css/parser/css_selector_parser.h
@@ -86,14 +86,14 @@
   // https://drafts.csswg.org/css-cascade-6/#typedef-scope-start
   // https://drafts.csswg.org/css-cascade-6/#typedef-scope-end
   //
-  // Note that <scope-start> / <scope-end> are *forgiving* selector lists.
-  // Therefore empty lists, represented by !CSSSelectorList::IsValid(), are
-  // allowed.
-  //
-  // Parse errors are signalled by returning nullptr.
-  static CSSSelectorList* ParseScopeBoundary(CSSParserTokenRange,
-                                             const CSSParserContext*,
-                                             StyleSheetContents*);
+  // Parse errors are signalled by returning absl::nullopt. Empty spans are
+  // normal and expected, since <scope-start> / <scope-end> are forgiving
+  // selector lists.
+  static absl::optional<base::span<CSSSelector>> ParseScopeBoundary(
+      CSSParserTokenRange,
+      const CSSParserContext*,
+      StyleSheetContents*,
+      HeapVector<CSSSelector>&);
 
  private:
   CSSSelectorParser(const CSSParserContext*,
@@ -124,7 +124,8 @@
   CSSSelectorList* ConsumeNestedSelectorList(CSSParserTokenRange&);
   CSSSelectorList* ConsumeForgivingNestedSelectorList(CSSParserTokenRange&);
   // https://drafts.csswg.org/selectors/#typedef-forgiving-selector-list
-  CSSSelectorList* ConsumeForgivingComplexSelectorList(CSSParserTokenRange&);
+  absl::optional<base::span<CSSSelector>> ConsumeForgivingComplexSelectorList(
+      CSSParserTokenRange&);
   CSSSelectorList* ConsumeForgivingCompoundSelectorList(CSSParserTokenRange&);
   // https://drafts.csswg.org/selectors/#typedef-relative-selector-list
   CSSSelectorList* ConsumeForgivingRelativeSelectorList(CSSParserTokenRange&);
diff --git a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
index ddea7ef..bfa046c 100644
--- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
+++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
@@ -9672,6 +9672,13 @@
   return CSSIdentifierValue::Create(style.WhiteSpace());
 }
 
+const CSSValue* TextWrap::CSSValueFromComputedStyleInternal(
+    const ComputedStyle& style,
+    const LayoutObject*,
+    bool allow_visited_style) const {
+  return CSSIdentifierValue::Create(style.TextWrap());
+}
+
 const CSSValue* Widows::ParseSingleValue(CSSParserTokenRange& range,
                                          const CSSParserContext& context,
                                          const CSSParserLocalContext&) const {
diff --git a/third_party/blink/renderer/core/css/style_scope.cc b/third_party/blink/renderer/core/css/style_scope.cc
index 1f7cdde..18bd8dc1 100644
--- a/third_party/blink/renderer/core/css/style_scope.cc
+++ b/third_party/blink/renderer/core/css/style_scope.cc
@@ -44,8 +44,10 @@
 StyleScope* StyleScope::Parse(CSSParserTokenRange prelude,
                               const CSSParserContext* context,
                               StyleSheetContents* style_sheet) {
-  CSSSelectorList* from = nullptr;
-  CSSSelectorList* to = nullptr;
+  HeapVector<CSSSelector> arena;
+
+  absl::optional<base::span<CSSSelector>> from;
+  absl::optional<base::span<CSSSelector>> to;
 
   prelude.ConsumeWhitespace();
 
@@ -61,8 +63,9 @@
   // <scope-start>
   {
     auto block = prelude.ConsumeBlock();
-    from = CSSSelectorParser::ParseScopeBoundary(block, context, style_sheet);
-    if (!from) {
+    from = CSSSelectorParser::ParseScopeBoundary(block, context, style_sheet,
+                                                 arena);
+    if (!from.has_value()) {
       return nullptr;
     }
   }
@@ -76,8 +79,9 @@
     }
 
     auto block = prelude.ConsumeBlock();
-    to = CSSSelectorParser::ParseScopeBoundary(block, context, style_sheet);
-    if (!to) {
+    to = CSSSelectorParser::ParseScopeBoundary(block, context, style_sheet,
+                                               arena);
+    if (!to.has_value()) {
       return nullptr;
     }
   }
@@ -88,7 +92,14 @@
     return nullptr;
   }
 
-  return MakeGarbageCollected<StyleScope>(from, to);
+  CSSSelectorList* from_list =
+      from.has_value() ? CSSSelectorList::AdoptSelectorVector(from.value())
+                       : nullptr;
+  CSSSelectorList* to_list =
+      to.has_value() ? CSSSelectorList::AdoptSelectorVector(to.value())
+                     : nullptr;
+
+  return MakeGarbageCollected<StyleScope>(from_list, to_list);
 }
 
 void StyleScope::Trace(blink::Visitor* visitor) const {
diff --git a/third_party/blink/renderer/core/dom/container_node.cc b/third_party/blink/renderer/core/dom/container_node.cc
index 8b1561580..7f62c3a 100644
--- a/third_party/blink/renderer/core/dom/container_node.cc
+++ b/third_party/blink/renderer/core/dom/container_node.cc
@@ -400,9 +400,10 @@
   // 2. Let reference child be child.
   // 3. If reference child is node, set it to node’s next sibling.
   if (ref_child == new_child) {
-    ref_child = new_child->nextSibling();
-    if (!ref_child)
+    if (!new_child->HasNextSibling()) {
       return AppendChild(new_child, exception_state);
+    }
+    ref_child = new_child->nextSibling();
   }
 
   // 4. Adopt node into parent’s node document.
@@ -441,8 +442,8 @@
   // Use insertBefore if you need to handle reparenting (and want DOM mutation
   // events).
   DCHECK(!new_child.parentNode());
-  DCHECK(!new_child.nextSibling());
-  DCHECK(!new_child.previousSibling());
+  DCHECK(!new_child.HasNextSibling());
+  DCHECK(!new_child.HasPreviousSibling());
   DCHECK(!new_child.IsShadowRoot());
 
   Node* prev = next_child.previousSibling();
diff --git a/third_party/blink/renderer/core/dom/container_node.h b/third_party/blink/renderer/core/dom/container_node.h
index e568cf5..544da550 100644
--- a/third_party/blink/renderer/core/dom/container_node.h
+++ b/third_party/blink/renderer/core/dom/container_node.h
@@ -97,7 +97,7 @@
   bool HasChildren() const { return first_child_; }
 
   bool HasOneChild() const {
-    return first_child_ && !first_child_->nextSibling();
+    return first_child_ && !first_child_->HasNextSibling();
   }
   bool HasOneTextChild() const {
     return HasOneChild() && first_child_->IsTextNode();
@@ -525,21 +525,21 @@
 }
 
 inline unsigned Node::CountChildren() const {
-  auto* this_node = DynamicTo<ContainerNode>(this);
+  auto* this_node = DynamicTo<ContainerNode>(*this);
   if (!this_node)
     return 0;
   return this_node->CountChildren();
 }
 
 inline Node* Node::firstChild() const {
-  auto* this_node = DynamicTo<ContainerNode>(this);
+  auto* this_node = DynamicTo<ContainerNode>(*this);
   if (!this_node)
     return nullptr;
   return this_node->firstChild();
 }
 
 inline Node* Node::lastChild() const {
-  auto* this_node = DynamicTo<ContainerNode>(this);
+  auto* this_node = DynamicTo<ContainerNode>(*this);
   if (!this_node)
     return nullptr;
   return this_node->lastChild();
diff --git a/third_party/blink/renderer/core/dom/css_toggle_inference.cc b/third_party/blink/renderer/core/dom/css_toggle_inference.cc
index 85f2bc43..82cc8641 100644
--- a/third_party/blink/renderer/core/dom/css_toggle_inference.cc
+++ b/third_party/blink/renderer/core/dom/css_toggle_inference.cc
@@ -534,7 +534,8 @@
           element_roles_.insert(toggle_root, CSSToggleRole::kCheckbox);
           // TODO(dbaron): We should only set parent_role here when
           // there are multiple checkbox siblings with few non-checkbox
-          // siblings!
+          // siblings!  (Once we do this we can probably remove the
+          // tabs_ish_elements.Contains(parent) test below.)
           parent_role = CSSToggleRole::kCheckboxGroup;
         }
 
@@ -543,7 +544,8 @@
         // order to ensure that hash map processing order doesn't affect
         // the result).
         if (parent_role != CSSToggleRole::kNone && parent &&
-            !accordion_ish_elements.Contains(parent)) {
+            !accordion_ish_elements.Contains(parent) &&
+            !tabs_ish_elements.Contains(parent)) {
           auto parent_add_result = element_roles_.insert(parent, parent_role);
           // prefer checkbox group to radio group if some children
           // lead to either
diff --git a/third_party/blink/renderer/core/dom/node.cc b/third_party/blink/renderer/core/dom/node.cc
index e4a87eb..6074b36c 100644
--- a/third_party/blink/renderer/core/dom/node.cc
+++ b/third_party/blink/renderer/core/dom/node.cc
@@ -374,8 +374,9 @@
 
 Node* Node::PseudoAwarePreviousSibling() const {
   Element* parent = parentElement();
-  if (!parent || previousSibling())
+  if (!parent || HasPreviousSibling()) {
     return previousSibling();
+  }
   switch (GetPseudoId()) {
     case kPseudoIdAfter:
       if (Node* previous = parent->lastChild())
@@ -399,8 +400,9 @@
 
 Node* Node::PseudoAwareNextSibling() const {
   Element* parent = parentElement();
-  if (!parent || nextSibling())
+  if (!parent || HasNextSibling()) {
     return nextSibling();
+  }
   switch (GetPseudoId()) {
     case kPseudoIdMarker:
       if (Node* next = parent->GetPseudoElement(kPseudoIdBefore))
diff --git a/third_party/blink/renderer/core/dom/node.h b/third_party/blink/renderer/core/dom/node.h
index 62f927a7..286a991 100644
--- a/third_party/blink/renderer/core/dom/node.h
+++ b/third_party/blink/renderer/core/dom/node.h
@@ -222,7 +222,9 @@
   ContainerNode* ParentElementOrShadowRoot() const;
   ContainerNode* ParentElementOrDocumentFragment() const;
   Node* previousSibling() const { return previous_; }
+  bool HasPreviousSibling() const { return previous_; }
   Node* nextSibling() const { return next_; }
+  bool HasNextSibling() const { return next_; }
   NodeList* childNodes();
   Node* firstChild() const;
   Node* lastChild() const;
diff --git a/third_party/blink/renderer/core/dom/node_traversal.cc b/third_party/blink/renderer/core/dom/node_traversal.cc
index 90ca86e0..ffd5b4c 100644
--- a/third_party/blink/renderer/core/dom/node_traversal.cc
+++ b/third_party/blink/renderer/core/dom/node_traversal.cc
@@ -69,23 +69,25 @@
 }
 
 Node* NodeTraversal::NextAncestorSibling(const Node& current) {
-  DCHECK(!current.nextSibling());
+  DCHECK(!current.HasNextSibling());
   for (Node& parent : AncestorsOf(current)) {
-    if (parent.nextSibling())
+    if (parent.HasNextSibling()) {
       return parent.nextSibling();
+    }
   }
   return nullptr;
 }
 
 Node* NodeTraversal::NextAncestorSibling(const Node& current,
                                          const Node* stay_within) {
-  DCHECK(!current.nextSibling());
+  DCHECK(!current.HasNextSibling());
   DCHECK_NE(current, stay_within);
   for (Node& parent : AncestorsOf(current)) {
     if (parent == stay_within)
       return nullptr;
-    if (parent.nextSibling())
+    if (parent.HasNextSibling()) {
       return parent.nextSibling();
+    }
   }
   return nullptr;
 }
@@ -107,7 +109,7 @@
 Node* NodeTraversal::Previous(const Node& current, const Node* stay_within) {
   if (current == stay_within)
     return nullptr;
-  if (current.previousSibling()) {
+  if (current.HasPreviousSibling()) {
     Node* previous = current.previousSibling();
     while (Node* child = previous->lastChild())
       previous = child;
@@ -133,8 +135,9 @@
   for (Node& node : InclusiveAncestorsOf(current)) {
     if (node == stay_within)
       return nullptr;
-    if (Node* prev = node.previousSibling())
-      return prev;
+    if (node.HasPreviousSibling()) {
+      return node.previousSibling();
+    }
   }
   return nullptr;
 }
@@ -143,8 +146,9 @@
                                    const Node* stay_within) {
   if (current == stay_within)
     return nullptr;
-  if (!current.nextSibling())
+  if (!current.HasNextSibling()) {
     return current.parentNode();
+  }
   Node* next = current.nextSibling();
   while (Node* child = next->firstChild())
     next = child;
@@ -153,12 +157,13 @@
 
 Node* NodeTraversal::PreviousAncestorSiblingPostOrder(const Node& current,
                                                       const Node* stay_within) {
-  DCHECK(!current.previousSibling());
+  DCHECK(!current.HasPreviousSibling());
   for (Node& parent : NodeTraversal::AncestorsOf(current)) {
     if (parent == stay_within)
       return nullptr;
-    if (parent.previousSibling())
+    if (parent.HasPreviousSibling()) {
       return parent.previousSibling();
+    }
   }
   return nullptr;
 }
@@ -169,8 +174,9 @@
     return last_child;
   if (current == stay_within)
     return nullptr;
-  if (current.previousSibling())
+  if (current.HasPreviousSibling()) {
     return current.previousSibling();
+  }
   return PreviousAncestorSiblingPostOrder(current, stay_within);
 }
 
diff --git a/third_party/blink/renderer/core/dom/node_traversal.h b/third_party/blink/renderer/core/dom/node_traversal.h
index 94a9b44..159f24f 100644
--- a/third_party/blink/renderer/core/dom/node_traversal.h
+++ b/third_party/blink/renderer/core/dom/node_traversal.h
@@ -194,8 +194,9 @@
 inline Node* NodeTraversal::TraverseNextTemplate(NodeType& current) {
   if (current.hasChildren())
     return current.firstChild();
-  if (current.nextSibling())
+  if (current.HasNextSibling()) {
     return current.nextSibling();
+  }
   return NextAncestorSibling(current);
 }
 
@@ -206,14 +207,16 @@
     return current.firstChild();
   if (current == stay_within)
     return nullptr;
-  if (current.nextSibling())
+  if (current.HasNextSibling()) {
     return current.nextSibling();
+  }
   return NextAncestorSibling(current, stay_within);
 }
 
 inline Node* NodeTraversal::NextSkippingChildren(const Node& current) {
-  if (current.nextSibling())
+  if (current.HasNextSibling()) {
     return current.nextSibling();
+  }
   return NextAncestorSibling(current);
 }
 
@@ -221,8 +224,9 @@
                                                  const Node* stay_within) {
   if (current == stay_within)
     return nullptr;
-  if (current.nextSibling())
+  if (current.HasNextSibling()) {
     return current.nextSibling();
+  }
   return NextAncestorSibling(current, stay_within);
 }
 
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
index 7726bcd..c4a59332 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
@@ -577,6 +577,19 @@
 
   navigation_info->impression = impression;
 
+  // Propagate `has_storage_access` to the next document under certain
+  // circumstances. This corresponds to the "snapshotting source snapshot
+  // params" change and some of the "create navigation params by fetching"
+  // changes in the Storage Access API spec:
+  // https://privacycg.github.io/storage-access/#navigation
+  navigation_info->has_storage_access =
+      origin_window && origin_window->HasStorageAccess() &&
+      navigation_info->initiator_frame_token.has_value() &&
+      navigation_info->initiator_frame_token.value() ==
+          web_frame_->GetLocalFrameToken() &&
+      web_frame_->GetSecurityOrigin().IsSameOriginWith(
+          WebSecurityOrigin::Create(navigation_info->url_request.Url()));
+
   // Can be null.
   LocalFrame* local_parent_frame = GetLocalParentFrame(web_frame_);
 
diff --git a/third_party/blink/renderer/core/input/scroll_manager.cc b/third_party/blink/renderer/core/input/scroll_manager.cc
index c1f2ac4..ccb03ba 100644
--- a/third_party/blink/renderer/core/input/scroll_manager.cc
+++ b/third_party/blink/renderer/core/input/scroll_manager.cc
@@ -576,13 +576,10 @@
 
 WebInputEventResult ScrollManager::HandleGestureScrollUpdate(
     const WebGestureEvent& gesture_event) {
-  TRACE_EVENT1("input", "ScrollManager::handleGestureScrollUpdate",
-               "unexpected_unification",
-               base::FeatureList::IsEnabled(::features::kScrollUnification));
+  TRACE_EVENT0("input", "ScrollManager::handleGestureScrollUpdate");
   DCHECK_EQ(gesture_event.GetType(), WebInputEvent::Type::kGestureScrollUpdate);
 
-  // DCHECK temporarily disabled due to crash reports (crbug.com/1342287).
-  // DCHECK(!base::FeatureList::IsEnabled(::features::kScrollUnification));
+  DCHECK(!base::FeatureList::IsEnabled(::features::kScrollUnification));
   if (base::FeatureList::IsEnabled(::features::kScrollUnification)) {
     return WebInputEventResult::kNotHandled;
   }
@@ -747,12 +744,9 @@
 
 WebInputEventResult ScrollManager::HandleGestureScrollEnd(
     const WebGestureEvent& gesture_event) {
-  TRACE_EVENT1("input", "ScrollManager::handleGestureScrollEnd",
-               "unexpected_unification",
-               base::FeatureList::IsEnabled(::features::kScrollUnification));
+  TRACE_EVENT0("input", "ScrollManager::handleGestureScrollEnd");
 
-  // DCHECK temporarily disabled due to crash reports (crbug.com/1342287).
-  // DCHECK(!base::FeatureList::IsEnabled(::features::kScrollUnification));
+  DCHECK(!base::FeatureList::IsEnabled(::features::kScrollUnification));
   if (base::FeatureList::IsEnabled(::features::kScrollUnification)) {
     return WebInputEventResult::kNotHandled;
   }
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc
index bfcf67d..80ca9c1 100644
--- a/third_party/blink/renderer/core/loader/base_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc
@@ -41,12 +41,18 @@
 // https://www.rfc-editor.org/rfc/rfc8941.html.
 const AtomicString SerializeStringHeader(std::string str) {
   std::string output;
-  if (!str.empty()) {
-    output = net::structured_headers::SerializeItem(
-                 net::structured_headers::Item(str))
-                 .value_or(std::string());
+
+  // See https://crbug.com/1416925.
+  if (str.empty() &&
+      !base::FeatureList::IsEnabled(
+          blink::features::kQuoteEmptySecChUaStringHeadersConsistently)) {
+    return AtomicString(output.c_str());
   }
 
+  output =
+      net::structured_headers::SerializeItem(net::structured_headers::Item(str))
+          .value_or(std::string());
+
   return AtomicString(output.c_str());
 }
 
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
index 910147a1..0a05577 100644
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -313,6 +313,7 @@
   absl::optional<ViewTransitionState> view_transition_state;
   absl::optional<FencedFrame::RedactedFencedFrameProperties>
       fenced_frame_properties;
+  bool has_storage_access;
 };
 
 // Asserts size of DocumentLoader, so that whenever a new attribute is added to
@@ -511,7 +512,8 @@
       extra_data_(std::move(extra_data)),
       reduced_accept_language_(params_->reduced_accept_language),
       navigation_delivery_type_(params_->navigation_delivery_type),
-      view_transition_state_(std::move(params_->view_transition_state)) {
+      view_transition_state_(std::move(params_->view_transition_state)),
+      has_storage_access_(params_->has_storage_access) {
   DCHECK(frame_);
   DCHECK(params_);
 
@@ -648,6 +650,7 @@
   params->has_fenced_frame_reporting = has_fenced_frame_reporting_;
   params->reduced_accept_language = reduced_accept_language_;
   params->navigation_delivery_type = navigation_delivery_type_;
+  params->has_storage_access = has_storage_access_;
   return params;
 }
 
@@ -2299,6 +2302,10 @@
         origin_agent_cluster) {
       agent->ForceOriginKeyedBecauseOfInheritance();
     }
+
+    if (has_storage_access_) {
+      frame_->DomWindow()->SetHasStorageAccess();
+    }
   } else {
     if (frame_->GetSettings()->GetShouldReuseGlobalForUnownedMainFrame() &&
         frame_->IsMainFrame()) {
diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h
index 3a441fc..dc759a0 100644
--- a/third_party/blink/renderer/core/loader/document_loader.h
+++ b/third_party/blink/renderer/core/loader/document_loader.h
@@ -813,6 +813,10 @@
 
   absl::optional<FencedFrame::RedactedFencedFrameProperties>
       fenced_frame_properties_;
+
+  // Indicates whether the document should be loaded with its has_storage_access
+  // bit set.
+  const bool has_storage_access_;
 };
 
 DECLARE_WEAK_IDENTIFIER_MAP(DocumentLoader);
diff --git a/third_party/blink/renderer/core/loader/document_loader_test.cc b/third_party/blink/renderer/core/loader/document_loader_test.cc
index e73c6b8..f40425c6 100644
--- a/third_party/blink/renderer/core/loader/document_loader_test.cc
+++ b/third_party/blink/renderer/core/loader/document_loader_test.cc
@@ -563,6 +563,32 @@
                 SecurityOrigin::Create(same_origin_url)),
             local_frame->DomWindow()->GetStorageKey());
 
+  EXPECT_FALSE(local_frame->DomWindow()->HasStorageAccess());
+
+  EXPECT_TRUE(local_frame->Loader()
+                  .GetDocumentLoader()
+                  ->LastNavigationHadTrustedInitiator());
+}
+
+TEST_P(DocumentLoaderTest, SameOriginNavigation_WithStorageAccess) {
+  const KURL& requestor_url =
+      KURL(NullURL(), "https://www.example.com/foo.html");
+  WebViewImpl* web_view_impl =
+      web_view_helper_.InitializeAndLoad("https://example.com/foo.html");
+
+  const KURL& same_origin_url =
+      KURL(NullURL(), "https://www.example.com/bar.html");
+  std::unique_ptr<WebNavigationParams> params =
+      WebNavigationParams::CreateWithHTMLBufferForTesting(
+          SharedBuffer::Create(), same_origin_url);
+  params->requestor_origin = WebSecurityOrigin::Create(WebURL(requestor_url));
+  params->has_storage_access = true;
+  LocalFrame* local_frame =
+      To<LocalFrame>(web_view_impl->GetPage()->MainFrame());
+  local_frame->Loader().CommitNavigation(std::move(params), nullptr);
+
+  EXPECT_TRUE(local_frame->DomWindow()->HasStorageAccess());
+
   EXPECT_TRUE(local_frame->Loader()
                   .GetDocumentLoader()
                   ->LastNavigationHadTrustedInitiator());
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
index 91f1d525..6c94fcc 100644
--- a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
@@ -532,13 +532,22 @@
   }
 }
 
-class FrameFetchContextHintsTest : public FrameFetchContextTest {
+class FrameFetchContextHintsTest : public FrameFetchContextTest,
+                                   public testing::WithParamInterface<bool> {
  public:
   FrameFetchContextHintsTest() {
-    scoped_feature_list_.InitWithFeatures(
-        /*enabled_features=*/
-        {blink::features::kUserAgentClientHint},
-        /*disabled_features=*/{});
+    std::vector<base::test::FeatureRef> enabled_features = {
+        blink::features::kUserAgentClientHint,
+    };
+    std::vector<base::test::FeatureRef> disabled_features = {};
+    if (GetParam()) {
+      enabled_features.push_back(
+          blink::features::kQuoteEmptySecChUaStringHeadersConsistently);
+    } else {
+      disabled_features.push_back(
+          blink::features::kQuoteEmptySecChUaStringHeadersConsistently);
+    }
+    scoped_feature_list_.InitWithFeatures(enabled_features, disabled_features);
   }
 
   void SetUp() override {
@@ -568,8 +577,20 @@
     GetFetchContext()->AddClientHintsIfNecessary(resource_width,
                                                  resource_request);
 
-    EXPECT_EQ(is_present ? String(header_value) : String(),
-              resource_request.HttpHeaderField(header_name));
+    String expected = is_present ? String(header_value) : String();
+    EXPECT_EQ(expected, resource_request.HttpHeaderField(header_name));
+  }
+
+  // Returns the expected value for a header containing an empty string. This
+  // should be `""`, but if !kQuoteEmptySecChUaStringHeadersConsistently then
+  // it is instead an empty string.
+  const char* EmptyString() {
+    if (base::FeatureList::IsEnabled(
+            blink::features::kQuoteEmptySecChUaStringHeadersConsistently)) {
+      return "\"\"";
+    } else {
+      return "";
+    }
   }
 
   String GetHeaderValue(const char* input, const char* header_name) {
@@ -585,10 +606,13 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
+INSTANTIATE_TEST_SUITE_P(All,
+                         FrameFetchContextHintsTest,
+                         testing::ValuesIn({false, true}));
 // Verify that the client hints should be attached for subresources fetched
 // over secure transport. Tests when the persistent client hint feature is
 // enabled.
-TEST_F(FrameFetchContextHintsTest, MonitorDeviceMemorySecureTransport) {
+TEST_P(FrameFetchContextHintsTest, MonitorDeviceMemorySecureTransport) {
   ExpectHeader("https://www.example.com/1.gif", "Device-Memory", false, "");
   ClientHintsPreferences preferences;
   preferences.SetShouldSend(
@@ -614,7 +638,7 @@
 
 // Verify that client hints are not attached when the resources do not belong to
 // a secure context.
-TEST_F(FrameFetchContextHintsTest, MonitorDeviceMemoryHintsInsecureContext) {
+TEST_P(FrameFetchContextHintsTest, MonitorDeviceMemoryHintsInsecureContext) {
   // Verify that client hints are not attached when the resources do not belong
   // to a secure context and the persistent client hint features is enabled.
   ExpectHeader("http://www.example.com/1.gif", "Device-Memory", false, "");
@@ -638,7 +662,7 @@
 
 // Verify that client hints are attched when the resources belong to a local
 // context.
-TEST_F(FrameFetchContextHintsTest, MonitorDeviceMemoryHintsLocalContext) {
+TEST_P(FrameFetchContextHintsTest, MonitorDeviceMemoryHintsLocalContext) {
   RecreateFetchContext(KURL("http://localhost/"));
   document->GetSettings()->SetScriptEnabled(true);
   ExpectHeader("http://localhost/1.gif", "Device-Memory", false, "");
@@ -658,7 +682,7 @@
   ExpectHeader("http://localhost/1.gif", "Sec-CH-Viewport-Width", false, "");
 }
 
-TEST_F(FrameFetchContextHintsTest, MonitorDeviceMemoryHints) {
+TEST_P(FrameFetchContextHintsTest, MonitorDeviceMemoryHints) {
   ExpectHeader("https://www.example.com/1.gif", "Device-Memory", false, "");
   ClientHintsPreferences preferences;
   preferences.SetShouldSend(
@@ -690,7 +714,7 @@
                "");
 }
 
-TEST_F(FrameFetchContextHintsTest, MonitorDPRHints) {
+TEST_P(FrameFetchContextHintsTest, MonitorDPRHints) {
   ExpectHeader("https://www.example.com/1.gif", "DPR", false, "");
   ClientHintsPreferences preferences;
   preferences.SetShouldSend(
@@ -709,20 +733,20 @@
                "");
 }
 
-TEST_F(FrameFetchContextHintsTest, MonitorDPRHintsInsecureTransport) {
-    ExpectHeader("http://www.example.com/1.gif", "DPR", false, "");
-    ExpectHeader("http://www.example.com/1.gif", "Sec-CH-DPR", false, "");
-    document->GetFrame()->SetPageZoomFactor(2.5);
-    ExpectHeader("http://www.example.com/1.gif", "DPR", false, "  ");
-    ExpectHeader("http://www.example.com/1.gif", "Sec-CH-DPR", false, "  ");
-    ExpectHeader("http://www.example.com/1.gif", "Width", false, "");
-    ExpectHeader("http://www.example.com/1.gif", "Sec-CH-Width", false, "");
-    ExpectHeader("http://www.example.com/1.gif", "Viewport-Width", false, "");
-    ExpectHeader("http://www.example.com/1.gif", "Sec-CH-Viewport-Width", false,
-                 "");
+TEST_P(FrameFetchContextHintsTest, MonitorDPRHintsInsecureTransport) {
+  ExpectHeader("http://www.example.com/1.gif", "DPR", false, "");
+  ExpectHeader("http://www.example.com/1.gif", "Sec-CH-DPR", false, "");
+  document->GetFrame()->SetPageZoomFactor(2.5);
+  ExpectHeader("http://www.example.com/1.gif", "DPR", false, "  ");
+  ExpectHeader("http://www.example.com/1.gif", "Sec-CH-DPR", false, "  ");
+  ExpectHeader("http://www.example.com/1.gif", "Width", false, "");
+  ExpectHeader("http://www.example.com/1.gif", "Sec-CH-Width", false, "");
+  ExpectHeader("http://www.example.com/1.gif", "Viewport-Width", false, "");
+  ExpectHeader("http://www.example.com/1.gif", "Sec-CH-Viewport-Width", false,
+               "");
 }
 
-TEST_F(FrameFetchContextHintsTest, MonitorResourceWidthHints) {
+TEST_P(FrameFetchContextHintsTest, MonitorResourceWidthHints) {
   ExpectHeader("https://www.example.com/1.gif", "Width", false, "");
   ClientHintsPreferences preferences;
   preferences.SetShouldSend(
@@ -748,7 +772,7 @@
                666.6666);
 }
 
-TEST_F(FrameFetchContextHintsTest, MonitorViewportWidthHints) {
+TEST_P(FrameFetchContextHintsTest, MonitorViewportWidthHints) {
   ExpectHeader("https://www.example.com/1.gif", "Viewport-Width", false, "");
   ClientHintsPreferences preferences;
   preferences.SetShouldSend(
@@ -771,7 +795,7 @@
   ExpectHeader("https://www.example.com/1.gif", "Sec-CH-DPR", false, "");
 }
 
-TEST_F(FrameFetchContextHintsTest, MonitorUAHints) {
+TEST_P(FrameFetchContextHintsTest, MonitorUAHints) {
   // `Sec-CH-UA` is always sent for secure requests
   ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA", true, "");
   ExpectHeader("http://www.example.com/1.gif", "Sec-CH-UA", false, "");
@@ -791,7 +815,8 @@
     preferences.SetShouldSend(network::mojom::WebClientHintsType::kUAArch);
     document->GetFrame()->GetClientHintsPreferences().UpdateFrom(preferences);
 
-    ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Arch", true, "");
+    ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Arch", true,
+                 EmptyString());
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Platform-Version",
                  false, "");
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Model", false, "");
@@ -808,7 +833,7 @@
 
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Arch", false, "");
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Platform", true,
-                 "");
+                 EmptyString());
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Platform-Version",
                  false, "");
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Model", false, "");
@@ -827,7 +852,7 @@
 
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Arch", false, "");
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Platform-Version",
-                 true, "");
+                 true, EmptyString());
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Model", false, "");
 
     ExpectHeader("http://www.example.com/1.gif", "Sec-CH-UA-Arch", false, "");
@@ -844,7 +869,8 @@
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Arch", false, "");
     ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Platform-Version",
                  false, "");
-    ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Model", true, "");
+    ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Model", true,
+                 EmptyString());
 
     ExpectHeader("http://www.example.com/1.gif", "Sec-CH-UA-Arch", false, "");
     ExpectHeader("http://www.example.com/1.gif", "Sec-CH-UA-Platform-Version",
@@ -853,7 +879,7 @@
   }
 }
 
-TEST_F(FrameFetchContextHintsTest, MonitorPrefersColorSchemeHint) {
+TEST_P(FrameFetchContextHintsTest, MonitorPrefersColorSchemeHint) {
   ExpectHeader("https://www.example.com/1.gif", "Sec-CH-Prefers-Color-Scheme",
                false, "");
   ExpectHeader("http://www.example.com/1.gif", "Sec-CH-Prefers-Color-Scheme",
@@ -877,7 +903,7 @@
                false, "");
 }
 
-TEST_F(FrameFetchContextHintsTest, MonitorPrefersReducedMotionHint) {
+TEST_P(FrameFetchContextHintsTest, MonitorPrefersReducedMotionHint) {
   ExpectHeader("https://www.example.com/1.gif", "Sec-CH-Prefers-Reduced-Motion",
                false, "");
   ExpectHeader("http://www.example.com/1.gif", "Sec-CH-Prefers-Reduced-Motion",
@@ -900,7 +926,7 @@
                false, "");
 }
 
-TEST_F(FrameFetchContextHintsTest, MonitorAllHints) {
+TEST_P(FrameFetchContextHintsTest, MonitorAllHints) {
   ExpectHeader("https://www.example.com/1.gif", "Device-Memory", false, "");
   ExpectHeader("https://www.example.com/1.gif", "DPR", false, "");
   ExpectHeader("https://www.example.com/1.gif", "Viewport-Width", false, "");
@@ -963,11 +989,14 @@
                "500");
 
   ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA", true, "");
-  ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Arch", true, "");
-  ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Platform", true, "");
+  ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Arch", true,
+               EmptyString());
+  ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Platform", true,
+               EmptyString());
   ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Platform-Version",
-               true, "");
-  ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Model", true, "");
+               true, EmptyString());
+  ExpectHeader("https://www.example.com/1.gif", "Sec-CH-UA-Model", true,
+               EmptyString());
   ExpectHeader("https://www.example.com/1.gif", "Sec-CH-Prefers-Color-Scheme",
                true, "light");
   ExpectHeader("https://www.example.com/1.gif", "Sec-CH-Prefers-Reduced-Motion",
@@ -995,7 +1024,7 @@
 // Verify that the client hints should be attached for third-party subresources
 // fetched over secure transport, when specifically allowed by permissions
 // policy.
-TEST_F(FrameFetchContextHintsTest, MonitorAllHintsPermissionsPolicy) {
+TEST_P(FrameFetchContextHintsTest, MonitorAllHintsPermissionsPolicy) {
   RecreateFetchContext(
       KURL("https://www.example.com/"),
       "ch-dpr *; ch-device-memory *; ch-downlink *; ch-ect *; ch-rtt *; ch-ua "
@@ -1043,11 +1072,14 @@
                "4");
 
   ExpectHeader("https://www.example.net/1.gif", "Sec-CH-UA", true, "");
-  ExpectHeader("https://www.example.net/1.gif", "Sec-CH-UA-Arch", true, "");
-  ExpectHeader("https://www.example.net/1.gif", "Sec-CH-UA-Platform", true, "");
+  ExpectHeader("https://www.example.net/1.gif", "Sec-CH-UA-Arch", true,
+               EmptyString());
+  ExpectHeader("https://www.example.net/1.gif", "Sec-CH-UA-Platform", true,
+               EmptyString());
   ExpectHeader("https://www.example.net/1.gif", "Sec-CH-UA-Platform-Version",
-               true, "");
-  ExpectHeader("https://www.example.net/1.gif", "Sec-CH-UA-Model", true, "");
+               true, EmptyString());
+  ExpectHeader("https://www.example.net/1.gif", "Sec-CH-UA-Model", true,
+               EmptyString());
   ExpectHeader("https://www.example.net/1.gif", "Width", true, "400", 400);
   ExpectHeader("https://www.example.net/1.gif", "Sec-CH-Width", true, "400",
                400);
@@ -1080,7 +1112,7 @@
 
 // Verify that only the specifically allowed client hints are attached for
 // third-party subresources fetched over secure transport.
-TEST_F(FrameFetchContextHintsTest, MonitorSomeHintsPermissionsPolicy) {
+TEST_P(FrameFetchContextHintsTest, MonitorSomeHintsPermissionsPolicy) {
   RecreateFetchContext(KURL("https://www.example.com/"),
                        "ch-device-memory 'self' https://www.example.net");
   document->GetSettings()->SetScriptEnabled(true);
@@ -1128,7 +1160,7 @@
 // Verify that the client hints are not attached for third-party subresources
 // fetched over insecure transport, even when specifically allowed by
 // permissions policy.
-TEST_F(FrameFetchContextHintsTest,
+TEST_P(FrameFetchContextHintsTest,
        MonitorHintsPermissionsPolicyInsecureContext) {
   RecreateFetchContext(KURL("https://www.example.com/"), "ch-device-memory *");
   document->GetSettings()->SetScriptEnabled(true);
@@ -1200,7 +1232,7 @@
 }
 
 // Tests if "Save-Data" header is correctly added on the first load and reload.
-TEST_F(FrameFetchContextHintsTest, EnableDataSaver) {
+TEST_P(FrameFetchContextHintsTest, EnableDataSaver) {
   GetNetworkStateNotifier().SetSaveDataEnabledOverride(true);
   // Recreate the fetch context so that the updated save data settings are read.
   RecreateFetchContext(KURL("https://www.example.com/"));
@@ -1214,7 +1246,7 @@
 }
 
 // Tests if "Save-Data" header is not added when the data saver is disabled.
-TEST_F(FrameFetchContextHintsTest, DisabledDataSaver) {
+TEST_P(FrameFetchContextHintsTest, DisabledDataSaver) {
   GetNetworkStateNotifier().SetSaveDataEnabledOverride(false);
   // Recreate the fetch context so that the updated save data settings are read.
   RecreateFetchContext(KURL("https://www.example.com/"));
@@ -1224,7 +1256,7 @@
 }
 
 // Tests if reload variants can reflect the current data saver setting.
-TEST_F(FrameFetchContextHintsTest, ChangeDataSaverConfig) {
+TEST_P(FrameFetchContextHintsTest, ChangeDataSaverConfig) {
   GetNetworkStateNotifier().SetSaveDataEnabledOverride(true);
   // Recreate the fetch context so that the updated save data settings are read.
   RecreateFetchContext(KURL("https://www.example.com/"));
diff --git a/third_party/blink/renderer/core/style/computed_style_diff_functions.json5 b/third_party/blink/renderer/core/style/computed_style_diff_functions.json5
index 6c74cee..7f9a87e30 100644
--- a/third_party/blink/renderer/core/style/computed_style_diff_functions.json5
+++ b/third_party/blink/renderer/core/style/computed_style_diff_functions.json5
@@ -231,7 +231,7 @@
                 "content-visibility", "aspect-ratio", "overflow-clip-margin",
                 "-internal-align-self-block", "orphans", "widows",
                 "scrollbar-gutter", "break-after", "break-before",
-                "break-inside", "baseline-source"],
+                "break-inside", "baseline-source", "text-wrap"],
         methods_to_diff: [
           {
             method: "VerticalAlign()",
diff --git a/third_party/blink/renderer/core/view_transition/README.md b/third_party/blink/renderer/core/view_transition/README.md
index 3b766e0..b7b011af 100644
--- a/third_party/blink/renderer/core/view_transition/README.md
+++ b/third_party/blink/renderer/core/view_transition/README.md
@@ -91,8 +91,8 @@
 * Cached : This refers to a cached copy of a render pass saved in the Viz
 process.
 
-We generate 2 set of SharedElementResourceIDs for snapshots of elements in the
-old and new DOM as follows :
+We generate 2 set of ViewTransitionElementResourceIds for snapshots of elements
+in the old and new DOM as follows :
 
 * At the prepare phase (before the DOM is updated to the new state),
 old_snapshot_id tags elements in the old DOM. This ID refers to a live snapshot
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
index 53a96f54..bb34258 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -46,6 +46,7 @@
 #include "third_party/blink/renderer/core/css/css_resolution_units.h"
 #include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h"
+#include "third_party/blink/renderer/core/dom/css_toggle_inference.h"
 #include "third_party/blink/renderer/core/dom/flat_tree_traversal.h"
 #include "third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
@@ -1343,6 +1344,75 @@
   return RoleFromLayoutObjectOrNode();
 }
 
+namespace {
+
+ax::mojom::blink::Role InferredCSSToggleRole(Node* node) {
+  Element* element = DynamicTo<Element>(node);
+  if (!element) {
+    return ax::mojom::blink::Role::kUnknown;
+  }
+
+  // toggle_inference is null when CSS toggles are not used in the document.
+  CSSToggleInference* toggle_inference =
+      element->GetDocument().GetCSSToggleInference();
+  if (!toggle_inference) {
+    return ax::mojom::blink::Role::kUnknown;
+  }
+
+  DCHECK(RuntimeEnabledFeatures::CSSTogglesEnabled());
+
+  switch (toggle_inference->RoleForElement(element)) {
+    case CSSToggleRole::kNone:
+      break;
+    case CSSToggleRole::kButtonWithPopup:
+      return ax::mojom::blink::Role::kPopUpButton;
+    case CSSToggleRole::kDisclosure:
+      break;
+    case CSSToggleRole::kDisclosureButton:
+      return ax::mojom::blink::Role::kButton;
+    case CSSToggleRole::kTree:
+      return ax::mojom::blink::Role::kTree;
+    case CSSToggleRole::kTreeGroup:
+      return ax::mojom::blink::Role::kGroup;
+    case CSSToggleRole::kTreeItem:
+      return ax::mojom::blink::Role::kTreeItem;
+    case CSSToggleRole::kAccordion:
+      break;
+    case CSSToggleRole::kAccordionItem:
+      return ax::mojom::blink::Role::kRegion;
+    case CSSToggleRole::kAccordionItemButton:
+      return ax::mojom::blink::Role::kButton;
+    case CSSToggleRole::kTabContainer:
+      // TODO(dbaron): We should verify that using kTabList really
+      // works here, since this is a container that has both the tab
+      // list *and* the tab panels.  We should also make sure that
+      // posinset/setsize work correctly for the tabs.
+      return ax::mojom::blink::Role::kTabList;
+    case CSSToggleRole::kTab:
+      return ax::mojom::blink::Role::kTab;
+    case CSSToggleRole::kTabPanel:
+      return ax::mojom::blink::Role::kTabPanel;
+    case CSSToggleRole::kRadioGroup:
+      return ax::mojom::blink::Role::kRadioGroup;
+    case CSSToggleRole::kRadioItem:
+      return ax::mojom::blink::Role::kRadioButton;
+    case CSSToggleRole::kCheckboxGroup:
+      break;
+    case CSSToggleRole::kCheckbox:
+      return ax::mojom::blink::Role::kCheckBox;
+    case CSSToggleRole::kListbox:
+      return ax::mojom::blink::Role::kListBox;
+    case CSSToggleRole::kListboxItem:
+      return ax::mojom::blink::Role::kListBoxOption;
+    case CSSToggleRole::kButton:
+      return ax::mojom::blink::Role::kButton;
+  }
+
+  return ax::mojom::blink::Role::kUnknown;
+}
+
+}  // namespace
+
 ax::mojom::blink::Role AXNodeObject::DetermineAccessibilityRole() {
 #if DCHECK_IS_ON()
   base::AutoReset<bool> reentrancy_protector(&is_computing_role_, true);
@@ -1357,8 +1427,25 @@
 
   aria_role_ = DetermineAriaRoleAttribute();
 
-  return aria_role_ == ax::mojom::blink::Role::kUnknown ? native_role_
-                                                        : aria_role_;
+  // Order of precedence is currently:
+  //   1. ARIA role
+  //   2. Inferred role from CSS Toggle inference engine
+  //   3. Native markup role
+  // but we may decide to change how the CSS Toggle inference fits in.
+  //
+  // TODO(dbaron): Perhaps revisit whether there are types of elements
+  // where toggles should not work.
+
+  if (aria_role_ != ax::mojom::blink::Role::kUnknown) {
+    return aria_role_;
+  }
+
+  ax::mojom::blink::Role css_toggle_role = InferredCSSToggleRole(GetNode());
+  if (css_toggle_role != ax::mojom::blink::Role::kUnknown) {
+    return css_toggle_role;
+  }
+
+  return native_role_;
 }
 
 void AXNodeObject::AccessibilityChildrenFromAOMProperty(
@@ -1417,7 +1504,8 @@
 #endif
   AXObject::Init(parent);
 
-  DCHECK(role_ == native_role_ || role_ == aria_role_)
+  DCHECK(role_ == native_role_ || role_ == aria_role_ ||
+         GetNode()->GetDocument().GetCSSToggleInference())
       << "Role must be either the cached native role or cached aria role: "
       << "\n* Final role: " << role_ << "\n* Native role: " << native_role_
       << "\n* Aria role: " << aria_role_ << "\n* Node: " << GetNode();
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
index 39e73f0..55a13dd 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -170,6 +170,14 @@
   PopAndRestore();
 }
 
+void BaseRenderingContext2D::pushLayerStack(
+    CanvasRenderingContext2DState::SaveType save_type) {
+  state_stack_.push_back(MakeGarbageCollected<CanvasRenderingContext2DState>(
+      GetState(), CanvasRenderingContext2DState::kDontCopyClipList, save_type));
+  max_state_stack_depth_ =
+      std::max(state_stack_.size(), max_state_stack_depth_);
+}
+
 void BaseRenderingContext2D::beginLayer() {
   if (isContextLost())
     return;
@@ -187,47 +195,27 @@
   if (!canvas)
     return;
 
-  state_stack_.push_back(MakeGarbageCollected<CanvasRenderingContext2DState>(
-      GetState(), CanvasRenderingContext2DState::kDontCopyClipList,
-      CanvasRenderingContext2DState::SaveType::kBeginEndLayer));
-  max_state_stack_depth_ =
-      std::max(state_stack_.size(), max_state_stack_depth_);
   layer_count_++;
 
-  if (globalAlpha() != 1 &&
-      (StateHasFilter() || GetState().ShouldDrawShadows())) {
-    // For alpha and either filters or shadows, we have to split the save into
-    // two layers, so the shadow and filter can properly interact with alpha.
-    // We also need to flip how and where the shadows and filter are applied
-    // if there are shadows.
+  using SaveType = CanvasRenderingContext2DState::SaveType;
+  const int initial_save_count = canvas->getSaveCount();
+  SaveType save_type = SaveType::kBeginEndLayer;
+  bool composite_op_handled = false;
+
+  // For alpha and shadows (which include filters because they can also produce
+  // shadows), we must use two nested layers. The inner one applies the alpha
+  // and the outer one applies the shadow/filter. This is needed to to get a
+  // transparent shadow foreground, as the alpha would otherwise be applied to
+  // the result of foreground+shadow.
+  if (GetState().ShouldDrawShadows() || StateHasFilter()) {
+    pushLayerStack(save_type);
+    save_type = SaveType::kInternalLayer;
+
     cc::PaintFlags flags;
     flags.setBlendMode(GetState().GlobalComposite());
-    flags.setImageFilter(GetState().ShouldDrawShadows()
-                             ? GetState().ShadowAndForegroundImageFilter()
-                             : StateGetFilter());
-    canvas->saveLayer(flags);
+    composite_op_handled = true;
 
-    // Push to state stack to keep stack size up to date.
-    state_stack_.push_back(MakeGarbageCollected<CanvasRenderingContext2DState>(
-        GetState(), CanvasRenderingContext2DState::kDontCopyClipList,
-        CanvasRenderingContext2DState::SaveType::kInternalLayer));
-    max_state_stack_depth_ =
-        std::max(state_stack_.size(), max_state_stack_depth_);
-
-    if (StateHasFilter() && GetState().ShouldDrawShadows()) {
-      cc::PaintFlags extra_flags;
-      extra_flags.setAlphaf(static_cast<float>(globalAlpha()));
-      extra_flags.setImageFilter(StateGetFilter());
-      canvas->saveLayer(extra_flags);
-    } else {
-      canvas->saveLayerAlphaf(globalAlpha());
-    }
-  } else if (StateHasFilter() || GetState().ShouldDrawShadows() ||
-             GetState().GlobalComposite() != SkBlendMode::kSrcOver) {
-    cc::PaintFlags flags;
-    flags.setBlendMode(GetState().GlobalComposite());
-
-    if (StateHasFilter() && GetState().ShouldDrawShadows()) {
+    if (GetState().ShouldDrawShadows() && StateHasFilter()) {
       flags.setImageFilter(sk_make_sp<ComposePaintFilter>(
           GetState().ShadowAndForegroundImageFilter(), StateGetFilter()));
     } else if (GetState().ShouldDrawShadows()) {
@@ -235,9 +223,19 @@
     } else if (StateHasFilter()) {
       flags.setImageFilter(StateGetFilter());
     }
+    canvas->saveLayer(flags);
+  }
+
+  if (GetState().GlobalComposite() != SkBlendMode::kSrcOver &&
+      !composite_op_handled) {
+    pushLayerStack(save_type);
+    cc::PaintFlags flags;
+    flags.setBlendMode(GetState().GlobalComposite());
     flags.setAlphaf(static_cast<float>(globalAlpha()));
     canvas->saveLayer(flags);
-  } else {
+  } else if (globalAlpha() != 1 ||
+             initial_save_count == canvas->getSaveCount()) {
+    pushLayerStack(save_type);
     canvas->saveLayerAlphaf(globalAlpha());
   }
 
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
index 2d926d0..e7c76bd6 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
@@ -531,6 +531,7 @@
   // PaintCanvas, and validates the state stack. Helper for Restore and
   // EndLayer.
   void PopAndRestore();
+  void pushLayerStack(CanvasRenderingContext2DState::SaveType save_type);
 
   bool ShouldDrawImageAntialiased(const gfx::RectF& dest_rect) const;
 
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d_test.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d_test.cc
index a41db9a..c99dc114 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d_test.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d_test.cc
@@ -401,18 +401,16 @@
   context->beginLayer();
   context->endLayer();
 
-  cc::PaintFlags shadow_flags;
-  shadow_flags.setImageFilter(sk_make_sp<DropShadowPaintFilter>(
-      0.0f, 0.0f, 1.0f, 1.0f, SkColors::kRed,
-      DropShadowPaintFilter::ShadowMode::kDrawShadowAndForeground, nullptr));
+  cc::PaintFlags flags;
+  flags.setImageFilter(sk_make_sp<ComposePaintFilter>(
+      sk_make_sp<DropShadowPaintFilter>(
+          0.0f, 0.0f, 1.0f, 1.0f, SkColors::kRed,
+          DropShadowPaintFilter::ShadowMode::kDrawShadowAndForeground, nullptr),
+      sk_make_sp<BlurPaintFilter>(20.0f, 20.0f, SkTileMode::kDecal, nullptr)));
 
-  cc::PaintFlags filter_flags;
-  filter_flags.setImageFilter(
-      sk_make_sp<BlurPaintFilter>(20.0f, 20.0f, SkTileMode::kDecal, nullptr));
-  filter_flags.setAlphaf(0.2f);
   EXPECT_THAT(context->getRecording(),
-              ElementsAre(PaintOpEq<SaveLayerOp>(shadow_flags),
-                          PaintOpEq<SaveLayerOp>(filter_flags),
+              ElementsAre(PaintOpEq<SaveLayerOp>(flags),
+                          PaintOpEq<SaveLayerAlphaOp>(0.2f),
                           PaintOpEq<RestoreOp>(), PaintOpEq<RestoreOp>()));
 }
 
@@ -428,19 +426,17 @@
   context->beginLayer();
   context->endLayer();
 
-  cc::PaintFlags shadow_flags;
-  shadow_flags.setImageFilter(sk_make_sp<DropShadowPaintFilter>(
-      0.0f, 0.0f, 1.0f, 1.0f, SkColors::kRed,
-      DropShadowPaintFilter::ShadowMode::kDrawShadowAndForeground, nullptr));
-  shadow_flags.setBlendMode(SkBlendMode::kXor);
+  cc::PaintFlags flags;
+  flags.setImageFilter(sk_make_sp<ComposePaintFilter>(
+      sk_make_sp<DropShadowPaintFilter>(
+          0.0f, 0.0f, 1.0f, 1.0f, SkColors::kRed,
+          DropShadowPaintFilter::ShadowMode::kDrawShadowAndForeground, nullptr),
+      sk_make_sp<BlurPaintFilter>(20.0f, 20.0f, SkTileMode::kDecal, nullptr)));
+  flags.setBlendMode(SkBlendMode::kXor);
 
-  cc::PaintFlags filter_flags;
-  filter_flags.setImageFilter(
-      sk_make_sp<BlurPaintFilter>(20.0f, 20.0f, SkTileMode::kDecal, nullptr));
-  filter_flags.setAlphaf(0.2f);
   EXPECT_THAT(context->getRecording(),
-              ElementsAre(PaintOpEq<SaveLayerOp>(shadow_flags),
-                          PaintOpEq<SaveLayerOp>(filter_flags),
+              ElementsAre(PaintOpEq<SaveLayerOp>(flags),
+                          PaintOpEq<SaveLayerAlphaOp>(0.2f),
                           PaintOpEq<RestoreOp>(), PaintOpEq<RestoreOp>()));
 }
 
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.cc b/third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.cc
index a75d1fa..24ecec9 100644
--- a/third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.cc
+++ b/third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.cc
@@ -5,15 +5,48 @@
 #include "third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.h"
 
 #include "base/notreached.h"
+#include "third_party/blink/renderer/core/streams/readable_stream.h"
+#include "third_party/blink/renderer/modules/direct_sockets/tcp_socket.h"
 
 namespace blink {
 
 TCPServerReadableStreamWrapper::TCPServerReadableStreamWrapper(
-    ScriptState* script_state)
-    : ReadableStreamDefaultWrapper(script_state) {}
+    ScriptState* script_state,
+    CloseOnceCallback on_close,
+    mojo::PendingRemote<network::mojom::blink::TCPServerSocket>
+        tcp_server_socket)
+    : ReadableStreamDefaultWrapper(script_state),
+      on_close_(std::move(on_close)),
+      tcp_server_socket_(ExecutionContext::From(script_state)) {
+  tcp_server_socket_.Bind(std::move(tcp_server_socket),
+                          ExecutionContext::From(script_state)
+                              ->GetTaskRunner(TaskType::kNetworking));
+  tcp_server_socket_.set_disconnect_handler(
+      WTF::BindOnce(&TCPServerReadableStreamWrapper::ErrorStream,
+                    WrapWeakPersistent(this), net::ERR_CONNECTION_ABORTED));
+
+  ScriptState::Scope scope(script_state);
+
+  auto* source =
+      ReadableStreamDefaultWrapper::MakeForwardingUnderlyingSource(this);
+  SetSource(source);
+
+  auto* readable = ReadableStream::CreateWithCountQueueingStrategy(
+      script_state, source, /*high_water_mark=*/0);
+  SetReadable(readable);
+}
 
 void TCPServerReadableStreamWrapper::Pull() {
-  NOTIMPLEMENTED();
+  DCHECK(tcp_server_socket_.is_bound());
+
+  mojo::PendingReceiver<network::mojom::blink::SocketObserver> socket_observer;
+  mojo::PendingRemote<network::mojom::blink::SocketObserver>
+      socket_observer_remote = socket_observer.InitWithNewPipeAndPassRemote();
+
+  tcp_server_socket_->Accept(
+      std::move(socket_observer_remote),
+      WTF::BindOnce(&TCPServerReadableStreamWrapper::OnAccept,
+                    WrapPersistent(this), std::move(socket_observer)));
 }
 
 void TCPServerReadableStreamWrapper::CloseStream() {
@@ -25,7 +58,29 @@
 }
 
 void TCPServerReadableStreamWrapper::Trace(Visitor* visitor) const {
+  visitor->Trace(tcp_server_socket_);
   ReadableStreamDefaultWrapper::Trace(visitor);
 }
 
+void TCPServerReadableStreamWrapper::OnAccept(
+    mojo::PendingReceiver<network::mojom::blink::SocketObserver>
+        socket_observer,
+    int result,
+    const absl::optional<net::IPEndPoint>& remote_addr,
+    mojo::PendingRemote<network::mojom::blink::TCPConnectedSocket>
+        tcp_socket_remote,
+    mojo::ScopedDataPipeConsumerHandle receive_stream,
+    mojo::ScopedDataPipeProducerHandle send_stream) {
+  if (result != net::OK) {
+    NOTIMPLEMENTED();
+    return;
+  }
+
+  auto* script_state = GetScriptState();
+  ScriptState::Scope scope(script_state);
+  Controller()->Enqueue(TCPSocket::CreateFromAcceptedConnection(
+      script_state, std::move(tcp_socket_remote), std::move(socket_observer),
+      *remote_addr, std::move(receive_stream), std::move(send_stream)));
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.h b/third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.h
index 67f258b..f8247800 100644
--- a/third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.h
+++ b/third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.h
@@ -5,9 +5,11 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_DIRECT_SOCKETS_TCP_SERVER_READABLE_STREAM_WRAPPER_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_DIRECT_SOCKETS_TCP_SERVER_READABLE_STREAM_WRAPPER_H_
 
+#include "services/network/public/mojom/tcp_socket.mojom-blink.h"
 #include "third_party/blink/renderer/modules/direct_sockets/stream_wrapper.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
+#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 
 namespace blink {
 
@@ -15,13 +17,29 @@
     : public GarbageCollected<TCPServerReadableStreamWrapper>,
       public ReadableStreamDefaultWrapper {
  public:
-  explicit TCPServerReadableStreamWrapper(ScriptState*);
+  TCPServerReadableStreamWrapper(
+      ScriptState*,
+      CloseOnceCallback,
+      mojo::PendingRemote<network::mojom::blink::TCPServerSocket>);
 
   // ReadableStreamDefaultWrapper:
   void Pull() override;
   void CloseStream() override;
   void ErrorStream(int32_t error_code) override;
   void Trace(Visitor*) const override;
+
+ private:
+  void OnAccept(
+      mojo::PendingReceiver<network::mojom::blink::SocketObserver> observer,
+      int result,
+      const absl::optional<net::IPEndPoint>& remote_addr,
+      mojo::PendingRemote<network::mojom::blink::TCPConnectedSocket>
+          connected_socket,
+      mojo::ScopedDataPipeConsumerHandle receive_stream,
+      mojo::ScopedDataPipeProducerHandle send_stream);
+
+  CloseOnceCallback on_close_;
+  HeapMojoRemote<network::mojom::blink::TCPServerSocket> tcp_server_socket_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_server_socket.cc b/third_party/blink/renderer/modules/direct_sockets/tcp_server_socket.cc
index d5499f2..c79d803f 100644
--- a/third_party/blink/renderer/modules/direct_sockets/tcp_server_socket.cc
+++ b/third_party/blink/renderer/modules/direct_sockets/tcp_server_socket.cc
@@ -9,6 +9,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_tcp_server_socket_open_info.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_tcp_server_socket_options.h"
+#include "third_party/blink/renderer/core/streams/readable_stream.h"
 #include "third_party/blink/renderer/modules/direct_sockets/tcp_server_readable_stream_wrapper.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
@@ -116,7 +117,25 @@
         tcp_server_remote,
     int32_t result,
     const absl::optional<net::IPEndPoint>& local_addr) {
-  NOTIMPLEMENTED();
+  if (result == net::OK) {
+    DCHECK(local_addr);
+    readable_stream_wrapper_ =
+        MakeGarbageCollected<TCPServerReadableStreamWrapper>(
+            GetScriptState(), base::DoNothing(), std::move(tcp_server_remote));
+
+    auto* open_info = TCPServerSocketOpenInfo::Create();
+    open_info->setReadable(readable_stream_wrapper_->Readable());
+    open_info->setLocalAddress(String{local_addr->ToStringWithoutPort()});
+    open_info->setLocalPort(local_addr->port());
+
+    GetOpenedPromiseResolver()->Resolve(open_info);
+
+    SetState(State::kOpen);
+  } else {
+    NOTIMPLEMENTED();
+  }
+
+  DCHECK_NE(GetState(), State::kOpening);
 }
 
 void TCPServerSocket::Trace(Visitor* visitor) const {
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_server_socket.h b/third_party/blink/renderer/modules/direct_sockets/tcp_server_socket.h
index 7399df3..f30673d 100644
--- a/third_party/blink/renderer/modules/direct_sockets/tcp_server_socket.h
+++ b/third_party/blink/renderer/modules/direct_sockets/tcp_server_socket.h
@@ -31,7 +31,6 @@
   // Socket:
   ScriptPromise close(ScriptState*, ExceptionState&) override;
 
- public:
   explicit TCPServerSocket(ScriptState*);
   ~TCPServerSocket() override;
 
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_socket.cc b/third_party/blink/renderer/modules/direct_sockets/tcp_socket.cc
index 257da9e..45a2db10 100644
--- a/third_party/blink/renderer/modules/direct_sockets/tcp_socket.cc
+++ b/third_party/blink/renderer/modules/direct_sockets/tcp_socket.cc
@@ -114,6 +114,24 @@
   return socket;
 }
 
+// static
+TCPSocket* TCPSocket::CreateFromAcceptedConnection(
+    ScriptState* script_state,
+    mojo::PendingRemote<network::mojom::blink::TCPConnectedSocket> tcp_socket,
+    mojo::PendingReceiver<network::mojom::blink::SocketObserver>
+        socket_observer,
+    const net::IPEndPoint& peer_addr,
+    mojo::ScopedDataPipeConsumerHandle receive_stream,
+    mojo::ScopedDataPipeProducerHandle send_stream) {
+  auto* socket = MakeGarbageCollected<TCPSocket>(script_state);
+  // TODO(crbug.com/1417998): support local_addr for accepted sockets.
+  socket->FinishOpenOrAccept(std::move(tcp_socket), std::move(socket_observer),
+                             peer_addr, /*local_addr=*/absl::nullopt,
+                             std::move(receive_stream), std::move(send_stream));
+  DCHECK_EQ(socket->GetState(), State::kOpen);
+  return socket;
+}
+
 TCPSocket::TCPSocket(ScriptState* script_state)
     : Socket(script_state),
       tcp_socket_{GetExecutionContext()},
@@ -167,44 +185,34 @@
     return false;
   }
 
-  GetServiceRemote()->OpenTCPSocket(
-      std::move(open_tcp_socket_options), GetTCPSocketReceiver(),
-      GetTCPSocketObserver(),
-      WTF::BindOnce(&TCPSocket::Init, WrapPersistent(this)));
+  mojo::PendingReceiver<network::mojom::blink::TCPConnectedSocket>
+      socket_receiver;
+  mojo::PendingRemote<network::mojom::blink::SocketObserver> observer_remote;
 
+  auto callback =
+      WTF::BindOnce(&TCPSocket::OnTCPSocketOpened, WrapPersistent(this),
+                    socket_receiver.InitWithNewPipeAndPassRemote(),
+                    observer_remote.InitWithNewPipeAndPassReceiver());
+  GetServiceRemote()->OpenTCPSocket(
+      std::move(open_tcp_socket_options), std::move(socket_receiver),
+      std::move(observer_remote), std::move(callback));
   return true;
 }
 
-void TCPSocket::Init(int32_t result,
-                     const absl::optional<net::IPEndPoint>& local_addr,
-                     const absl::optional<net::IPEndPoint>& peer_addr,
-                     mojo::ScopedDataPipeConsumerHandle receive_stream,
-                     mojo::ScopedDataPipeProducerHandle send_stream) {
+void TCPSocket::OnTCPSocketOpened(
+    mojo::PendingRemote<network::mojom::blink::TCPConnectedSocket> tcp_socket,
+    mojo::PendingReceiver<network::mojom::blink::SocketObserver>
+        socket_observer,
+    int32_t result,
+    const absl::optional<net::IPEndPoint>& local_addr,
+    const absl::optional<net::IPEndPoint>& peer_addr,
+    mojo::ScopedDataPipeConsumerHandle receive_stream,
+    mojo::ScopedDataPipeProducerHandle send_stream) {
   if (result == net::OK) {
     DCHECK(peer_addr);
-    auto close_callback = base::BarrierCallback<ScriptValue>(
-        /*num_callbacks=*/2, WTF::BindOnce(&TCPSocket::OnBothStreamsClosed,
-                                           WrapWeakPersistent(this)));
-
-    readable_stream_wrapper_ = MakeGarbageCollected<TCPReadableStreamWrapper>(
-        GetScriptState(), close_callback, std::move(receive_stream));
-    writable_stream_wrapper_ = MakeGarbageCollected<TCPWritableStreamWrapper>(
-        GetScriptState(), close_callback, std::move(send_stream));
-
-    auto* open_info = TCPSocketOpenInfo::Create();
-
-    open_info->setReadable(readable_stream_wrapper_->Readable());
-    open_info->setWritable(writable_stream_wrapper_->Writable());
-
-    open_info->setRemoteAddress(String{peer_addr->ToStringWithoutPort()});
-    open_info->setRemotePort(peer_addr->port());
-
-    open_info->setLocalAddress(String{local_addr->ToStringWithoutPort()});
-    open_info->setLocalPort(local_addr->port());
-
-    GetOpenedPromiseResolver()->Resolve(open_info);
-
-    SetState(State::kOpen);
+    FinishOpenOrAccept(std::move(tcp_socket), std::move(socket_observer),
+                       *peer_addr, local_addr, std::move(receive_stream),
+                       std::move(send_stream));
   } else {
     // Error codes are negative.
     base::UmaHistogramSparse(kTCPNetworkFailuresHistogramName, -result);
@@ -220,21 +228,46 @@
   DCHECK_NE(GetState(), State::kOpening);
 }
 
-mojo::PendingReceiver<network::mojom::blink::TCPConnectedSocket>
-TCPSocket::GetTCPSocketReceiver() {
-  return tcp_socket_.BindNewPipeAndPassReceiver(
+void TCPSocket::FinishOpenOrAccept(
+    mojo::PendingRemote<network::mojom::blink::TCPConnectedSocket> tcp_socket,
+    mojo::PendingReceiver<network::mojom::blink::SocketObserver>
+        socket_observer,
+    const net::IPEndPoint& peer_addr,
+    const absl::optional<net::IPEndPoint>& local_addr,
+    mojo::ScopedDataPipeConsumerHandle receive_stream,
+    mojo::ScopedDataPipeProducerHandle send_stream) {
+  tcp_socket_.Bind(std::move(tcp_socket),
+                   GetExecutionContext()->GetTaskRunner(TaskType::kNetworking));
+  socket_observer_.Bind(
+      std::move(socket_observer),
       GetExecutionContext()->GetTaskRunner(TaskType::kNetworking));
-}
-
-mojo::PendingRemote<network::mojom::blink::SocketObserver>
-TCPSocket::GetTCPSocketObserver() {
-  auto pending_remote = socket_observer_.BindNewPipeAndPassRemote(
-      GetExecutionContext()->GetTaskRunner(TaskType::kNetworking));
-
   socket_observer_.set_disconnect_handler(
       WTF::BindOnce(&TCPSocket::OnSocketConnectionError, WrapPersistent(this)));
 
-  return pending_remote;
+  auto close_callback = base::BarrierCallback<ScriptValue>(
+      /*num_callbacks=*/2,
+      WTF::BindOnce(&TCPSocket::OnBothStreamsClosed, WrapWeakPersistent(this)));
+
+  readable_stream_wrapper_ = MakeGarbageCollected<TCPReadableStreamWrapper>(
+      GetScriptState(), close_callback, std::move(receive_stream));
+  writable_stream_wrapper_ = MakeGarbageCollected<TCPWritableStreamWrapper>(
+      GetScriptState(), close_callback, std::move(send_stream));
+
+  auto* open_info = TCPSocketOpenInfo::Create();
+
+  open_info->setReadable(readable_stream_wrapper_->Readable());
+  open_info->setWritable(writable_stream_wrapper_->Writable());
+
+  open_info->setRemoteAddress(String{peer_addr.ToStringWithoutPort()});
+  open_info->setRemotePort(peer_addr.port());
+
+  if (local_addr) {
+    open_info->setLocalAddress(String{local_addr->ToStringWithoutPort()});
+    open_info->setLocalPort(local_addr->port());
+  }
+
+  GetOpenedPromiseResolver()->Resolve(open_info);
+  SetState(State::kOpen);
 }
 
 void TCPSocket::OnSocketConnectionError() {
@@ -245,9 +278,10 @@
 
 void TCPSocket::OnServiceConnectionError() {
   if (GetState() == State::kOpening) {
-    Init(net::ERR_CONTEXT_SHUT_DOWN, absl::nullopt, absl::nullopt,
-         mojo::ScopedDataPipeConsumerHandle(),
-         mojo::ScopedDataPipeProducerHandle());
+    OnTCPSocketOpened(mojo::NullRemote(), mojo::NullReceiver(),
+                      net::ERR_CONTEXT_SHUT_DOWN, absl::nullopt, absl::nullopt,
+                      mojo::ScopedDataPipeConsumerHandle(),
+                      mojo::ScopedDataPipeProducerHandle());
   }
 }
 
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_socket.h b/third_party/blink/renderer/modules/direct_sockets/tcp_socket.h
index 57a6c890..d11eb87e 100644
--- a/third_party/blink/renderer/modules/direct_sockets/tcp_socket.h
+++ b/third_party/blink/renderer/modules/direct_sockets/tcp_socket.h
@@ -61,25 +61,35 @@
   ScriptPromise close(ScriptState*, ExceptionState&) override;
 
  public:
+  // Constructor for use from TCPServerSocket.
+  static TCPSocket* CreateFromAcceptedConnection(
+      ScriptState*,
+      mojo::PendingRemote<network::mojom::blink::TCPConnectedSocket>,
+      mojo::PendingReceiver<network::mojom::blink::SocketObserver>,
+      const net::IPEndPoint& remote_addr,
+      mojo::ScopedDataPipeConsumerHandle receive_stream,
+      mojo::ScopedDataPipeProducerHandle send_stream);
+
   explicit TCPSocket(ScriptState*);
   ~TCPSocket() override;
 
   // Validates options and calls
-  // DirectSocketsServiceMojoRemote::OpenTCPSocket(...) with Init(...) passed as
-  // callback.
+  // DirectSocketsServiceMojoRemote::OpenTCPSocket(...).
   bool Open(const String& remote_address,
             const uint16_t remote_port,
             const TCPSocketOptions*,
             ExceptionState&);
 
   // On net::OK initializes readable/writable streams and resolves opened
-  // promise. Otherwise rejects the opened promise. Serves as callback for
-  // Open(...).
-  void Init(int32_t result,
-            const absl::optional<net::IPEndPoint>& local_addr,
-            const absl::optional<net::IPEndPoint>& peer_addr,
-            mojo::ScopedDataPipeConsumerHandle receive_stream,
-            mojo::ScopedDataPipeProducerHandle send_stream);
+  // promise. Otherwise rejects the opened promise.
+  void OnTCPSocketOpened(
+      mojo::PendingRemote<network::mojom::blink::TCPConnectedSocket>,
+      mojo::PendingReceiver<network::mojom::blink::SocketObserver>,
+      int32_t result,
+      const absl::optional<net::IPEndPoint>& local_addr,
+      const absl::optional<net::IPEndPoint>& peer_addr,
+      mojo::ScopedDataPipeConsumerHandle receive_stream,
+      mojo::ScopedDataPipeProducerHandle send_stream);
 
   void Trace(Visitor*) const override;
 
@@ -90,10 +100,13 @@
   void ContextDestroyed() override;
 
  private:
-  mojo::PendingReceiver<network::mojom::blink::TCPConnectedSocket>
-  GetTCPSocketReceiver();
-  mojo::PendingRemote<network::mojom::blink::SocketObserver>
-  GetTCPSocketObserver();
+  void FinishOpenOrAccept(
+      mojo::PendingRemote<network::mojom::blink::TCPConnectedSocket>,
+      mojo::PendingReceiver<network::mojom::blink::SocketObserver>,
+      const net::IPEndPoint& peer_addr,
+      const absl::optional<net::IPEndPoint>& local_addr,
+      mojo::ScopedDataPipeConsumerHandle receive_stream,
+      mojo::ScopedDataPipeProducerHandle send_stream);
 
   // Invoked if mojo pipe for |service_| breaks.
   void OnServiceConnectionError() override;
diff --git a/third_party/blink/renderer/modules/direct_sockets/tcp_socket_unittest.cc b/third_party/blink/renderer/modules/direct_sockets/tcp_socket_unittest.cc
index 995380e1..90b8e51 100644
--- a/third_party/blink/renderer/modules/direct_sockets/tcp_socket_unittest.cc
+++ b/third_party/blink/renderer/modules/direct_sockets/tcp_socket_unittest.cc
@@ -62,9 +62,17 @@
 
   auto [consumer_complement, consumer] = CreateDataPipe();
   auto [producer, producer_complement] = CreateDataPipe();
-  tcp_socket->Init(net::OK, net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0},
-                   net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0},
-                   std::move(consumer), std::move(producer));
+
+  mojo::PendingReceiver<network::mojom::blink::TCPConnectedSocket>
+      socket_receiver;
+  mojo::PendingRemote<network::mojom::blink::SocketObserver> observer_remote;
+
+  tcp_socket->OnTCPSocketOpened(
+      socket_receiver.InitWithNewPipeAndPassRemote(),
+      observer_remote.InitWithNewPipeAndPassReceiver(), net::OK,
+      net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0},
+      net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0}, std::move(consumer),
+      std::move(producer));
 
   opened_tester.WaitUntilSettled();
   ASSERT_TRUE(opened_tester.IsFulfilled());
@@ -86,9 +94,17 @@
 
   auto [consumer_complement, consumer] = CreateDataPipe();
   auto [producer, producer_complement] = CreateDataPipe();
-  tcp_socket->Init(net::OK, net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0},
-                   net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0},
-                   std::move(consumer), std::move(producer));
+
+  mojo::PendingReceiver<network::mojom::blink::TCPConnectedSocket>
+      socket_receiver;
+  mojo::PendingRemote<network::mojom::blink::SocketObserver> observer_remote;
+
+  tcp_socket->OnTCPSocketOpened(
+      socket_receiver.InitWithNewPipeAndPassRemote(),
+      observer_remote.InitWithNewPipeAndPassReceiver(), net::OK,
+      net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0},
+      net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0}, std::move(consumer),
+      std::move(producer));
 
   opened_tester.WaitUntilSettled();
   ASSERT_TRUE(opened_tester.IsFulfilled());
@@ -97,8 +113,7 @@
                                     tcp_socket->closed(script_state));
 
   // Trigger OnSocketObserverConnectionError().
-  auto observer = tcp_socket->GetTCPSocketObserver();
-  observer.reset();
+  observer_remote.reset();
   consumer_complement.reset();
   producer_complement.reset();
 
@@ -122,9 +137,17 @@
 
   auto [consumer_complement, consumer] = CreateDataPipe();
   auto [producer, producer_complement] = CreateDataPipe();
-  tcp_socket->Init(net::OK, net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0},
-                   net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0},
-                   std::move(consumer), std::move(producer));
+
+  mojo::PendingReceiver<network::mojom::blink::TCPConnectedSocket>
+      socket_receiver;
+  mojo::PendingRemote<network::mojom::blink::SocketObserver> observer_remote;
+
+  tcp_socket->OnTCPSocketOpened(
+      socket_receiver.InitWithNewPipeAndPassRemote(),
+      observer_remote.InitWithNewPipeAndPassReceiver(), net::OK,
+      net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0},
+      net::IPEndPoint{net::IPAddress::IPv4Localhost(), 0}, std::move(consumer),
+      std::move(producer));
 
   opened_tester.WaitUntilSettled();
   ASSERT_TRUE(opened_tester.IsFulfilled());
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc
index 8c6800c..d7916942 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc
@@ -902,6 +902,9 @@
   if (webrtc_stat.is_remote.is_defined()) {
     v8_stat->setIsRemote(*webrtc_stat.is_remote);
   }
+  if (webrtc_stat.ip.is_defined()) {
+    v8_stat->setIp(String::FromUTF8(*webrtc_stat.ip));
+  }
   return v8_stat;
 }
 
@@ -1235,11 +1238,8 @@
  public:
   explicit RTCStatsReportIterationSource(
       std::unique_ptr<RTCStatsReportPlatform> report,
-      bool use_web_idl,
-      bool unship_deprecated_stats)
-      : report_(std::move(report)),
-        use_web_idl_(use_web_idl),
-        unship_deprecated_stats_(unship_deprecated_stats) {}
+      bool use_web_idl)
+      : report_(std::move(report)), use_web_idl_(use_web_idl) {}
 
   bool FetchNextItem(ScriptState* script_state,
                      String& key,
@@ -1269,7 +1269,7 @@
     // Loop until a stat can be converted.
     while (rtc_stats) {
       v8_stat = RTCStatsToIDL(script_state, *rtc_stats, expose_hardware_caps,
-                              unship_deprecated_stats_);
+                              report_->unship_deprecated_stats());
       if (v8_stat) {
         break;
       }
@@ -1290,7 +1290,6 @@
  private:
   std::unique_ptr<RTCStatsReportPlatform> report_;
   const bool use_web_idl_;
-  const bool unship_deprecated_stats_;
 };
 
 }  // namespace
@@ -1315,9 +1314,7 @@
 RTCStatsReport::RTCStatsReport(std::unique_ptr<RTCStatsReportPlatform> report)
     : report_(std::move(report)),
       use_web_idl_(
-          base::FeatureList::IsEnabled(features::kWebRtcStatsReportIdl)),
-      unship_deprecated_stats_(
-          base::FeatureList::IsEnabled(WebRtcUnshipDeprecatedStats)) {}
+          base::FeatureList::IsEnabled(features::kWebRtcStatsReportIdl)) {}
 
 uint32_t RTCStatsReport::size() const {
   return base::saturated_cast<uint32_t>(report_->Size());
@@ -1326,7 +1323,7 @@
 PairSyncIterable<RTCStatsReport>::IterationSource*
 RTCStatsReport::CreateIterationSource(ScriptState*, ExceptionState&) {
   return MakeGarbageCollected<RTCStatsReportIterationSource>(
-      report_->CopyHandle(), use_web_idl_, unship_deprecated_stats_);
+      report_->CopyHandle(), use_web_idl_);
 }
 
 bool RTCStatsReport::GetMapEntryIdl(ScriptState* script_state,
@@ -1340,7 +1337,7 @@
 
   RTCStats* v8_stats = RTCStatsToIDL(
       script_state, *stats, ExposeHardwareCapabilityStats(script_state),
-      unship_deprecated_stats_);
+      report_->unship_deprecated_stats());
   if (!v8_stats) {
     return false;
   }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h
index e18a80e..dbdcc3bb 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h
@@ -48,7 +48,6 @@
 
   std::unique_ptr<RTCStatsReportPlatform> report_;
   const bool use_web_idl_;
-  const bool unship_deprecated_stats_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl
index 6f20bf4..6ceecd6e 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl
@@ -296,7 +296,11 @@
   // https://w3c.github.io/webrtc-provisional-stats/#RTCIceCandidateStats-stat*
   RTCNetworkType networkType;
   // Non-standard and obsolete stats.
+  // - Removed because `type` reveals same information ("local-candidate" or
+  //   "remote-candidate").
   boolean isRemote;
+  // - Removed because it was renamed `address`.
+  DOMString? ip;
 };
 
 // https://w3c.github.io/webrtc-stats/#candidatepair-dict*
diff --git a/third_party/blink/renderer/modules/permissions/permission_utils.cc b/third_party/blink/renderer/modules/permissions/permission_utils.cc
index 9017c398..11b142e 100644
--- a/third_party/blink/renderer/modules/permissions/permission_utils.cc
+++ b/third_party/blink/renderer/modules/permissions/permission_utils.cc
@@ -97,7 +97,7 @@
     case PermissionName::NFC:
       return "nfc";
     case PermissionName::STORAGE_ACCESS:
-      return "storage_access";
+      return "storage-access";
     case PermissionName::WINDOW_MANAGEMENT:
       if (RuntimeEnabledFeatures::WindowManagementPermissionAliasEnabled()) {
         return "window-management";
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_stats.h b/third_party/blink/renderer/platform/peerconnection/rtc_stats.h
index bb539c2..76a5a45 100644
--- a/third_party/blink/renderer/platform/peerconnection/rtc_stats.h
+++ b/third_party/blink/renderer/platform/peerconnection/rtc_stats.h
@@ -48,6 +48,7 @@
       const Vector<webrtc::NonStandardGroupId>& exposed_group_ids,
       bool is_track_stats_deprecation_trial_enabled);
   virtual ~RTCStatsReportPlatform();
+
   // Creates a new report object that is a handle to the same underlying stats
   // report (the stats are not copied). The new report's iterator is reset,
   // useful when needing multiple iterators.
@@ -60,6 +61,7 @@
   std::unique_ptr<RTCStatsWrapper> Next();
 
   const webrtc::RTCStatsReport& stats_report() const { return *stats_report_; }
+  bool unship_deprecated_stats() const { return unship_deprecated_stats_; }
   const webrtc::RTCStats* NextStats();
 
   // The number of stats objects.
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 3103230..d588c9da 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -533,27 +533,8 @@
 crbug.com/843084 external/wpt/css/css-masking/clip-path-svg-content/clip-path-shape-circle-003.svg [ Failure ]
 crbug.com/843084 external/wpt/css/css-masking/clip-path-svg-content/clip-path-shape-circle-004.svg [ Failure ]
 crbug.com/843084 external/wpt/css/css-masking/clip-path-svg-content/clip-path-shape-circle-005.svg [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip-transform.svg [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip.svg [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip-transform.svg [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip.svg [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-circle-001.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-circle-002.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-circle-003.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-circle-004.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-circle-005.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-circle-006.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-circle-008.html [ Failure ]
 crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-003.html [ Failure ]
 crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-004.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-ellipse-001.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-ellipse-002.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-ellipse-003.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-ellipse-004.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-ellipse-005.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-ellipse-006.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-ellipse-007.html [ Failure ]
-crbug.com/843084 external/wpt/css/css-masking/clip-path/clip-path-ellipse-008.html [ Failure ]
 crbug.com/694218 external/wpt/css/css-masking/clip-path/clip-path-polygon-006.html [ Failure ]
 crbug.com/694218 external/wpt/css/css-masking/clip-path/clip-path-polygon-007.html [ Failure ]
 crbug.com/694218 external/wpt/css/css-masking/clip-path/clip-path-polygon-008.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip-transform.svg b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip-transform.svg
index fc1f7688..e3ca1fbd 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip-transform.svg
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip-transform.svg
@@ -7,6 +7,7 @@
 	<html:link rel="help" href="http://www.w3.org/TR/css-masking-1/#svg-masks"/>
 	<html:link rel="help" href="http://www.w3.org/TR/css-masking-1/#MaskElement"/>
 	<html:link rel="match" href="reference/mask-content-clip-002-ref.svg" />
+	<html:meta name="fuzzy" content="0-38; 0-200"/>
 	<metadata class="flags">svg</metadata>
 	<desc class="assert">The mask element with
 	maskContentUnits="objectBoundingBox" gets clipped. The clipping path has a
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip.svg b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip.svg
index a8d8a12..47cf900 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip.svg
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-objectboundingbox-content-clip.svg
@@ -7,6 +7,7 @@
 	<html:link rel="help" href="http://www.w3.org/TR/css-masking-1/#svg-masks"/>
 	<html:link rel="help" href="http://www.w3.org/TR/css-masking-1/#MaskElement"/>
 	<html:link rel="match" href="reference/mask-content-clip-001-ref.svg" />
+	<html:meta name="fuzzy" content="0-38; 0-200"/>
 	<metadata class="flags">svg</metadata>
 	<desc class="assert">The mask element with
 	maskContentUnits="objectBoundingBox" gets clipped. The clipping path has a
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip-transform.svg b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip-transform.svg
index b979ff3..0331022 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip-transform.svg
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip-transform.svg
@@ -7,6 +7,7 @@
 	<html:link rel="help" href="http://www.w3.org/TR/css-masking-1/#svg-masks"/>
 	<html:link rel="help" href="http://www.w3.org/TR/css-masking-1/#MaskElement"/>
 	<html:link rel="match" href="reference/mask-content-clip-002-ref.svg" />
+	<html:meta name="fuzzy" content="0-38; 0-200"/>
 	<metadata class="flags">svg</metadata>
 	<desc class="assert">The mask element with
 	maskContentUnits="userSpaceOnUse" gets clipped. The clipping path has a
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip.svg b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip.svg
index c9f3cf8..09eb2df 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip.svg
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path-svg-content/mask-userspaceonuse-content-clip.svg
@@ -7,6 +7,7 @@
 	<html:link rel="help" href="http://www.w3.org/TR/css-masking-1/#svg-masks"/>
 	<html:link rel="help" href="http://www.w3.org/TR/css-masking-1/#MaskElement"/>
 	<html:link rel="match" href="reference/mask-content-clip-001-ref.svg" />
+	<html:meta name="fuzzy" content="0-38; 0-200"/>
 	<metadata class="flags">svg</metadata>
 	<desc class="assert">The mask element with
 	maskContentUnits="userSpaceOnUse" gets clipped. The clipping path has a
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-001.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-001.html
index d38b909..e40cdb10 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-001.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-001.html
@@ -8,6 +8,7 @@
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
     <link rel="match" href="reference/clip-path-circle-ref.html">
+    <meta name="fuzzy" content="0-38; 0-800">
     <meta name="assert" content="The clip-path property takes the basic shape
     'circle' for clipping. Test absolute values for arguments. On pass you
     should see a green circle and no red.">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-002.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-002.html
index ab672aa..deb199a 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-002.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-002.html
@@ -6,6 +6,7 @@
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
     <link rel="match" href="reference/clip-path-circle-ref.html">
+    <meta name="fuzzy" content="0-38; 0-800">
     <meta name="assert" content="The clip-path property takes the basic shape
     'circle' for clipping. Test percentage values for arguments. If no
     reference box was specified, percentage is relative to border-box. On pass
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-003.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-003.html
index 6c6eadb..24b3f31 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-003.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-003.html
@@ -6,6 +6,7 @@
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
     <link rel="match" href="reference/clip-path-circle-ref.html">
+    <meta name="fuzzy" content="0-38; 0-800">
     <meta name="assert" content="The clip-path property takes the basic shape
     'circle' for clipping. Test percentage value as argument for radius and no
     position arguments. The circle should be in the center of the element. On
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-004.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-004.html
index 6244d38..ddbccf0 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-004.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-004.html
@@ -6,6 +6,7 @@
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
     <link rel="match" href="reference/clip-path-circle-ref.html">
+    <meta name="fuzzy" content="0-38; 0-800">
     <meta name="assert" content="The clip-path property takes the basic shape
     'circle' for clipping. Test percentage value as argument for position and
     no radius argument. The circle must behave like it has a radius of
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-005.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-005.html
index bcabc72d..3a25ce5ff 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-005.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-005.html
@@ -6,6 +6,7 @@
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
     <link rel="match" href="reference/clip-path-circle-ref.html">
+    <meta name="fuzzy" content="0-38; 0-800">
     <meta name="assert" content="The clip-path property takes the basic shape
     'circle' for clipping. The circle has a radius of 'closest-side'. This test
     has a squred div-box. Therefore, 'closest-side', 50% and 'farthest-side'
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-006.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-006.html
index 9de416a..8434edd 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-006.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-006.html
@@ -6,6 +6,7 @@
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
     <link rel="match" href="reference/clip-path-circle-ref.html">
+    <meta name="fuzzy" content="0-38; 0-800">
     <meta name="assert" content="The clip-path property takes the basic shape
     'circle' for clipping. The circle has a radius of 'farthest-side'. This
     test has a squred div-box. Therefore, 'closest-side', 50% and
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-007.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-007.html
index 7ff3fdd..60c5cd5 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-007.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-007.html
@@ -6,6 +6,7 @@
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
     <link rel="match" href="reference/clip-path-circle-2-ref.html">
+    <meta name="fuzzy" content="0-38; 0-800">
     <meta name="assert" content="The clip-path property takes the basic shape
     'circle' for clipping. The clipped div box is twice as wide as it is
     height. With 'closest-side', there should be a full green circle.">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-008.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-008.html
index 31ae8ee5..a931d3e 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-008.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-circle-008.html
@@ -6,6 +6,7 @@
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
     <link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
     <link rel="match" href="reference/clip-path-circle-3-ref.html">
+    <meta name="fuzzy" content="0-38; 0-800">
     <meta name="assert" content="The clip-path property takes the basic shape
     'circle' for clipping. The clipped div box is twice as high as it is
     wide. With 'closest-side', there should be a full green circle.">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-001.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-001.html
index 197f422c..f48b19713 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-001.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-001.html
@@ -6,6 +6,7 @@
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
 	<link rel="match" href="reference/clip-path-ellipse-ref.html">
+	<meta name="fuzzy" content="0-38; 0-400">
 	<meta name="assert" content="The clip-path property takes the basic shape
 	'ellipse' for clipping. Test absolute values for radii and position
 	arguments. On pass you should see a green ellipse.">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-002.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-002.html
index 36f63fc..ecc5ca09 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-002.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-002.html
@@ -6,6 +6,7 @@
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
 	<link rel="match" href="reference/clip-path-ellipse-ref.html">
+	<meta name="fuzzy" content="0-38; 0-400">
 	<meta name="assert" content="The clip-path property takes the basic shape
 	'ellipse' for clipping. Test percentage values for radii and position
 	arguments. Percentage values are relative to a reference box. If no
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-003.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-003.html
index 81ded182..eff287614 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-003.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-003.html
@@ -6,6 +6,7 @@
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
 	<link rel="match" href="reference/clip-path-circle-ref.html">
+	<meta name="fuzzy" content="0-38; 0-800">
 	<meta name="assert" content="The clip-path property takes the basic shape
 	'ellipse' for clipping. Test percentage values for radii and position
 	arguments. Percentage values are relative to a reference box. If no
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-004.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-004.html
index f62f958f..39888409 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-004.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-004.html
@@ -6,6 +6,7 @@
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
 	<link rel="match" href="reference/clip-path-ellipse-ref.html">
+	<meta name="fuzzy" content="0-38; 0-400">
 	<meta name="assert" content="The clip-path property takes the basic shape
 	'ellipse' for clipping. Test absolute values for arguments. On pass you
 	should see a green ellipse.">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-005.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-005.html
index 2e819e7..c7107d2 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-005.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-005.html
@@ -6,6 +6,7 @@
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
 	<link rel="match" href="reference/clip-path-ellipse-ref.html">
+	<meta name="fuzzy" content="0-38; 0-400">
 	<meta name="assert" content="The clip-path property takes the basic shape
 	'ellipse' for clipping. Test percentage values for radii and position
 	arguments. Percentage values are relative to a reference box. If no
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-006.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-006.html
index fb20f024..d0b4efaf 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-006.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-006.html
@@ -6,6 +6,7 @@
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
 	<link rel="match" href="reference/clip-path-ellipse-ref.html">
+	<meta name="fuzzy" content="0-38; 0-400">
 	<meta name="assert" content="The clip-path property takes the basic shape
 	'ellipse' for clipping. Test absolute values for radii and position
 	arguments. On pass you should see a green circle.">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-007.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-007.html
index 42d8b45..2105b36 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-007.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-007.html
@@ -6,6 +6,7 @@
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
 	<link rel="match" href="reference/clip-path-ellipse-ref.html">
+	<meta name="fuzzy" content="0-38; 0-400">
 	<meta name="assert" content="The clip-path property takes the basic shape
 	'ellipse' for clipping. If no further arguments were specified, the radii
 	are 'closest-side' each. The position is initialised to the center of the
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-008.html b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-008.html
index 12df558..4e4ac51 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-008.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/clip-path/clip-path-ellipse-008.html
@@ -6,6 +6,7 @@
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
 	<link rel="help" href="http://www.w3.org/TR/css-masking-1/#propdef-clip-path">
 	<link rel="match" href="reference/clip-path-ellipse-ref.html">
+	<meta name="fuzzy" content="0-38; 0-400">
 	<meta name="assert" content="The clip-path property takes the basic shape
 	'ellipse' for clipping. Test percentage values for radii and position
 	arguments. Percentage values are relative to a reference box. If no
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-wrap-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-wrap-valid-expected.txt
index da752df..4b912a1 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-wrap-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-wrap-valid-expected.txt
@@ -1,13 +1,13 @@
 This is a testharness.js-based test.
-FAIL e.style['text-wrap'] = "wrap" should set the property value assert_not_equals: property should be set got disallowed value ""
+PASS e.style['text-wrap'] = "wrap" should set the property value
 FAIL e.style['text-wrap'] = "nowrap" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['text-wrap'] = "balance" should set the property value assert_not_equals: property should be set got disallowed value ""
+PASS e.style['text-wrap'] = "balance" should set the property value
 FAIL e.style['text-wrap'] = "stable" should set the property value assert_not_equals: property should be set got disallowed value ""
 FAIL e.style['text-wrap'] = "pretty" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['text-wrap'] = "initial" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['text-wrap'] = "inherit" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['text-wrap'] = "unset" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['text-wrap'] = "revert" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['text-wrap'] = "revert-layer" should set the property value assert_not_equals: property should be set got disallowed value ""
+PASS e.style['text-wrap'] = "initial" should set the property value
+PASS e.style['text-wrap'] = "inherit" should set the property value
+PASS e.style['text-wrap'] = "unset" should set the property value
+PASS e.style['text-wrap'] = "revert" should set the property value
+PASS e.style['text-wrap'] = "revert-layer" should set the property value
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-toggle/toggle-aria-roles.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-toggle/toggle-aria-roles.tentative.html
new file mode 100644
index 0000000..7c500fd
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-toggle/toggle-aria-roles.tentative.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML>
+<meta charset="UTF-8">
+<title>CSS Toggles: ARIA roles</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Google" href="http://www.google.com/">
+<link rel="help" href="https://tabatkins.github.io/css-toggle/">
+<link rel="help" href="https://github.com/tabatkins/css-toggle/issues/41">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/toggle-helpers.js"></script>
+<style id="style"></style>
+
+<body>
+
+<div id="container"></div>
+<script>
+
+let aria_role_tests = [
+  // Markup to create the test assertions:
+  //   data-expected-role:  The expected aria role for this element.
+  //
+  // Helper markup to create more markup:
+  //   class=group: group the group with the toggle-group property
+  //   class=group-self: same, but with the self keyword (narrow scope)
+  //   class=root: create a test-role toggle with the toggle-root property
+  //   class=root-group: same, but with the 'group' keyword
+  //   class=root-self: same, but with the 'self' keyword
+  //   class=trigger: toggle-trigger to activate test-role toggle
+  //   class=visibility: toggle-visibility connected to test-role toggle
+  `
+    <div></div>
+  `,
+  `
+    <div class="root">
+      <div></div>
+    </div>
+  `,
+  `
+    <div class="root trigger" data-expected-role="checkbox"></div>
+  `,
+  // Test that ARIA attributes override the toggle inference:
+  `
+    <div class="root trigger" role="link" data-expected-role="link"></div>
+  `,
+  `
+    <div class="root">
+      <div class="trigger" data-expected-role="button"></div>
+    </div>
+  `,
+
+  // Radios and radio groups:
+  `
+    <div class="group" data-expected-role="radiogroup">
+      <div class="root-group trigger" data-expected-role="radio"></div>
+    </div>
+  `,
+  `
+    <div class="group" data-expected-role="radiogroup">
+      <div class="root-group trigger" data-expected-role="radio"></div>
+      <div class="root-group trigger" data-expected-role="radio"></div>
+    </div>
+  `,
+  `
+    <div>
+      <div class="root-group trigger" data-expected-role="radio"></div>
+    </div>
+  `,
+  `
+    <div style="toggle-group: another-group">
+      <div class="root-group trigger" data-expected-role="radio"></div>
+    </div>
+  `,
+  `
+    <div style="toggle-group: another-group, test-role, third-group" data-expected-role="radiogroup">
+      <div class="root-group trigger" data-expected-role="radio"></div>
+    </div>
+  `,
+
+
+  // Checkboxes and checkbox groups:
+  `
+    <div>
+      <div class="root trigger" data-expected-role="checkbox"></div>
+    </div>
+  `,
+  // TODO(dbaron): This is a checkbox group... but we can't distinguish
+  // that with current ARIA roles.
+  `
+    <div>
+      <div class="root trigger" data-expected-role="checkbox"></div>
+      <div class="root trigger" data-expected-role="checkbox"></div>
+    </div>
+  `,
+
+  // Disclosure:
+  // TODO(dbaron): This is a disclosure... but how is it possible to
+  // distinguish with ARIA roles (compare to next test!)?
+  `
+    <div class="root">
+      <div class="trigger" data-expected-role="button"></div>
+      <div class="visibility"></div>
+    </div>
+  `,
+  // This is not a disclosure because it has a toggle-group.
+  `
+    <div class="root-group">
+      <div class="trigger" data-expected-role="button"></div>
+      <div class="visibility"></div>
+    </div>
+  `,
+  // This is button with popup (absolute positioning)
+  // TODO(dbaron): This test doesn't actually distinguish this from
+  // disclosure because the internal kPopUpButton role maps to "button"
+  // in kReverseRoles in ax_object.cc.
+  `
+    <div class="root">
+      <div class="trigger" data-expected-role="button"></div>
+      <div class="visibility" style="position: absolute"></div>
+    </div>
+  `,
+  // This is button with popup (fixed positioning)
+  // TODO(dbaron): This test doesn't actually distinguish this from
+  // disclosure because the internal kPopUpButton role maps to "button"
+  // in kReverseRoles in ax_object.cc.
+  `
+    <div class="root">
+      <div class="trigger" data-expected-role="button"></div>
+      <div class="visibility" style="position: fixed"></div>
+    </div>
+  `,
+  // This is button with popup (popover)
+  // TODO(dbaron): This test doesn't actually distinguish this from
+  // disclosure because the internal kPopUpButton role maps to "button"
+  // in kReverseRoles in ax_object.cc.
+  `
+    <div class="root">
+      <div class="trigger" data-expected-role="button"></div>
+      <div class="visibility" popover="auto"></div>
+    </div>
+  `,
+  // This is disclosure (NOT button with popup) (sticky positioning)
+  `
+    <div class="root">
+      <div class="trigger" data-expected-role="button"></div>
+      <div class="visibility" style="position: sticky"></div>
+    </div>
+  `,
+
+  // Accordion:
+  `
+    <div class="group">
+      <div class="root-group" data-expected-role="region">
+        <div class="trigger" data-expected-role="button"></div>
+        <div class="visibility"></div>
+      </div>
+      <div class="root-group" data-expected-role="region">
+        <div class="trigger" data-expected-role="button"></div>
+        <div class="visibility"></div>
+      </div>
+    </div>
+  `,
+  // Not accordion because of other siblings:
+  `
+    <div class="group">
+      <div class="root-group">
+        <div class="trigger" data-expected-role="button"></div>
+        <div class="visibility"></div>
+      </div>
+      <div class="root-group">
+        <div class="trigger" data-expected-role="button"></div>
+        <div class="visibility"></div>
+      </div>
+      <div></div>
+      <div></div>
+      <div></div>
+    </div>
+  `,
+
+  // Tree:
+  // TODO(dbaron): This should probably also work with the toggles on
+  // the <button>!
+  // TODO(dbaron): This should probably mark the non-interactive items
+  // as treeitem as well!
+  // TODO(dbaron): Do the elements getting the roles here make sense?
+  // TODO(dbaron): The requirement for having multiple disclosure-ish
+  // children to qualify as accordion-ish probably doesn't make sense
+  // here.  The test below is basically the minimal example that gets
+  // detected as a tree, but simpler things definitely should be!
+  // TODO(dbaron): The inner parts of the tree should also be getting
+  // tree roles!
+  `
+    <ul data-expected-role="tree">
+      <li class="root-self" data-expected-role="group">
+        <button class="trigger" data-expected-role="treeitem"></button>
+        <ul class="visibility" data-expected-role="list">
+          <li>item</li>
+          <li class="root-self">
+            <button class="trigger" data-expected-role="button"></button>
+            <ul class="visibility" data-expected-role="list">
+              <li>item</li>
+              <li>item</li>
+            </ul>
+          </li>
+          <li class="root-self">
+            <button class="trigger" data-expected-role="button"></button>
+            <ul class="visibility" data-expected-role="list">
+              <li>item</li>
+              <li>item</li>
+            </ul>
+          </li>
+        </ul>
+      </li>
+      <li class="root-self" data-expected-role="group">
+        <button class="trigger" data-expected-role="treeitem"></button>
+        <ul class="visibility" data-expected-role="list">
+          <li class="root-self">
+            <button class="trigger" data-expected-role="button"></button>
+            <ul class="visibility" data-expected-role="list">
+              <li>item</li>
+              <li>item</li>
+            </ul>
+          </li>
+          <li class="root-self">
+            <button class="trigger" data-expected-role="button"></button>
+            <ul class="visibility" data-expected-role="list">
+              <li>item</li>
+              <li>item</li>
+            </ul>
+          </li>
+        </ul>
+      </li>
+    </ul>
+  `,
+
+  // Tabs:
+  `
+    <section class="group" data-expected-role="tablist">
+      <h1 class="root-group trigger" data-expected-role="tab"></h1>
+      <div class="visibility" data-expected-role="tabpanel"></div>
+      <h1 class="root-group trigger" data-expected-role="tab"></h1>
+      <div class="visibility" data-expected-role="tabpanel"></div>
+      <h1 class="root-group trigger" data-expected-role="tab"></h1>
+      <div class="visibility" data-expected-role="tabpanel"></div>
+    </section>
+  `,
+  `
+    <section class="group" data-expected-role="tablist">
+      <h1 class="root-group trigger" data-expected-role="tab"></h1>
+      <div class="visibility" data-expected-role="tabpanel"></div>
+      <h1 class="root-group trigger" data-expected-role="tab"></h1>
+      <div class="visibility" data-expected-role="tabpanel"></div>
+      <div></div>
+    </section>
+  `,
+  `
+    <section class="group" data-expected-role="tablist">
+      <h1 class="root-group trigger" data-expected-role="tab"></h1>
+      <div class="visibility" data-expected-role="tabpanel"></div>
+      <h1 class="root-group trigger" data-expected-role="tab"></h1>
+      <div class="visibility" data-expected-role="tabpanel"></div>
+      <h1 style="toggle-root: other-toggle; toggle-trigger: other-toggle" data-expected-role="checkbox"></h1>
+    </section>
+  `,
+  `
+    <section class="group" data-expected-role="tablist">
+      <h1 class="root-group trigger" data-expected-role="tab"></h1>
+      <div class="visibility" data-expected-role="tabpanel"></div>
+      <h1 class="root-group trigger" data-expected-role="tab"></h1>
+      <div class="visibility" data-expected-role="tabpanel"></div>
+      <h1 style="toggle-root: other-toggle; toggle-trigger: other-toggle" data-expected-role="button"></h1>
+      <div style="toggle-visibility: toggle other-toggle"></div>
+    </section>
+  `,
+  // TODO(https://crbug.com/758089): The expected role for the <section>
+  // should be generic rather than null!
+  `
+    <section class="group" data-expected-role="null">
+      <h1 class="root-group trigger" data-expected-role="button"></h1>
+      <div class="visibility"></div>
+      <h1 class="root-group trigger" data-expected-role="button"></h1>
+      <div class="visibility"></div>
+      <div></div>
+      <div></div>
+      <div></div>
+      <div></div>
+    </section>
+  `,
+  `
+    <section class="group" data-expected-role="radiogroup">
+      <h1 class="root-group trigger" data-expected-role="radio"></h1>
+      <h1 class="root-group trigger" data-expected-role="radio"></h1>
+      <div></div>
+      <div></div>
+      <div></div>
+      <div></div>
+    </section>
+  `,
+];
+
+for (let t of aria_role_tests) {
+  promise_test(async function() {
+    container.innerHTML = t;
+
+    for (let e of container.querySelectorAll('.group')) {
+      e.style.toggleGroup = "test-role";
+    }
+    for (let e of container.querySelectorAll('.group-self')) {
+      e.style.toggleGroup = "test-role self";
+    }
+    for (let e of container.querySelectorAll('.root')) {
+      e.style.toggleRoot = "test-role";
+    }
+    for (let e of container.querySelectorAll('.root-group')) {
+      e.style.toggleRoot = "test-role group";
+    }
+    for (let e of container.querySelectorAll('.root-self')) {
+      e.style.toggleRoot = "test-role self";
+    }
+    for (let e of container.querySelectorAll('.trigger')) {
+      e.style.toggleTrigger = "test-role";
+    }
+    for (let e of container.querySelectorAll('.visibility')) {
+      e.style.toggleVisibility = "toggle test-role";
+    }
+
+    for (let e of container.querySelectorAll('.root, .root-nogroup')) {
+      await wait_for_toggle_creation(e);
+    }
+
+    let count = 0;
+    for (let e of container.querySelectorAll("*")) {
+      if (e == container)
+        continue;
+
+      let expected_role = "generic";
+      if (e.hasAttribute("data-expected-role")) {
+        expected_role = e.getAttribute("data-expected-role");
+        // TODO(https://crbug.com/758089): See above regarding <section>;
+        // this null handling should eventually be removed.
+        if (expected_role === "null") {
+          expected_role = null;
+        }
+      }
+      ++count;
+      // NOTE:  This relies on Element.computedRole, which is an
+      // experimental feature behind the ComputedAccessibilityInfo flag
+      // in blink.
+      assert_equals(e.computedRole, expected_role, `role on ${e.tagName} element (#${count})`);
+    }
+
+  }, `aria role test: ${t}`);
+}
+
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/resources/worker-blob-fetcher.html b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/resources/worker-blob-fetcher.html
index 18a454b..5a50271e 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/resources/worker-blob-fetcher.html
+++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/resources/worker-blob-fetcher.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <meta charset="utf-8">
-<title>Worker Fetcher</title>
+<title>Worker Blob Fetcher</title>
 <script>
   window.addEventListener("message", function (evt) {
     const { url } = evt.data;
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-blob-fetch.https.window.js b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-blob-fetch.https.window.js
new file mode 100644
index 0000000..3b811f28
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-blob-fetch.https.window.js
@@ -0,0 +1,152 @@
+// META: script=/common/utils.js
+// META: script=resources/support.sub.js
+//
+// Spec: https://wicg.github.io/private-network-access/#integration-fetch
+//
+// These tests check that fetches from within `Worker` scripts loaded from blob
+// URLs are subject to Private Network Access checks, just like fetches from
+// within documents.
+//
+// This file covers only those tests that must execute in a secure context.
+// Other tests are defined in: worker-blob-fetch.window.js
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: { server: Server.HTTPS_LOCAL },
+  target: { server: Server.HTTPS_LOCAL },
+  expected: WorkerFetchTestResult.SUCCESS,
+}), "local to local: success.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: { server: Server.HTTPS_PRIVATE },
+  target: {
+    server: Server.HTTPS_LOCAL,
+    behavior: { response: ResponseBehavior.allowCrossOrigin() },
+  },
+  expected: WorkerFetchTestResult.FAILURE,
+}), "private to local: failed preflight.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: { server: Server.HTTPS_PRIVATE },
+  target: {
+    server: Server.HTTPS_LOCAL,
+    behavior: {
+      preflight: PreflightBehavior.success(token()),
+      response: ResponseBehavior.allowCrossOrigin(),
+    },
+  },
+  expected: WorkerFetchTestResult.SUCCESS,
+}), "private to local: success.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: { server: Server.HTTPS_PRIVATE },
+  target: { server: Server.HTTPS_PRIVATE },
+  expected: WorkerFetchTestResult.SUCCESS,
+}), "private to private: success.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: { server: Server.HTTPS_PUBLIC },
+  target: {
+    server: Server.HTTPS_LOCAL,
+    behavior: { response: ResponseBehavior.allowCrossOrigin() },
+  },
+  expected: WorkerFetchTestResult.FAILURE,
+}), "public to local: failed preflight.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: { server: Server.HTTPS_PUBLIC },
+  target: {
+    server: Server.HTTPS_LOCAL,
+    behavior: {
+      preflight: PreflightBehavior.success(token()),
+      response: ResponseBehavior.allowCrossOrigin(),
+    },
+  },
+  expected: WorkerFetchTestResult.SUCCESS,
+}), "public to local: success.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: { server: Server.HTTPS_PUBLIC },
+  target: {
+    server: Server.HTTPS_PRIVATE,
+    behavior: { response: ResponseBehavior.allowCrossOrigin() },
+  },
+  expected: WorkerFetchTestResult.FAILURE,
+}), "public to private: failed preflight.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: { server: Server.HTTPS_PUBLIC },
+  target: {
+    server: Server.HTTPS_PRIVATE,
+    behavior: {
+      preflight: PreflightBehavior.success(token()),
+      response: ResponseBehavior.allowCrossOrigin(),
+    },
+  },
+  expected: WorkerFetchTestResult.SUCCESS,
+}), "public to private: success.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: { server: Server.HTTPS_PUBLIC },
+  target: { server: Server.HTTPS_PUBLIC },
+  expected: WorkerFetchTestResult.SUCCESS,
+}), "public to public: success.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: {
+    server: Server.HTTPS_LOCAL,
+    treatAsPublic: true,
+  },
+  target: { server: Server.HTTPS_LOCAL },
+  expected: WorkerFetchTestResult.FAILURE,
+}), "treat-as-public to local: failed preflight.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: {
+    server: Server.HTTPS_LOCAL,
+    treatAsPublic: true,
+  },
+  target: {
+    server: Server.HTTPS_LOCAL,
+    behavior: { preflight: PreflightBehavior.optionalSuccess(token()) },
+  },
+  expected: WorkerFetchTestResult.SUCCESS,
+}), "treat-as-public to local: success.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: {
+    server: Server.HTTPS_LOCAL,
+    treatAsPublic: true,
+  },
+  target: {
+    server: Server.HTTPS_PRIVATE,
+    behavior: { response: ResponseBehavior.allowCrossOrigin() },
+  },
+  expected: WorkerFetchTestResult.FAILURE,
+}), "treat-as-public to private: failed preflight.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: {
+    server: Server.HTTPS_LOCAL,
+    treatAsPublic: true,
+  },
+  target: {
+    server: Server.HTTPS_PRIVATE,
+    behavior: {
+      preflight: PreflightBehavior.success(token()),
+      response: ResponseBehavior.allowCrossOrigin(),
+    },
+  },
+  expected: WorkerFetchTestResult.SUCCESS,
+}), "treat-as-public to private: success.");
+
+promise_test(t => workerBlobFetchTest(t, {
+  source: {
+    server: Server.HTTPS_LOCAL,
+    treatAsPublic: true,
+  },
+  target: {
+    server: Server.HTTPS_PUBLIC,
+    behavior: { response: ResponseBehavior.allowCrossOrigin() },
+  },
+  expected: WorkerFetchTestResult.SUCCESS,
+}), "treat-as-public to public: success.");
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-blob-fetch.window.js b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-blob-fetch.window.js
index 8037414..27cfa15 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-blob-fetch.window.js
+++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/worker-blob-fetch.window.js
@@ -8,7 +8,7 @@
 // within documents.
 //
 // This file covers only those tests that must execute in a non-secure context.
-// Other tests are defined in: worker-fetch.https.window.js
+// Other tests are defined in: worker-blob-fetch.https.window.js
 
 promise_test(t => workerBlobFetchTest(t, {
   source: { server: Server.HTTP_LOCAL },
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.alone-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.alone-expected.html
new file mode 100644
index 0000000..32e52ae9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.alone-expected.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.endlayer.alone</title>
+<h1>2d.layer.endlayer.alone</h1>
+<p class="desc">A test to make sure a single endLayer with no beginLayer is a no-op.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)'; ctx.fillRect(60, 60, 75, 50); ctx.globalAlpha = 0.5;
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)'; ctx.fillRect(50, 50, 75, 50); ctx.fillStyle = 'rgba(0, 255, 0, 1)'; ctx.fillRect(70, 70, 75, 50);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.alone.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.alone.html
new file mode 100644
index 0000000..a7a5933
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.alone.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.endlayer.alone-expected.html">
+<title>Canvas test: 2d.layer.endlayer.alone</title>
+<h1>2d.layer.endlayer.alone</h1>
+<p class="desc">A test to make sure a single endLayer with no beginLayer is a no-op.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+  ctx.globalAlpha = 0.5;
+
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.unmatched-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.unmatched-expected.html
new file mode 100644
index 0000000..e6dd85b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.unmatched-expected.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.endlayer.unmatched</title>
+<h1>2d.layer.endlayer.unmatched</h1>
+<p class="desc">A test to make sure an unmatched endLayer is a no-op and has no effect on the code following it.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+
+  ctx.globalAlpha = 0.5;
+
+  ctx.beginLayer();
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.unmatched.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.unmatched.html
new file mode 100644
index 0000000..5f53983
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.endlayer.unmatched.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.endlayer.unmatched-expected.html">
+<title>Canvas test: 2d.layer.endlayer.unmatched</title>
+<h1>2d.layer.endlayer.unmatched</h1>
+<p class="desc">A test to make sure an unmatched endLayer is a no-op and has no effect on the code following it.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+
+  ctx.globalAlpha = 0.5;
+
+  // This endlayer call should no-op.
+  ctx.endLayer();
+
+  ctx.beginLayer();
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.alpha.filter.shadow-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.alpha.filter.shadow-expected.html
index 9a49e366..857db7b 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.alpha.filter.shadow-expected.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.alpha.filter.shadow-expected.html
@@ -17,7 +17,7 @@
   ctx.fill(circle);
 
   ctx.globalAlpha = 0.5;
-  ctx.filter = 'sepia(0.5)';
+  ctx.filter = 'sepia(0.5) drop-shadow(5px 5px 0px #81e)';
   ctx.shadowOffsetX = -10;
   ctx.shadowOffsetY = 10;
   ctx.shadowColor = 'orange';
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.alpha.filter.shadow.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.alpha.filter.shadow.html
index cccdf42..3b4727b 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.alpha.filter.shadow.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.alpha.filter.shadow.html
@@ -19,7 +19,7 @@
   ctx.fill(circle);
 
   ctx.globalAlpha = 0.5;
-  ctx.filter = 'sepia(0.5)';
+  ctx.filter = 'sepia(0.5) drop-shadow(5px 5px 0px #81e)';
   ctx.shadowOffsetX = -10;
   ctx.shadowOffsetY = 10;
   ctx.shadowColor = 'orange';
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.no_global_states-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.no_global_states-expected.html
new file mode 100644
index 0000000..139ff8ac
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.no_global_states-expected.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.global-states.no_global_states</title>
+<h1>2d.layer.global-states.no_global_states</h1>
+<p class="desc">Checks that layers correctly use global render states.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+
+  var circle = new Path2D();
+  circle.arc(90, 90, 45, 0, 2 * Math.PI);
+  ctx.fill(circle);
+
+  // No global states.
+
+  canvas2 = document.createElement("canvas");
+  ctx2 = canvas2.getContext("2d");
+
+  ctx2.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx2.fillRect(50, 50, 75, 50);
+  ctx2.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx2.fillRect(70, 70, 75, 50);
+
+  ctx.drawImage(canvas2, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.no_global_states.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.no_global_states.html
new file mode 100644
index 0000000..93d2bdeb
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.global-states.no_global_states.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.global-states.no_global_states-expected.html">
+<title>Canvas test: 2d.layer.global-states.no_global_states</title>
+<h1>2d.layer.global-states.no_global_states</h1>
+<p class="desc">Checks that layers correctly use global render states.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+
+  var circle = new Path2D();
+  circle.arc(90, 90, 45, 0, 2 * Math.PI);
+  ctx.fill(circle);
+
+  // No global states.
+
+  ctx.beginLayer();
+
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.nested-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.nested-expected.html
new file mode 100644
index 0000000..906db700
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.nested-expected.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.nested</title>
+<h1>2d.layer.nested</h1>
+<p class="desc">Tests nested canvas layers.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  var circle = new Path2D(); circle.arc(90, 90, 40, 0, 2 * Math.PI); ctx.fill(circle);
+  ctx.globalCompositeOperation = 'source-in';
+  canvas2 = document.createElement("canvas"); ctx2 = canvas2.getContext("2d");
+  ctx2.fillStyle = 'rgba(0, 0, 255, 1)'; ctx2.fillRect(60, 60, 75, 50);
+  ctx2.globalAlpha = 0.5;
+  canvas3 = document.createElement("canvas"); ctx3 = canvas3.getContext("2d");
+  ctx3.fillStyle = 'rgba(225, 0, 0, 1)'; ctx3.fillRect(50, 50, 75, 50); ctx3.fillStyle = 'rgba(0, 255, 0, 1)'; ctx3.fillRect(70, 70, 75, 50);
+  ctx2.drawImage(canvas3, 0, 0); ctx.drawImage(canvas2, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.nested.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.nested.html
new file mode 100644
index 0000000..a508d8e5
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.nested.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.nested-expected.html">
+<title>Canvas test: 2d.layer.nested</title>
+<h1>2d.layer.nested</h1>
+<p class="desc">Tests nested canvas layers.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  var circle = new Path2D();
+  circle.arc(90, 90, 40, 0, 2 * Math.PI);
+  ctx.fill(circle);
+
+  ctx.globalCompositeOperation = 'source-in';
+
+  ctx.beginLayer();
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+
+  ctx.globalAlpha = 0.5;
+
+  ctx.beginLayer();
+
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+
+  ctx.endLayer();
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.restore-style-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.restore-style-expected.html
new file mode 100644
index 0000000..4893ecdf
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.restore-style-expected.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.restore-style</title>
+<h1>2d.layer.restore-style</h1>
+<p class="desc">Test that ensure layers restores style values upon endLayer.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)'; ctx.fillRect(50, 50, 75, 50); ctx.globalAlpha = 0.5;
+  canvas2 = document.createElement("canvas"); ctx2 = canvas2.getContext("2d"); ctx2.fillStyle = 'rgba(225, 0, 0, 1)'; ctx2.fillRect(60, 60, 75, 50); ctx.drawImage(canvas2, 0, 0);
+  ctx.fillRect(70, 70, 75, 50);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.restore-style.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.restore-style.html
new file mode 100644
index 0000000..2537f40
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.restore-style.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.restore-style-expected.html">
+<meta name=fuzzy content="maxDifference=0-1; totalPixels=0-950">
+<title>Canvas test: 2d.layer.restore-style</title>
+<h1>2d.layer.restore-style</h1>
+<p class="desc">Test that ensure layers restores style values upon endLayer.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0,0,255,1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.globalAlpha = 0.5;
+
+  ctx.beginLayer();
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+  ctx.endLayer();
+
+  ctx.fillRect(70, 70, 75, 50);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.several-complex-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.several-complex-expected.html
new file mode 100644
index 0000000..afd03e2
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.several-complex-expected.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.several-complex</title>
+<h1>2d.layer.several-complex</h1>
+<p class="desc">Test to ensure beginlayer works for filter, alpha and shadow, even with consecutive layers.</p>
+<canvas id="canvas" width="500" height="500">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)'; ctx.fillRect(50, 50, 95, 70);
+  ctx.globalAlpha = 0.5; ctx.filter = 'sepia(0.5)'; ctx.shadowOffsetX = -10; ctx.shadowOffsetY = 10; ctx.shadowColor = 'orange';
+  var canvas2 = [5]; var ctx2 = [5];
+  for (let i = 0; i < 5; i++) { canvas2[i] = document.createElement("canvas"); ctx2[i] = canvas2[i].getContext("2d"); ctx2[i].fillStyle = 'rgba(225, 0, 0, 1)'; ctx2[i].fillRect(60, 40, 75, 50); ctx2[i].fillStyle = 'rgba(0, 255, 0, 1)'; ctx2[i].fillRect(80, 60, 75, 50);
+  ctx.drawImage(canvas2[i], i, i); }
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.several-complex.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.several-complex.html
new file mode 100644
index 0000000..f99357b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.several-complex.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.several-complex-expected.html">
+<meta name=fuzzy content="maxDifference=0-3; totalPixels=0-6318">
+<title>Canvas test: 2d.layer.several-complex</title>
+<h1>2d.layer.several-complex</h1>
+<p class="desc">Test to ensure beginlayer works for filter, alpha and shadow, even with consecutive layers.</p>
+<canvas id="canvas" width="500" height="500">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(50, 50, 95, 70);
+
+  ctx.globalAlpha = 0.5;
+  ctx.filter = 'sepia(0.5)';
+  ctx.shadowOffsetX = -10;
+  ctx.shadowOffsetY = 10;
+  ctx.shadowColor = 'orange';
+
+
+  for (let i = 0; i < 5; i++) {
+    ctx.beginLayer();
+
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(60 + i, 40 + i, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(80 + i, 60 + i, 75, 50);
+
+    ctx.endLayer();
+  }
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-endlayer-noop-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-endlayer-noop-expected.html
deleted file mode 100644
index 7f4937ec..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-endlayer-noop-expected.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<p class="desc"> A test to make sure an unmatched endLayer is a no-op and has no effect on the code following it. </p>
-<script>
-var canvas, ctx;
-canvas = document.createElement("canvas");
-canvas.width = 200;
-canvas.height = 200;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-ctx.fillStyle = 'rgba(0,0,255,1)';
-ctx.fillRect(60,60,75,50);
-
-ctx.globalAlpha = 0.5;
-
-ctx.beginLayer();
-
-ctx.fillStyle = 'rgba(225,0,0,1)';
-ctx.fillRect(50,50,75,50);
-ctx.fillStyle = 'rgba(0,255,0,1)';
-ctx.fillRect(70,70,75,50);
-
-ctx.endLayer();
-
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-endlayer-noop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-endlayer-noop.html
deleted file mode 100644
index aae72cf..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-endlayer-noop.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<link rel="match" href="layers-endlayer-noop-expected.html">
-<p class="desc"> A test to make sure an unmatched endLayer is a no-op and has no effect on the code following it. </p>
-<script>
-var canvas, ctx;
-canvas = document.createElement("canvas");
-canvas.width = 200;
-canvas.height = 200;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-ctx.fillStyle = 'rgba(0,0,255,1)';
-ctx.fillRect(60,60,75,50);
-
-ctx.globalAlpha = 0.5;
-
-// This endlayer call should no-op.
-ctx.endLayer();
-ctx.beginLayer();
-
-ctx.fillStyle = 'rgba(225,0,0,1)';
-ctx.fillRect(50,50,75,50);
-ctx.fillStyle = 'rgba(0,255,0,1)';
-ctx.fillRect(70,70,75,50);
-
-ctx.endLayer();
-
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-loneendlayer-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-loneendlayer-expected.html
deleted file mode 100644
index cec5a54..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-loneendlayer-expected.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<p class="desc"> A test to make sure a single endLayer with no beginLayer is a no-op. </p>
-<script>
-var canvas, ctx;
-canvas = document.createElement("canvas");
-canvas.width = 200;
-canvas.height = 200;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-ctx.fillStyle = 'rgba(0,0,255,1)';
-ctx.fillRect(60,60,75,50);
-ctx.globalAlpha = 0.5;
-
-ctx.fillStyle = 'rgba(225,0,0,1)';
-ctx.fillRect(50,50,75,50);
-ctx.fillStyle = 'rgba(0,255,0,1)';
-ctx.fillRect(70,70,75,50);
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-loneendlayer.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-loneendlayer.html
deleted file mode 100644
index f0584d3..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-loneendlayer.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<link rel="match" href="layers-loneendlayer-expected.html">
-<p class="desc"> A test to make sure a single endLayer with no beginLayer is a no-op. </p>
-<script>
-var canvas, ctx;
-canvas = document.createElement("canvas");
-canvas.width = 200;
-canvas.height = 200;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-ctx.fillStyle = 'rgba(0,0,255,1)';
-ctx.fillRect(60,60,75,50);
-ctx.globalAlpha = 0.5;
-
-ctx.fillStyle = 'rgba(225,0,0,1)';
-ctx.fillRect(50,50,75,50);
-ctx.fillStyle = 'rgba(0,255,0,1)';
-ctx.fillRect(70,70,75,50);
-
-ctx.endLayer();
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-nested-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-nested-expected.html
deleted file mode 100644
index 4647996..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-nested-expected.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<script>
-var canvas, ctx;
-canvas = document.createElement("canvas");
-canvas.width = 200;
-canvas.height = 200;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-
-var circle = new Path2D();
-circle.arc(90, 90, 40, 0, 2 * Math.PI);
-ctx.fill(circle);
-
-ctx.globalCompositeOperation = 'source-in';
-
-canvas2 = document.createElement("canvas");
-ctx2 = canvas2.getContext("2d");
-
-ctx2.fillStyle = 'rgba(0,0,255,1)';
-ctx2.fillRect(60,60,75,50);
-
-ctx2.globalAlpha = 0.5;
-
-canvas3 = document.createElement("canvas");
-ctx3 = canvas3.getContext("2d");
-
-ctx3.fillStyle = 'rgba(225,0,0,1)';
-ctx3.fillRect(50,50,75,50);
-ctx3.fillStyle = 'rgba(0,255,0,1)';
-ctx3.fillRect(70,70,75,50);
-
-ctx2.drawImage(canvas3,0,0);
-ctx.drawImage(canvas2,0,0);
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-nested.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-nested.html
deleted file mode 100644
index fb52976..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-nested.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<link rel="match" href="layers-nested-expected.html">
-<meta name=fuzzy content="maxDifference=0-2; totalPixels=0-14000">
-<script>
-var canvas, ctx;
-canvas = document.createElement("canvas");
-canvas.width = 200;
-canvas.height = 200;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-
-var circle = new Path2D();
-circle.arc(90, 90, 40, 0, 2 * Math.PI);
-ctx.fill(circle);
-
-ctx.globalCompositeOperation = 'source-in';
-
-ctx.beginLayer();
-
-ctx.fillStyle = 'rgba(0,0,255,1)';
-ctx.fillRect(60,60,75,50);
-
-ctx.globalAlpha = 0.5;
-
-ctx.beginLayer();
-
-ctx.fillStyle = 'rgba(225,0,0,1)';
-ctx.fillRect(50,50,75,50);
-ctx.fillStyle = 'rgba(0,255,0,1)';
-ctx.fillRect(70,70,75,50);
-
-ctx.endLayer();
-ctx.endLayer();
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-restorestyle-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-restorestyle-expected.html
deleted file mode 100644
index f67a457..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-restorestyle-expected.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<p class="desc"> Test that ensure layers restores style values upon endLayer. </p>
-<script>
-var canvas, ctx;
-canvas = document.createElement("canvas");
-canvas.width = 200;
-canvas.height = 200;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-ctx.fillStyle = 'rgba(0,0,255,1)';
-ctx.fillRect(50,50,75,50);
-ctx.globalAlpha = 0.5;
-
-canvas2 = document.createElement("canvas");
-ctx2 = canvas2.getContext("2d");
-ctx2.fillStyle = 'rgba(225,0,0,1)';
-ctx2.fillRect(60,60,75,50);
-
-ctx.drawImage(canvas2,0,0);
-
-ctx.fillRect(70,70,75,50);
-
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-restorestyle.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-restorestyle.html
deleted file mode 100644
index 659b6c0..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-restorestyle.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<link rel="match" href="layers-restorestyle-expected.html">
-<meta name=fuzzy content="maxDifference=0-1; totalPixels=0-14000">
-<p class="desc"> Test that ensure layers restores style values upon endLayer. </p>
-<script>
-var canvas, ctx;
-canvas = document.createElement("canvas");
-canvas.width = 200;
-canvas.height = 200;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-ctx.fillStyle = 'rgba(0,0,255,1)';
-ctx.fillRect(50,50,75,50);
-ctx.globalAlpha = 0.5;
-
-ctx.beginLayer();
-
-ctx.fillStyle = 'rgba(225,0,0,1)';
-ctx.fillRect(60,60,75,50);
-
-ctx.endLayer();
-
-ctx.fillRect(70,70,75,50);
-
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-several-complex-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-several-complex-expected.html
deleted file mode 100644
index eca81cd..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-several-complex-expected.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<p class="desc"> Test to ensure beginlayer works for filter, alpha and shadow, even with consecutive layers. </p>
-<script>
-var canvas;
-var ctx;
-canvas = document.createElement("canvas");
-canvas.width = 500;
-canvas.height = 500;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-ctx.fillStyle = 'rgba(0,0,255,1)';
-ctx.fillRect(50,50,95,70);
-
-ctx.globalAlpha = 0.5;
-ctx.filter = 'sepia(0.5)';
-ctx.shadowOffsetX = -10;
-ctx.shadowOffsetY = 10;
-ctx.shadowColor = 'orange';
-
-var canvas2 = [5];
-var ctx2 = [5];
-
-for(let i=0; i<5; i++){
-  canvas2[i] = document.createElement("canvas");
-  ctx2[i] = canvas2[i].getContext("2d");
-  ctx2[i].fillStyle = 'rgba(225,0,0,1)';
-  ctx2[i].fillRect(60,40,75,50);
-  ctx2[i].fillStyle = 'rgba(0,255,0,1)';
-  ctx2[i].fillRect(80,60,75,50);
-
-  ctx.drawImage(canvas2[i],i,i);
-}
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-several-complex.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-several-complex.html
deleted file mode 100644
index 66840bba..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/layers/layers-several-complex.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<link rel="match" href="layers-several-complex-expected.html">
-<meta name=fuzzy content="maxDifference=0-3; totalPixels=0-19000">
-<p class="desc"> Test to ensure beginlayer works for filter, alpha and shadow, even with consecutive layers. </p>
-<script>
-var canvas, ctx;
-canvas = document.createElement("canvas");
-canvas.width = 500;
-canvas.height = 500;
-document.body.appendChild(canvas);
-
-ctx = canvas.getContext("2d");
-ctx.fillStyle = 'rgba(0,0,255,1)';
-ctx.fillRect(50,50,95,70);
-
-ctx.globalAlpha = 0.5;
-ctx.filter = 'sepia(0.5)';
-ctx.shadowOffsetX = -10;
-ctx.shadowOffsetY = 10;
-ctx.shadowColor = 'orange';
-
-
-for(let i=0; i<5; i++){
-  ctx.beginLayer();
-
-  ctx.fillStyle = 'rgba(225,0,0,1)';
-  ctx.fillRect(60+i,40+i,75,50);
-  ctx.fillStyle = 'rgba(0,255,0,1)';
-  ctx.fillRect(80+i,60+i,75,50);
-
-  ctx.endLayer();
-}
-
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.alone-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.alone-expected.html
new file mode 100644
index 0000000..32e52ae9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.alone-expected.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.endlayer.alone</title>
+<h1>2d.layer.endlayer.alone</h1>
+<p class="desc">A test to make sure a single endLayer with no beginLayer is a no-op.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)'; ctx.fillRect(60, 60, 75, 50); ctx.globalAlpha = 0.5;
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)'; ctx.fillRect(50, 50, 75, 50); ctx.fillStyle = 'rgba(0, 255, 0, 1)'; ctx.fillRect(70, 70, 75, 50);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.alone.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.alone.html
new file mode 100644
index 0000000..f088c89
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.alone.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.endlayer.alone-expected.html">
+<title>Canvas test: 2d.layer.endlayer.alone</title>
+<h1>2d.layer.endlayer.alone</h1>
+<p class="desc">A test to make sure a single endLayer with no beginLayer is a no-op.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const offscreen_canvas = new OffscreenCanvas(200, 200);
+  const ctx = offscreen_canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+  ctx.globalAlpha = 0.5;
+
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+
+  ctx.endLayer();
+
+  const canvas = document.getElementById("canvas");
+  canvas.getContext('2d').drawImage(offscreen_canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.alone.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.alone.w.html
new file mode 100644
index 0000000..96c80115
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.alone.w.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.endlayer.alone-expected.html">
+<title>Canvas test: 2d.layer.endlayer.alone</title>
+<h1>2d.layer.endlayer.alone</h1>
+<p class="desc">A test to make sure a single endLayer with no beginLayer is a no-op.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const oc = new OffscreenCanvas(200, 200);
+    const ctx = oc.getContext('2d');
+
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+    ctx.globalAlpha = 0.5;
+
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(70, 70, 75, 50);
+
+    ctx.endLayer();
+
+    const bitmap = oc.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched-expected.html
new file mode 100644
index 0000000..e6dd85b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched-expected.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.endlayer.unmatched</title>
+<h1>2d.layer.endlayer.unmatched</h1>
+<p class="desc">A test to make sure an unmatched endLayer is a no-op and has no effect on the code following it.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+
+  ctx.globalAlpha = 0.5;
+
+  ctx.beginLayer();
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.html
new file mode 100644
index 0000000..a87c736
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.endlayer.unmatched-expected.html">
+<title>Canvas test: 2d.layer.endlayer.unmatched</title>
+<h1>2d.layer.endlayer.unmatched</h1>
+<p class="desc">A test to make sure an unmatched endLayer is a no-op and has no effect on the code following it.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const offscreen_canvas = new OffscreenCanvas(200, 200);
+  const ctx = offscreen_canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+
+  ctx.globalAlpha = 0.5;
+
+  // This endlayer call should no-op.
+  ctx.endLayer();
+
+  ctx.beginLayer();
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+  ctx.endLayer();
+
+  const canvas = document.getElementById("canvas");
+  canvas.getContext('2d').drawImage(offscreen_canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.w.html
new file mode 100644
index 0000000..9507809a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.w.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.endlayer.unmatched-expected.html">
+<title>Canvas test: 2d.layer.endlayer.unmatched</title>
+<h1>2d.layer.endlayer.unmatched</h1>
+<p class="desc">A test to make sure an unmatched endLayer is a no-op and has no effect on the code following it.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const oc = new OffscreenCanvas(200, 200);
+    const ctx = oc.getContext('2d');
+
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+
+    ctx.globalAlpha = 0.5;
+
+    // This endlayer call should no-op.
+    ctx.endLayer();
+
+    ctx.beginLayer();
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(70, 70, 75, 50);
+    ctx.endLayer();
+
+    const bitmap = oc.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow-expected.html
index 9a49e366..857db7b 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow-expected.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow-expected.html
@@ -17,7 +17,7 @@
   ctx.fill(circle);
 
   ctx.globalAlpha = 0.5;
-  ctx.filter = 'sepia(0.5)';
+  ctx.filter = 'sepia(0.5) drop-shadow(5px 5px 0px #81e)';
   ctx.shadowOffsetX = -10;
   ctx.shadowOffsetY = 10;
   ctx.shadowColor = 'orange';
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow.html
index 3e5e5bd..07d5d79 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow.html
@@ -19,7 +19,7 @@
   ctx.fill(circle);
 
   ctx.globalAlpha = 0.5;
-  ctx.filter = 'sepia(0.5)';
+  ctx.filter = 'sepia(0.5) drop-shadow(5px 5px 0px #81e)';
   ctx.shadowOffsetX = -10;
   ctx.shadowOffsetY = 10;
   ctx.shadowColor = 'orange';
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow.w.html
index 9fac030..40039c247 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow.w.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.alpha.filter.shadow.w.html
@@ -21,7 +21,7 @@
     ctx.fill(circle);
 
     ctx.globalAlpha = 0.5;
-    ctx.filter = 'sepia(0.5)';
+    ctx.filter = 'sepia(0.5) drop-shadow(5px 5px 0px #81e)';
     ctx.shadowOffsetX = -10;
     ctx.shadowOffsetY = 10;
     ctx.shadowColor = 'orange';
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.no_global_states-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.no_global_states-expected.html
new file mode 100644
index 0000000..139ff8ac
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.no_global_states-expected.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.global-states.no_global_states</title>
+<h1>2d.layer.global-states.no_global_states</h1>
+<p class="desc">Checks that layers correctly use global render states.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+
+  var circle = new Path2D();
+  circle.arc(90, 90, 45, 0, 2 * Math.PI);
+  ctx.fill(circle);
+
+  // No global states.
+
+  canvas2 = document.createElement("canvas");
+  ctx2 = canvas2.getContext("2d");
+
+  ctx2.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx2.fillRect(50, 50, 75, 50);
+  ctx2.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx2.fillRect(70, 70, 75, 50);
+
+  ctx.drawImage(canvas2, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.no_global_states.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.no_global_states.html
new file mode 100644
index 0000000..6769d47
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.no_global_states.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.global-states.no_global_states-expected.html">
+<title>Canvas test: 2d.layer.global-states.no_global_states</title>
+<h1>2d.layer.global-states.no_global_states</h1>
+<p class="desc">Checks that layers correctly use global render states.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const offscreen_canvas = new OffscreenCanvas(200, 200);
+  const ctx = offscreen_canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+
+  var circle = new Path2D();
+  circle.arc(90, 90, 45, 0, 2 * Math.PI);
+  ctx.fill(circle);
+
+  // No global states.
+
+  ctx.beginLayer();
+
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+
+  ctx.endLayer();
+
+  const canvas = document.getElementById("canvas");
+  canvas.getContext('2d').drawImage(offscreen_canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.no_global_states.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.no_global_states.w.html
new file mode 100644
index 0000000..7628d387
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.global-states.no_global_states.w.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.global-states.no_global_states-expected.html">
+<title>Canvas test: 2d.layer.global-states.no_global_states</title>
+<h1>2d.layer.global-states.no_global_states</h1>
+<p class="desc">Checks that layers correctly use global render states.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const oc = new OffscreenCanvas(200, 200);
+    const ctx = oc.getContext('2d');
+
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+
+    var circle = new Path2D();
+    circle.arc(90, 90, 45, 0, 2 * Math.PI);
+    ctx.fill(circle);
+
+    // No global states.
+
+    ctx.beginLayer();
+
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(70, 70, 75, 50);
+
+    ctx.endLayer();
+
+    const bitmap = oc.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.nested-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.nested-expected.html
new file mode 100644
index 0000000..906db700
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.nested-expected.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.nested</title>
+<h1>2d.layer.nested</h1>
+<p class="desc">Tests nested canvas layers.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  var circle = new Path2D(); circle.arc(90, 90, 40, 0, 2 * Math.PI); ctx.fill(circle);
+  ctx.globalCompositeOperation = 'source-in';
+  canvas2 = document.createElement("canvas"); ctx2 = canvas2.getContext("2d");
+  ctx2.fillStyle = 'rgba(0, 0, 255, 1)'; ctx2.fillRect(60, 60, 75, 50);
+  ctx2.globalAlpha = 0.5;
+  canvas3 = document.createElement("canvas"); ctx3 = canvas3.getContext("2d");
+  ctx3.fillStyle = 'rgba(225, 0, 0, 1)'; ctx3.fillRect(50, 50, 75, 50); ctx3.fillStyle = 'rgba(0, 255, 0, 1)'; ctx3.fillRect(70, 70, 75, 50);
+  ctx2.drawImage(canvas3, 0, 0); ctx.drawImage(canvas2, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.nested.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.nested.html
new file mode 100644
index 0000000..0c16849
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.nested.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.nested-expected.html">
+<title>Canvas test: 2d.layer.nested</title>
+<h1>2d.layer.nested</h1>
+<p class="desc">Tests nested canvas layers.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const offscreen_canvas = new OffscreenCanvas(200, 200);
+  const ctx = offscreen_canvas.getContext('2d');
+
+  var circle = new Path2D();
+  circle.arc(90, 90, 40, 0, 2 * Math.PI);
+  ctx.fill(circle);
+
+  ctx.globalCompositeOperation = 'source-in';
+
+  ctx.beginLayer();
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+
+  ctx.globalAlpha = 0.5;
+
+  ctx.beginLayer();
+
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+  ctx.fillRect(70, 70, 75, 50);
+
+  ctx.endLayer();
+  ctx.endLayer();
+
+  const canvas = document.getElementById("canvas");
+  canvas.getContext('2d').drawImage(offscreen_canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.nested.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.nested.w.html
new file mode 100644
index 0000000..3b81691
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.nested.w.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.nested-expected.html">
+<title>Canvas test: 2d.layer.nested</title>
+<h1>2d.layer.nested</h1>
+<p class="desc">Tests nested canvas layers.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const oc = new OffscreenCanvas(200, 200);
+    const ctx = oc.getContext('2d');
+
+    var circle = new Path2D();
+    circle.arc(90, 90, 40, 0, 2 * Math.PI);
+    ctx.fill(circle);
+
+    ctx.globalCompositeOperation = 'source-in';
+
+    ctx.beginLayer();
+
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+
+    ctx.globalAlpha = 0.5;
+
+    ctx.beginLayer();
+
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(70, 70, 75, 50);
+
+    ctx.endLayer();
+    ctx.endLayer();
+
+    const bitmap = oc.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.restore-style-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.restore-style-expected.html
new file mode 100644
index 0000000..4893ecdf
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.restore-style-expected.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.restore-style</title>
+<h1>2d.layer.restore-style</h1>
+<p class="desc">Test that ensure layers restores style values upon endLayer.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)'; ctx.fillRect(50, 50, 75, 50); ctx.globalAlpha = 0.5;
+  canvas2 = document.createElement("canvas"); ctx2 = canvas2.getContext("2d"); ctx2.fillStyle = 'rgba(225, 0, 0, 1)'; ctx2.fillRect(60, 60, 75, 50); ctx.drawImage(canvas2, 0, 0);
+  ctx.fillRect(70, 70, 75, 50);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.restore-style.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.restore-style.html
new file mode 100644
index 0000000..66f99835d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.restore-style.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.restore-style-expected.html">
+<meta name=fuzzy content="maxDifference=0-1; totalPixels=0-950">
+<title>Canvas test: 2d.layer.restore-style</title>
+<h1>2d.layer.restore-style</h1>
+<p class="desc">Test that ensure layers restores style values upon endLayer.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const offscreen_canvas = new OffscreenCanvas(200, 200);
+  const ctx = offscreen_canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0,0,255,1)';
+  ctx.fillRect(50, 50, 75, 50);
+  ctx.globalAlpha = 0.5;
+
+  ctx.beginLayer();
+  ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+  ctx.fillRect(60, 60, 75, 50);
+  ctx.endLayer();
+
+  ctx.fillRect(70, 70, 75, 50);
+
+  const canvas = document.getElementById("canvas");
+  canvas.getContext('2d').drawImage(offscreen_canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.restore-style.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.restore-style.w.html
new file mode 100644
index 0000000..a717a1d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.restore-style.w.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.restore-style-expected.html">
+<meta name=fuzzy content="maxDifference=0-1; totalPixels=0-950">
+<title>Canvas test: 2d.layer.restore-style</title>
+<h1>2d.layer.restore-style</h1>
+<p class="desc">Test that ensure layers restores style values upon endLayer.</p>
+<canvas id="canvas" width="200" height="200">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const oc = new OffscreenCanvas(200, 200);
+    const ctx = oc.getContext('2d');
+
+    ctx.fillStyle = 'rgba(0,0,255,1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.globalAlpha = 0.5;
+
+    ctx.beginLayer();
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+    ctx.endLayer();
+
+    ctx.fillRect(70, 70, 75, 50);
+
+    const bitmap = oc.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.several-complex-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.several-complex-expected.html
new file mode 100644
index 0000000..afd03e2
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.several-complex-expected.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.several-complex</title>
+<h1>2d.layer.several-complex</h1>
+<p class="desc">Test to ensure beginlayer works for filter, alpha and shadow, even with consecutive layers.</p>
+<canvas id="canvas" width="500" height="500">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)'; ctx.fillRect(50, 50, 95, 70);
+  ctx.globalAlpha = 0.5; ctx.filter = 'sepia(0.5)'; ctx.shadowOffsetX = -10; ctx.shadowOffsetY = 10; ctx.shadowColor = 'orange';
+  var canvas2 = [5]; var ctx2 = [5];
+  for (let i = 0; i < 5; i++) { canvas2[i] = document.createElement("canvas"); ctx2[i] = canvas2[i].getContext("2d"); ctx2[i].fillStyle = 'rgba(225, 0, 0, 1)'; ctx2[i].fillRect(60, 40, 75, 50); ctx2[i].fillStyle = 'rgba(0, 255, 0, 1)'; ctx2[i].fillRect(80, 60, 75, 50);
+  ctx.drawImage(canvas2[i], i, i); }
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.several-complex.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.several-complex.html
new file mode 100644
index 0000000..b4b2a8da
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.several-complex.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.several-complex-expected.html">
+<meta name=fuzzy content="maxDifference=0-3; totalPixels=0-6318">
+<title>Canvas test: 2d.layer.several-complex</title>
+<h1>2d.layer.several-complex</h1>
+<p class="desc">Test to ensure beginlayer works for filter, alpha and shadow, even with consecutive layers.</p>
+<canvas id="canvas" width="500" height="500">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const offscreen_canvas = new OffscreenCanvas(500, 500);
+  const ctx = offscreen_canvas.getContext('2d');
+
+  ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+  ctx.fillRect(50, 50, 95, 70);
+
+  ctx.globalAlpha = 0.5;
+  ctx.filter = 'sepia(0.5)';
+  ctx.shadowOffsetX = -10;
+  ctx.shadowOffsetY = 10;
+  ctx.shadowColor = 'orange';
+
+
+  for (let i = 0; i < 5; i++) {
+    ctx.beginLayer();
+
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(60 + i, 40 + i, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(80 + i, 60 + i, 75, 50);
+
+    ctx.endLayer();
+  }
+
+  const canvas = document.getElementById("canvas");
+  canvas.getContext('2d').drawImage(offscreen_canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.several-complex.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.several-complex.w.html
new file mode 100644
index 0000000..5260cc27
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.several-complex.w.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.several-complex-expected.html">
+<meta name=fuzzy content="maxDifference=0-3; totalPixels=0-6318">
+<title>Canvas test: 2d.layer.several-complex</title>
+<h1>2d.layer.several-complex</h1>
+<p class="desc">Test to ensure beginlayer works for filter, alpha and shadow, even with consecutive layers.</p>
+<canvas id="canvas" width="500" height="500">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const oc = new OffscreenCanvas(500, 500);
+    const ctx = oc.getContext('2d');
+
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(50, 50, 95, 70);
+
+    ctx.globalAlpha = 0.5;
+    ctx.filter = 'sepia(0.5)';
+    ctx.shadowOffsetX = -10;
+    ctx.shadowOffsetY = 10;
+    ctx.shadowColor = 'orange';
+
+
+    for (let i = 0; i < 5; i++) {
+      ctx.beginLayer();
+
+      ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+      ctx.fillRect(60 + i, 40 + i, 75, 50);
+      ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+      ctx.fillRect(80 + i, 60 + i, 75, 50);
+
+      ctx.endLayer();
+    }
+
+    const bitmap = oc.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/layers.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/layers.yaml
index 51dedfd7..204fc43 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/layers.yaml
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/layers.yaml
@@ -37,6 +37,8 @@
 
     ctx.drawImage(canvas2, 0, 0);
   variants:
+    no_global_states:
+      render_states: // No global states.
     alpha:
       render_states: ctx.globalAlpha = 0.6;
     globalcompositeoperation:
@@ -62,7 +64,7 @@
       fuzzy: maxDifference=0-2; totalPixels=0-5824
       render_states: |-
         ctx.globalAlpha = 0.5;
-        ctx.filter = 'sepia(0.5)';
+        ctx.filter = 'sepia(0.5) drop-shadow(5px 5px 0px #81e)';
         ctx.shadowOffsetX = -10;
         ctx.shadowOffsetY = 10;
         ctx.shadowColor = 'orange';
@@ -82,3 +84,196 @@
       render_states: |-
         ctx.globalCompositeOperation = 'source-in';
         ctx.filter = 'drop-shadow(-9px 9px 0px #e81)';
+
+
+- name: 2d.layer.nested
+  desc: Tests nested canvas layers.
+  size: 200, 200
+  code: |
+    var circle = new Path2D();
+    circle.arc(90, 90, 40, 0, 2 * Math.PI);
+    ctx.fill(circle);
+
+    ctx.globalCompositeOperation = 'source-in';
+
+    ctx.beginLayer();
+
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+
+    ctx.globalAlpha = 0.5;
+
+    ctx.beginLayer();
+
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(70, 70, 75, 50);
+
+    ctx.endLayer();
+    ctx.endLayer();
+  reference:
+    var circle = new Path2D();
+    circle.arc(90, 90, 40, 0, 2 * Math.PI);
+    ctx.fill(circle);
+
+    ctx.globalCompositeOperation = 'source-in';
+
+    canvas2 = document.createElement("canvas");
+    ctx2 = canvas2.getContext("2d");
+
+    ctx2.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx2.fillRect(60, 60, 75, 50);
+
+    ctx2.globalAlpha = 0.5;
+
+    canvas3 = document.createElement("canvas");
+    ctx3 = canvas3.getContext("2d");
+
+    ctx3.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx3.fillRect(50, 50, 75, 50);
+    ctx3.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx3.fillRect(70, 70, 75, 50);
+
+    ctx2.drawImage(canvas3, 0, 0);
+    ctx.drawImage(canvas2, 0, 0);
+
+
+- name: 2d.layer.restore-style
+  desc: Test that ensure layers restores style values upon endLayer.
+  size: 200, 200
+  fuzzy: maxDifference=0-1; totalPixels=0-950
+  code: |
+    ctx.fillStyle = 'rgba(0,0,255,1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.globalAlpha = 0.5;
+
+    ctx.beginLayer();
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+    ctx.endLayer();
+
+    ctx.fillRect(70, 70, 75, 50);
+  reference:
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.globalAlpha = 0.5;
+
+    canvas2 = document.createElement("canvas");
+    ctx2 = canvas2.getContext("2d");
+    ctx2.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx2.fillRect(60, 60, 75, 50);
+    ctx.drawImage(canvas2, 0, 0);
+
+    ctx.fillRect(70, 70, 75, 50);
+
+
+- name: 2d.layer.several-complex
+  desc: >-
+    Test to ensure beginlayer works for filter, alpha and shadow, even with
+    consecutive layers.
+  size: 500, 500
+  fuzzy: maxDifference=0-3; totalPixels=0-6318
+  code: |
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(50, 50, 95, 70);
+
+    ctx.globalAlpha = 0.5;
+    ctx.filter = 'sepia(0.5)';
+    ctx.shadowOffsetX = -10;
+    ctx.shadowOffsetY = 10;
+    ctx.shadowColor = 'orange';
+
+
+    for (let i = 0; i < 5; i++) {
+      ctx.beginLayer();
+
+      ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+      ctx.fillRect(60 + i, 40 + i, 75, 50);
+      ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+      ctx.fillRect(80 + i, 60 + i, 75, 50);
+
+      ctx.endLayer();
+    }
+  reference:
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(50, 50, 95, 70);
+
+    ctx.globalAlpha = 0.5;
+    ctx.filter = 'sepia(0.5)';
+    ctx.shadowOffsetX = -10;
+    ctx.shadowOffsetY = 10;
+    ctx.shadowColor = 'orange';
+
+    var canvas2 = [5];
+    var ctx2 = [5];
+
+    for (let i = 0; i < 5; i++) {
+      canvas2[i] = document.createElement("canvas");
+      ctx2[i] = canvas2[i].getContext("2d");
+      ctx2[i].fillStyle = 'rgba(225, 0, 0, 1)';
+      ctx2[i].fillRect(60, 40, 75, 50);
+      ctx2[i].fillStyle = 'rgba(0, 255, 0, 1)';
+      ctx2[i].fillRect(80, 60, 75, 50);
+
+      ctx.drawImage(canvas2[i], i, i);
+    }
+
+
+- name: 2d.layer.endlayer.unmatched
+  desc: >-
+    A test to make sure an unmatched endLayer is a no-op and has no effect on
+    the code following it.
+  size: 200, 200
+  code: |
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+
+    ctx.globalAlpha = 0.5;
+
+    // This endlayer call should no-op.
+    ctx.endLayer();
+
+    ctx.beginLayer();
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(70, 70, 75, 50);
+    ctx.endLayer();
+  reference: |
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+
+    ctx.globalAlpha = 0.5;
+
+    ctx.beginLayer();
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(70, 70, 75, 50);
+    ctx.endLayer();
+
+
+- name: 2d.layer.endlayer.alone
+  desc: A test to make sure a single endLayer with no beginLayer is a no-op.
+  size: 200, 200
+  code: |
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+    ctx.globalAlpha = 0.5;
+
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(70, 70, 75, 50);
+
+    ctx.endLayer();
+  reference:
+    ctx.fillStyle = 'rgba(0, 0, 255, 1)';
+    ctx.fillRect(60, 60, 75, 50);
+    ctx.globalAlpha = 0.5;
+
+    ctx.fillStyle = 'rgba(225, 0, 0, 1)';
+    ctx.fillRect(50, 50, 75, 50);
+    ctx.fillStyle = 'rgba(0, 255, 0, 1)';
+    ctx.fillRect(70, 70, 75, 50);
diff --git a/third_party/blink/web_tests/external/wpt/storage-access-api/helpers.js b/third_party/blink/web_tests/external/wpt/storage-access-api/helpers.js
index b0f8866f..a9c7931 100644
--- a/third_party/blink/web_tests/external/wpt/storage-access-api/helpers.js
+++ b/third_party/blink/web_tests/external/wpt/storage-access-api/helpers.js
@@ -108,12 +108,46 @@
   });
 }
 
+// Writes cookies via document.cookie in the given frame.
+function SetDocumentCookieFromFrame(frame, cookie) {
+  return PostMessageAndAwaitReply(
+    { command: "write document.cookie", cookie }, frame.contentWindow);
+}
+
 // Reads cookies via document.cookie in the given frame.
 function GetJSCookiesFromFrame(frame) {
   return PostMessageAndAwaitReply(
       { command: "document.cookie" }, frame.contentWindow);
 }
 
+async function DeleteCookieInFrame(frame, name, params) {
+  await SetDocumentCookieFromFrame(frame, `${name}=0; expires=${new Date(0).toUTCString()}; ${params};`);
+  assert_false(cookieStringHasCookie(name, '0', await GetJSCookiesFromFrame(frame)), `Verify that cookie '${name}' has been deleted.`);
+}
+
+// Tests whether the frame can write cookies via document.cookie. Note that this
+// overwrites, then deletes, cookies named "cookie" and "foo".
+//
+// This function requires the caller to have included
+// /cookies/resources/cookie-helper.sub.js.
+async function CanFrameWriteCookies(frame) {
+  const cookie_suffix = "Secure;SameSite=None;Path=/";
+  await DeleteCookieInFrame(frame, "cookie", cookie_suffix);
+  await DeleteCookieInFrame(frame, "foo", cookie_suffix);
+
+  await SetDocumentCookieFromFrame(frame, `cookie=monster;${cookie_suffix}`);
+  await SetDocumentCookieFromFrame(frame, `foo=bar;${cookie_suffix}`);
+
+  const cookies = await GetJSCookiesFromFrame(frame);
+  const can_write = cookieStringHasCookie("cookie", "monster", cookies) &&
+      cookieStringHasCookie("foo", "bar", cookies);
+
+  await DeleteCookieInFrame(frame, "cookie", cookie_suffix);
+  await DeleteCookieInFrame(frame, "foo", cookie_suffix);
+
+  return can_write;
+}
+
 // Reads cookies via the `httpCookies` variable in the given frame.
 function GetHTTPCookiesFromFrame(frame) {
   return PostMessageAndAwaitReply(
@@ -155,6 +189,10 @@
 }
 
 // Tries to set storage access policy, ignoring any errors.
+//
+// Note: to discourage the writing of tests that assume unpartitioned cookie
+// access by default, any test that calls this with `value` == "blocked" should
+// do so as the first step in the test.
 async function MaybeSetStorageAccess(origin, embedding_origin, value) {
   try {
     await test_driver.set_storage_access(origin, embedding_origin, value);
diff --git a/third_party/blink/web_tests/external/wpt/storage-access-api/requestStorageAccess-cross-origin-iframe-navigation.sub.https.window.js b/third_party/blink/web_tests/external/wpt/storage-access-api/requestStorageAccess-cross-origin-iframe-navigation.sub.https.window.js
index a469d1b..e3e3622c 100644
--- a/third_party/blink/web_tests/external/wpt/storage-access-api/requestStorageAccess-cross-origin-iframe-navigation.sub.https.window.js
+++ b/third_party/blink/web_tests/external/wpt/storage-access-api/requestStorageAccess-cross-origin-iframe-navigation.sub.https.window.js
@@ -9,36 +9,31 @@
   const wwwAlt = "https://{{hosts[alt][www]}}:{{ports[https][0]}}";
 
   promise_test(async (t) => {
+    await MaybeSetStorageAccess(wwwAlt + "/", "*", "blocked");
+
     const responder_html = `${wwwAlt}/storage-access-api/resources/script-with-cookie-header.py?script=embedded_responder.js`;
     const frame = await CreateFrame(responder_html);
 
+    await SetPermissionInFrame(frame, [{ name: 'storage-access' }, 'granted']);
     t.add_cleanup(async () => {
       await test_driver.delete_all_cookies();
       await SetPermissionInFrame(frame, [{ name: 'storage-access' }, 'prompt']);
-    });
-
-    await SetPermissionInFrame(frame, [{ name: 'storage-access' }, 'granted']);
-    await fetch(`${wwwAlt}/cookies/resources/set.py?cookie=monster;Secure;SameSite=None;Path=/`,
-      { mode: "no-cors", credentials: "include" }).then((resp) => resp.text());
-
-    await MaybeSetStorageAccess(wwwAlt + "/", "*", "blocked");
-    t.add_cleanup(async () => {
       await MaybeSetStorageAccess(wwwAlt + "/", "*", "allowed");
     });
 
     assert_false(await FrameHasStorageAccess(frame), "frame initially does not have storage access.");
-    assert_false(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame)), "frame cannot access cookies via JS.");
+    assert_false(await CanFrameWriteCookies(frame), "frame initially cannot write cookies via document.cookie.");
     assert_false(cookieStringHasCookie("cookie", "monster", await GetHTTPCookiesFromFrame(frame)), "frame's fetch was done without credentials.");
 
     assert_true(await RequestStorageAccessInFrame(frame), "requestStorageAccess resolves without requiring a gesture.");
 
     assert_true(await FrameHasStorageAccess(frame), "frame has storage access after request.");
-    assert_true(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame)), "frame has cookie access via JS after request.");
+    assert_true(await CanFrameWriteCookies(frame), "frame can write cookies via JS after request.");
 
     await FrameInitiatedReload(frame);
 
     assert_true(await FrameHasStorageAccess(frame), "frame has storage access after refresh.");
-    assert_true(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame)), "frame can access cookies via JS after refresh.");
+    assert_true(await CanFrameWriteCookies(frame), "frame can write cookies via JS after refresh.");
     assert_true(cookieStringHasCookie("cookie", "monster", await GetHTTPCookiesFromFrame(frame)), "frame's fetch was credentialed.");
   }, "Self-initiated same-origin navigations preserve storage access");
 })();
diff --git a/third_party/blink/web_tests/external/wpt/storage-access-api/requestStorageAccess-cross-origin-sibling-iframes.sub.https.window.js b/third_party/blink/web_tests/external/wpt/storage-access-api/requestStorageAccess-cross-origin-sibling-iframes.sub.https.window.js
index 8da905ae..fd82f89 100644
--- a/third_party/blink/web_tests/external/wpt/storage-access-api/requestStorageAccess-cross-origin-sibling-iframes.sub.https.window.js
+++ b/third_party/blink/web_tests/external/wpt/storage-access-api/requestStorageAccess-cross-origin-sibling-iframes.sub.https.window.js
@@ -9,6 +9,7 @@
   const wwwAlt = "https://{{hosts[alt][www]}}:{{ports[https][0]}}";
 
   promise_test(async (t) => {
+    await MaybeSetStorageAccess(wwwAlt + "/", "*", "blocked");
     const responder_html = `${wwwAlt}/storage-access-api/resources/script-with-cookie-header.py?script=embedded_responder.js`;
     const [frame1, frame2] = await Promise.all([
       CreateFrame(responder_html),
@@ -18,34 +19,28 @@
     t.add_cleanup(async () => {
       await test_driver.delete_all_cookies();
       await SetPermissionInFrame(frame1, [{ name: 'storage-access' }, 'prompt']);
+      await MaybeSetStorageAccess(wwwAlt + "/", "*", "allowed");
     });
 
     await SetPermissionInFrame(frame1, [{ name: 'storage-access' }, 'granted']);
-    await fetch(`${wwwAlt}/cookies/resources/set.py?cookie=monster;Secure;SameSite=None;Path=/`,
-      { mode: "no-cors", credentials: "include" }).then((resp) => resp.text());
-
-    await MaybeSetStorageAccess(wwwAlt + "/", "*", "blocked");
-    t.add_cleanup(async () => {
-      await MaybeSetStorageAccess(wwwAlt + "/", "*", "allowed");
-    });
 
     assert_false(await FrameHasStorageAccess(frame1), "frame1 should not have storage access initially.");
     assert_false(await FrameHasStorageAccess(frame2), "frame2 should not have storage access initially.");
 
-    assert_false(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame1)), "frame1 should not have access via document.cookie.");
-    assert_false(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame2)), "frame2 should not have access via document.cookie.");
+    assert_false(await CanFrameWriteCookies(frame1), "frame1 should not have access via document.cookie.");
+    assert_false(await CanFrameWriteCookies(frame2), "frame2 should not have access via document.cookie.");
 
     assert_true(await RequestStorageAccessInFrame(frame1), "requestStorageAccess doesn't require a gesture since the permission has already been granted.");
 
     assert_true(await FrameHasStorageAccess(frame1), "frame1 should have storage access now.");
-    assert_true(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame1)), "frame1 should now be able to access cookies via document.cookie.");
+    assert_true(await CanFrameWriteCookies(frame1), "frame1 should now be able to write cookies via document.cookie.");
 
     assert_false(await FrameHasStorageAccess(frame2), "frame2 should still not have storage access.");
-    assert_false(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame2)), "frame2 should should still be unable to access cookies via document.cookie");
+    assert_false(await CanFrameWriteCookies(frame2), "frame2 should still be unable to write cookies via document.cookie");
 
     assert_true(await RequestStorageAccessInFrame(frame2), "frame2 should be able to get storage access without a gesture.");
 
     assert_true(await FrameHasStorageAccess(frame2), "frame2 should have storage access after it requested it.");
-    assert_true(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame2)), "frame2 should be able to access cookies via document.cookie after getting storage access.");
+    assert_true(await CanFrameWriteCookies(frame2), "frame2 should be able to write cookies via document.cookie after getting storage access.");
   }, "Grants have per-frame scope");
 })();
diff --git a/third_party/blink/web_tests/external/wpt/storage-access-api/resources/embedded_responder.js b/third_party/blink/web_tests/external/wpt/storage-access-api/resources/embedded_responder.js
index 0ff599d0..8d27dd39 100644
--- a/third_party/blink/web_tests/external/wpt/storage-access-api/resources/embedded_responder.js
+++ b/third_party/blink/web_tests/external/wpt/storage-access-api/resources/embedded_responder.js
@@ -20,6 +20,9 @@
       reply(obtainedAccess);
     }
       break;
+    case "write document.cookie":
+      document.cookie = event.data.cookie;
+      reply(undefined);
     case "document.cookie":
       reply(document.cookie);
       break;
diff --git a/third_party/blink/web_tests/external/wpt/storage-access-api/storage-access-permission.sub.https.window.js b/third_party/blink/web_tests/external/wpt/storage-access-api/storage-access-permission.sub.https.window.js
index d1ee770..de85a14 100644
--- a/third_party/blink/web_tests/external/wpt/storage-access-api/storage-access-permission.sub.https.window.js
+++ b/third_party/blink/web_tests/external/wpt/storage-access-api/storage-access-permission.sub.https.window.js
@@ -39,7 +39,7 @@
 
   promise_test(async t => {
     const permission = await navigator.permissions.query({name: "storage-access"});
-    assert_equals(permission.name, "storage_access");
+    assert_equals(permission.name, "storage-access");
     assert_equals(permission.state, "prompt");
   }, "Permission default state can be queried");
 
@@ -50,7 +50,7 @@
     await test_driver.set_permission({ name: 'storage-access' }, 'granted');
 
     const permission = await navigator.permissions.query({name: "storage-access"});
-    assert_equals(permission.name, "storage_access");
+    assert_equals(permission.name, "storage-access");
     assert_equals(permission.state, "granted");
   }, "Permission granted state can be queried");
 
@@ -61,7 +61,7 @@
     await test_driver.set_permission({ name: 'storage-access' }, 'denied');
 
     const permission = await navigator.permissions.query({name: "storage-access"});
-    assert_equals(permission.name, "storage_access");
+    assert_equals(permission.name, "storage-access");
     assert_equals(permission.state, "denied");
 
     await test_driver.set_permission({ name: 'storage-access' }, 'prompt');
diff --git a/third_party/blink/web_tests/external/wpt/storage-access-api/storageAccess.testdriver.sub.html b/third_party/blink/web_tests/external/wpt/storage-access-api/storageAccess.testdriver.sub.html
index 27e00b7..5282cc8c 100644
--- a/third_party/blink/web_tests/external/wpt/storage-access-api/storageAccess.testdriver.sub.html
+++ b/third_party/blink/web_tests/external/wpt/storage-access-api/storageAccess.testdriver.sub.html
@@ -16,6 +16,7 @@
     const wwwAlt = "https://{{hosts[alt][www]}}:{{ports[https][0]}}";
 
     promise_test(async t => {
+      await MaybeSetStorageAccess(wwwAlt + "/", "*", "blocked");
       t.add_cleanup(async () => {
         await test_driver.delete_all_cookies();
         await MaybeSetStorageAccess(wwwAlt + "/", "*", "allowed");
@@ -24,14 +25,7 @@
       const responder_html = `${wwwAlt}/storage-access-api/resources/script-with-cookie-header.py?script=embedded_responder.js`;
       const frame = await CreateFrame(responder_html);
 
-      await fetch(`${wwwAlt}/cookies/resources/set.py?cookie=monster;Secure;SameSite=None;Path=/`,
-        { mode: "no-cors", credentials: "include" }).then((resp) => resp.text());
-
-      assert_true(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame)), "frame should have access via document.cookie.");
-
-      await MaybeSetStorageAccess(wwwAlt + "/", "*", "blocked");
-
-      assert_false(cookieStringHasCookie("cookie", "monster", await GetJSCookiesFromFrame(frame)), "frame should not have access via document.cookie.");
+      assert_false(await CanFrameWriteCookies(frame), "Cross-site iframe should not be allowed to write cookies via document.cookie.");
     });
   </script>
 </body>
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt
index f94a6aa..2c74381 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 278 tests; 266 PASS, 12 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 281 tests; 268 PASS, 13 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Setup
 PASS isolation (type: discrete) has testAccumulation function
 PASS isolation: "isolate" onto "auto"
@@ -215,6 +215,9 @@
 PASS text-transform (type: discrete) has testAccumulation function
 PASS text-transform: "uppercase" onto "capitalize"
 PASS text-transform: "capitalize" onto "uppercase"
+PASS text-wrap (type: discrete) has testAccumulation function
+FAIL text-wrap: "nowrap" onto "wrap" assert_equals: The value should be nowrap at 0ms expected "nowrap" but got "wrap"
+PASS text-wrap: "wrap" onto "nowrap"
 PASS touch-action (type: discrete) has testAccumulation function
 PASS touch-action: "none" onto "auto"
 PASS touch-action: "auto" onto "none"
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt
index efc002b1..daf14575 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 274 tests; 265 PASS, 9 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 277 tests; 267 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Setup
 PASS isolation (type: discrete) has testAddition function
 PASS isolation: "isolate" onto "auto"
@@ -215,6 +215,9 @@
 PASS text-transform (type: discrete) has testAddition function
 PASS text-transform: "uppercase" onto "capitalize"
 PASS text-transform: "capitalize" onto "uppercase"
+PASS text-wrap (type: discrete) has testAddition function
+FAIL text-wrap: "nowrap" onto "wrap" assert_equals: The value should be nowrap at 0ms expected "nowrap" but got "wrap"
+PASS text-wrap: "wrap" onto "nowrap"
 PASS touch-action (type: discrete) has testAddition function
 PASS touch-action: "none" onto "auto"
 PASS touch-action: "auto" onto "none"
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
index ddcd5cf..83930a3 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 336 tests; 324 PASS, 12 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 340 tests; 325 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Setup
 PASS isolation (type: discrete) has testInterpolation function
 PASS isolation uses discrete animation when animating between "auto" and "isolate" with linear easing
@@ -265,6 +265,10 @@
 PASS text-transform uses discrete animation when animating between "capitalize" and "uppercase" with linear easing
 PASS text-transform uses discrete animation when animating between "capitalize" and "uppercase" with effect easing
 PASS text-transform uses discrete animation when animating between "capitalize" and "uppercase" with keyframe easing
+PASS text-wrap (type: discrete) has testInterpolation function
+FAIL text-wrap uses discrete animation when animating between "wrap" and "nowrap" with linear easing assert_equals: The value should be nowrap at 500ms expected "nowrap" but got "wrap"
+FAIL text-wrap uses discrete animation when animating between "wrap" and "nowrap" with effect easing assert_equals: The value should be nowrap at 960ms expected "nowrap" but got "wrap"
+FAIL text-wrap uses discrete animation when animating between "wrap" and "nowrap" with keyframe easing assert_equals: The value should be nowrap at 960ms expected "nowrap" but got "wrap"
 PASS touch-action (type: discrete) has testInterpolation function
 PASS touch-action uses discrete animation when animating between "auto" and "none" with linear easing
 PASS touch-action uses discrete animation when animating between "auto" and "none" with effect easing
diff --git a/third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-listing-expected.txt b/third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-listing-expected.txt
index c755de88..97ac1c6 100644
--- a/third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-listing-expected.txt
+++ b/third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-listing-expected.txt
@@ -347,6 +347,7 @@
 text-size-adjust: auto
 text-transform: none
 text-underline-position: auto
+text-wrap: wrap
 toggle-group: none
 toggle-root: none
 toggle-trigger: none
diff --git a/third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt b/third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt
index 63d6c6f..1e2d760 100644
--- a/third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt
+++ b/third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt
@@ -347,6 +347,7 @@
 text-size-adjust: auto
 text-transform: none
 text-underline-position: auto
+text-wrap: wrap
 toggle-group: none
 toggle-root: none
 toggle-trigger: none
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/trust-tokens/no-console-warning-with-cookies-disabled.js b/third_party/blink/web_tests/http/tests/inspector-protocol/trust-tokens/no-console-warning-with-cookies-disabled.js
deleted file mode 100644
index 41a708f..0000000
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/trust-tokens/no-console-warning-with-cookies-disabled.js
+++ /dev/null
@@ -1,30 +0,0 @@
-(async function(testRunner) {
-  const {session, dp} = await testRunner.startBlank(
-      `Check that no console error is printed on a Trust Tokens failure due to the subsystem being unavailable with third party cookies disabled.`);
-  await dp.Log.enable();
-  testRunner.log('Log Enabled');
-
-  let numEntries = 0;
-  dp.Log.onEntryAdded(event => {
-    ++numEntries;
-
-    const entry = event.params.entry;
-    testRunner.log('Log.onEntryAdded');
-    testRunner.log(`source: ${entry.source}`);
-    testRunner.log(`level: ${entry.level}`);
-    testRunner.log(`text: ${entry.text}`);
-  });
-
-  await session.evaluate(`testRunner.setBlockThirdPartyCookies(true);`);
-
-  const obtainedError = await session.evaluateAsync(`
-      fetch('/issue', {trustToken:{version:1,operation:'token-request'}}).catch((e)=>e.toString());
-        `);
-  testRunner.log(`Trust Tokens operation concluded with expected failure, throwing exception "${obtainedError}".`);
-
-  if (numEntries > 0) {
-    testRunner.fail(`Shouldn't observe any errors in the console, but saw ${numEntries} many.`);
-  }
-
-  testRunner.completeTest();
-})
diff --git a/third_party/blink/web_tests/svg/css/getComputedStyle-listing-expected.txt b/third_party/blink/web_tests/svg/css/getComputedStyle-listing-expected.txt
index caad2d8e..cb6ea86 100644
--- a/third_party/blink/web_tests/svg/css/getComputedStyle-listing-expected.txt
+++ b/third_party/blink/web_tests/svg/css/getComputedStyle-listing-expected.txt
@@ -347,6 +347,7 @@
 text-size-adjust: auto
 text-transform: none
 text-underline-position: auto
+text-wrap: wrap
 toggle-group: none
 toggle-root: none
 toggle-trigger: none
diff --git a/third_party/blink/web_tests/virtual/pna-allow-secure-same-origin/external/wpt/fetch/private-network-access/worker-blob-fetch.https.window-expected.txt b/third_party/blink/web_tests/virtual/pna-allow-secure-same-origin/external/wpt/fetch/private-network-access/worker-blob-fetch.https.window-expected.txt
new file mode 100644
index 0000000..36f8fb7
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/pna-allow-secure-same-origin/external/wpt/fetch/private-network-access/worker-blob-fetch.https.window-expected.txt
@@ -0,0 +1,17 @@
+This is a testharness.js-based test.
+PASS local to local: success.
+PASS private to local: failed preflight.
+PASS private to local: success.
+PASS private to private: success.
+PASS public to local: failed preflight.
+PASS public to local: success.
+PASS public to private: failed preflight.
+PASS public to private: success.
+PASS public to public: success.
+FAIL treat-as-public to local: failed preflight. assert_equals: fetch error expected (string) "TypeError" but got (undefined) undefined
+PASS treat-as-public to local: success.
+PASS treat-as-public to private: failed preflight.
+PASS treat-as-public to private: success.
+PASS treat-as-public to public: success.
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/webexposed/css-properties-as-js-properties-expected.txt b/third_party/blink/web_tests/webexposed/css-properties-as-js-properties-expected.txt
index 8e33dde7..4dca7b21 100644
--- a/third_party/blink/web_tests/webexposed/css-properties-as-js-properties-expected.txt
+++ b/third_party/blink/web_tests/webexposed/css-properties-as-js-properties-expected.txt
@@ -443,6 +443,7 @@
 textTransform
 textUnderlineOffset
 textUnderlinePosition
+textWrap
 toggle
 toggleGroup
 toggleRoot
diff --git a/third_party/blink/web_tests/webexposed/css-property-listing-expected.txt b/third_party/blink/web_tests/webexposed/css-property-listing-expected.txt
index ae4860f..a84853b 100644
--- a/third_party/blink/web_tests/webexposed/css-property-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/css-property-listing-expected.txt
@@ -383,6 +383,7 @@
     text-transform
     text-underline-offset
     text-underline-position
+    text-wrap
     toggle-group
     toggle-root
     toggle-trigger
diff --git a/third_party/freetype/README.chromium b/third_party/freetype/README.chromium
index 80b14f1..b7b4d84 100644
--- a/third_party/freetype/README.chromium
+++ b/third_party/freetype/README.chromium
@@ -1,7 +1,7 @@
 Name: FreeType
 URL: http://www.freetype.org/
-Version: VER-2-13-0-7-g713580f41
-Revision: 713580f41dcc2054d7fa56265f03eeb9c67e0937
+Version: VER-2-13-0-12-g7f9499044
+Revision: 7f9499044e3baa901de99251a007aa66e750b26c
 CPEPrefix: cpe:/a:freetype:freetype:2.12.1
 License: Custom license "inspired by the BSD, Artistic, and IJG (Independent
          JPEG Group) licenses"
diff --git a/third_party/subresource-filter-ruleset/README.chromium b/third_party/subresource-filter-ruleset/README.chromium
index 15bb659..234f6f7 100644
--- a/third_party/subresource-filter-ruleset/README.chromium
+++ b/third_party/subresource-filter-ruleset/README.chromium
@@ -1,6 +1,6 @@
 Name: EasyList
 URL: https://easylist.to/easylist/easylist.txt
-Version: 202212161230
+Version: 202302021452
 License: Creative Commons Attribution-ShareAlike 3.0 Unported
 License Android Compatible: yes
 License File: LICENSE
diff --git a/third_party/subresource-filter-ruleset/data/UnindexedRules.sha1 b/third_party/subresource-filter-ruleset/data/UnindexedRules.sha1
index 7c097ee..148ae60 100644
--- a/third_party/subresource-filter-ruleset/data/UnindexedRules.sha1
+++ b/third_party/subresource-filter-ruleset/data/UnindexedRules.sha1
@@ -1 +1 @@
-f675c1796b8f363b453210be7ee0723ab4bf27fa
\ No newline at end of file
+830d1092dbbc02de13f04bdf21fab954e385f7f9
\ No newline at end of file
diff --git a/third_party/subresource-filter-ruleset/manifest.json b/third_party/subresource-filter-ruleset/manifest.json
index 737baaf..cdf4b83 100644
--- a/third_party/subresource-filter-ruleset/manifest.json
+++ b/third_party/subresource-filter-ruleset/manifest.json
@@ -2,5 +2,5 @@
   "manifest_version": 2,
   "name": "Subresource Filtering Rules",
   "ruleset_format": 1,
-  "version": "9.42.0"
+  "version": "9.43.0"
 }
diff --git a/tools/android/touch_replay/README.md b/tools/android/touch_replay/README.md
new file mode 100644
index 0000000..a021967
--- /dev/null
+++ b/tools/android/touch_replay/README.md
@@ -0,0 +1,81 @@
+# Android Touch Replay Tool
+
+This tool allows to record and replay touch events on Android devices. The
+primary goal is for the replays to be consistent with each other as much as
+possible to allow for repeating touch gestures many times with statistical
+analysis to follow. Maintaining consistency with the original sequence of
+touches is only a secondary goal.
+
+Recording on one device and replaying on another is likely not going to work
+because of differences in the structure of touch events. The way the kernel
+drivers emit the events depends heavily on device type and OS version.
+
+## How to use
+
+Please use an optimized release build to minimize potential delays between
+emitted events. Here is how to build it:
+
+```
+# autoninja -C out/AndroidRelease touch_replay
+```
+
+This produces an executable only runnable on the device. Push it to the device:
+
+```
+# adb push out/AndroidRelease/touch_replay /data/local/tmp
+```
+
+Before running the tool make sure it will be invoked with root privileges:
+
+```
+adb root
+```
+
+Run the tool. All interaction with the screen will be recorded until you press
+Ctrl+C.
+
+```
+# adb shell '/data/local/tmp/touch_replay record /data/local/tmp/touch_events.dump'
+```
+
+To replay change `record` with `replay` in the command above.
+
+The last piece of functionality of this tool is the help message:
+```
+# adb shell '/data/local/tmp/touch_replay --help'
+Usage: /data/local/tmp/touch_replay record|replay FILE
+
+Record input events to FILE or replay them from FILE.
+```
+
+### Usage with Perfetto
+
+It is important to be able to replay touch scenarios while the device is being
+traced. The `cpu_profile` tool is compatible with running the replay
+simultaneously. See about its usage in the [Perfetto
+documentation](https://perfetto.dev/docs/quickstart/callstack-sampling#prerequisites).
+
+Using Perfetto from the browser to record a trace on the device is less
+straightforward. While attached to the device, Perfetto may make the device
+invisible to the commandline `adb` tool:
+
+```
+adb: no device found
+```
+
+One workaround is to start replay and attach with Perfetto later:
+
+```
+adb shell 'nohup sh -c "sleep 15 && /data/local/tmp/touch_replay replay
+/data/local/tmp/touch_events.dump" >/dev/null 2>&1 &'
+```
+
+This will wait for 15 seconds before replaying. The adb command would return
+immediately. After that the tool runs on the device without depending on the
+existing adb session. This works by running the program as a daemon with the
+help of the `nohup` utility. Since both the sleeping and replaying needs to be
+daemonized, they are wrapped into a shell command together.
+
+Immediately after invoking the command above it should be possible to connect to
+the device with Perfetto (within the specified time interval, 15 seconds in this
+case) and start profiling.
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 1b0e34b7..61596d56 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -18772,6 +18772,7 @@
   <int value="93" label="Top-level Storage Access"/>
   <int value="94" label="Federated identity auto re-authn"/>
   <int value="95" label="Federated identity IdP Registration API"/>
+  <int value="96" label="Anti-abuse"/>
 </enum>
 
 <enum name="ContentTypeParseableResult">
@@ -44623,6 +44624,19 @@
   </int>
 </enum>
 
+<enum name="FirstRunExitStatus">
+  <summary>
+    Status code indicating how the first run experience was exited.
+  </summary>
+  <int value="0"
+      label="Completed: finished through the buttons in the experience"/>
+  <int value="1"
+      label="Quit early: window closed, experience not considered 'finished'
+             (Lacros only)"/>
+  <int value="2"
+      label="Quit at end: window closed, experience considered 'finished'"/>
+</enum>
+
 <enum name="FirstRunLaunchSource">
   <summary>
     External applications/promotions that triggered Chrome launch and First Run.
@@ -53517,6 +53531,20 @@
   <int value="2" label="Password Suggested and Manually Changed"/>
 </enum>
 
+<enum name="IOSCredentialProviderPromoAction">
+  <int value="0" label="Learn More"/>
+  <int value="1" label="Go To Settings"/>
+  <int value="2" label="Remind me later"/>
+  <int value="3" label="No"/>
+</enum>
+
+<enum name="IOSCredentialProviderPromoSource">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="Password Copied"/>
+  <int value="2" label="Password Saved"/>
+  <int value="3" label="Autofill Used"/>
+</enum>
+
 <enum name="IOSDefaultBrowserFullscreenPromoAction">
   <int value="0" label="Action Button"/>
   <int value="1" label="Cancel"/>
@@ -67129,6 +67157,7 @@
   <int value="743" label="animation-composition"/>
   <int value="744" label="top-layer"/>
   <int value="745" label="anchor-default"/>
+  <int value="746" label="text-wrap"/>
 </enum>
 
 <enum name="MappedEditingCommands">
@@ -94497,6 +94526,7 @@
   <int value="23" label="(obsolete) Force signin warning"/>
   <int value="24" label="(obsolete) Save card bubble"/>
   <int value="25" label="(obsolete) Manage cards bubble"/>
+  <int value="26" label="Machine logon"/>
   <int value="27" label="Sync and Google services settings"/>
   <int value="28" label="Re-signin from sync error card in settings"/>
   <int value="29" label="Forced sign-in"/>
diff --git a/tools/metrics/histograms/metadata/ash_clipboard/histograms.xml b/tools/metrics/histograms/metadata/ash_clipboard/histograms.xml
index faed5fd..50ee6ae 100644
--- a/tools/metrics/histograms/metadata/ash_clipboard/histograms.xml
+++ b/tools/metrics/histograms/metadata/ash_clipboard/histograms.xml
@@ -67,6 +67,10 @@
   <summary>
     The data format of an item deleted from the clipboard history menu. Recorded
     when the user deletes an item.
+
+    Note: Prior to M112, this histogram erroneously recorded two samples when an
+    item was deleted by clicking the delete button. Deleting an item using the
+    Backspace key correctly recorded one sample.
   </summary>
 </histogram>
 
@@ -77,6 +81,11 @@
   <summary>
     The data format of an item pasted from the clipboard history menu. Recorded
     when the user pastes an item.
+
+    Note: Prior to M112, this histogram erroneously recorded samples only when
+    an item was pasted by clicking or pressing Enter with an item selected.
+    Other methods of pasting, such as toggling the menu closed or using the
+    virtual keyboard, were not counted at all.
   </summary>
 </histogram>
 
diff --git a/tools/metrics/histograms/metadata/cookie/histograms.xml b/tools/metrics/histograms/metadata/cookie/histograms.xml
index 680443ca..6ce3128 100644
--- a/tools/metrics/histograms/metadata/cookie/histograms.xml
+++ b/tools/metrics/histograms/metadata/cookie/histograms.xml
@@ -253,7 +253,7 @@
 </histogram>
 
 <histogram name="Cookie.DaysSinceRefreshForRetrieval" units="days"
-    expires_after="2023-07-02">
+    expires_after="2024-02-20">
   <owner>arichiv@chromium.org</owner>
   <owner>bingler@chromium.org</owner>
   <summary>
@@ -301,7 +301,7 @@
 </histogram>
 
 <histogram name="Cookie.ExpirationDuration400DaysGT" units="days"
-    expires_after="M114">
+    expires_after="2024-02-20">
   <owner>arichiv@chromium.org</owner>
   <owner>bingler@chromium.org</owner>
   <summary>
@@ -311,7 +311,7 @@
 </histogram>
 
 <histogram name="Cookie.ExpirationDuration400DaysLTE" units="days"
-    expires_after="M114">
+    expires_after="2024-02-20">
   <owner>arichiv@chromium.org</owner>
   <owner>bingler@chromium.org</owner>
   <summary>
@@ -321,14 +321,16 @@
 </histogram>
 
 <histogram name="Cookie.ExpirationDurationMinutesNonSecure" units="minutes"
-    expires_after="M114">
+    expires_after="2024-02-20">
+  <owner>arichiv@chromium.org</owner>
   <owner>kaustubhag@chromium.org</owner>
   <owner>bingler@chromium.org</owner>
   <summary>Number of minutes until non-Secure cookie expires when set.</summary>
 </histogram>
 
 <histogram name="Cookie.ExpirationDurationMinutesSecure" units="minutes"
-    expires_after="M114">
+    expires_after="2024-02-20">
+  <owner>arichiv@chromium.org</owner>
   <owner>kaustubhag@chromium.org</owner>
   <owner>bingler@chromium.org</owner>
   <summary>Number of minutes until Secure cookie expires when set.</summary>
diff --git a/tools/metrics/histograms/metadata/ios/histograms.xml b/tools/metrics/histograms/metadata/ios/histograms.xml
index c3c9ead3..d3171ca2 100644
--- a/tools/metrics/histograms/metadata/ios/histograms.xml
+++ b/tools/metrics/histograms/metadata/ios/histograms.xml
@@ -403,6 +403,46 @@
   </summary>
 </histogram>
 
+<histogram name="IOS.CredentialProviderExtension.Promo.{Impression}"
+    enum="IOSCredentialProviderPromoSource" expires_after="2023-09-01">
+  <owner>huitingyu@google.com</owner>
+  <owner>hiramahmood@google.com</owner>
+  <summary>
+    The impression count for the credential provider extention promo
+    corresponding to a source of the promo.
+  </summary>
+  <token key="Impression">
+    <variant name="Impression" summary="impression of promo"/>
+    <variant name="Impression.IsReminder"
+        summary="impression of promo shown as reminder"/>
+  </token>
+</histogram>
+
+<histogram name="IOS.CredentialProviderExtension.Promo.{PromoSource}"
+    enum="IOSCredentialProviderPromoAction" expires_after="2023-09-01">
+  <owner>huitingyu@google.com</owner>
+  <owner>hiramahmood@google.com</owner>
+  <summary>
+    The action taken in the credential provider extention promo displayed from
+    the user event as PromoSource specifies.
+  </summary>
+  <token key="PromoSource">
+    <variant name="OnPasswordCopied" summary="the user copies the password"/>
+    <variant name="OnPasswordCopied.IsReminder"
+        summary="the user copies the password, the promo is displayed as
+                 reminder"/>
+    <variant name="OnPasswordSaved" summary="the user saves the password"/>
+    <variant name="OnPasswordSaved.IsReminder"
+        summary="the user saves the password, the promo is displayed as
+                 reminder"/>
+    <variant name="OnSuccessfulLoginWithAutofilledPassword"
+        summary="the user logs in with autofilled password"/>
+    <variant name="OnSuccessfulLoginWithAutofilledPassword.IsReminder"
+        summary="the user logs in with autofilled password, the promo is
+                 displayed as reminder"/>
+  </token>
+</histogram>
+
 <histogram name="IOS.CRWWKNavigationStatesRemoveOldPending" enum="Boolean"
     expires_after="2023-07-09">
   <owner>justincohen@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/profile/histograms.xml b/tools/metrics/histograms/metadata/profile/histograms.xml
index 317260e8..dbc3e0d 100644
--- a/tools/metrics/histograms/metadata/profile/histograms.xml
+++ b/tools/metrics/histograms/metadata/profile/histograms.xml
@@ -776,6 +776,17 @@
   </summary>
 </histogram>
 
+<histogram name="ProfilePicker.FirstRun.ExitStatus" enum="FirstRunExitStatus"
+    expires_after="2023-12-19">
+  <owner>dgn@chromium.org</owner>
+  <owner>for-you-fre@google.com</owner>
+  <summary>
+    Records the status when the first run experience is exited. Note that some
+    experiments can override the behaviour at the end of the first run, based on
+    the the status. This histogram is recorded before the override happens.
+  </summary>
+</histogram>
+
 <histogram name="ProfilePicker.FirstRun.OrganizationAvailableTiming" units="ms"
     expires_after="2023-07-25">
   <owner>dgn@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/signin/histograms.xml b/tools/metrics/histograms/metadata/signin/histograms.xml
index 1a9ba59..6f9f0f4 100644
--- a/tools/metrics/histograms/metadata/signin/histograms.xml
+++ b/tools/metrics/histograms/metadata/signin/histograms.xml
@@ -1062,6 +1062,41 @@
   </summary>
 </histogram>
 
+<histogram name="Signin.SignIn.Offered" enum="SigninAccessPoint"
+    expires_after="2023-12-19">
+  <owner>bsazonov@chromium.org</owner>
+  <owner>dgn@chromium.org</owner>
+  <owner>chrome-signin-team@google.com</owner>
+  <summary>
+    Records that the option to sign in to Chrome was offered to the user, and
+    logs the original access point associated with this event.
+
+    This histogram is still in development and has a limited coverage of the
+    Signin access points for now.
+  </summary>
+</histogram>
+
+<histogram name="Signin.SignIn.Started" enum="SigninAccessPoint"
+    expires_after="2023-12-19">
+  <owner>bsazonov@chromium.org</owner>
+  <owner>dgn@chromium.org</owner>
+  <owner>chrome-signin-team@google.com</owner>
+  <summary>
+    Records that the user started the flow to sign in to Chrome, and logs the
+    original access point associated with this event.
+
+    Notes:
+
+    - This histogram is still in development and has a limited coverage of the
+    Signin access points for now. See go/chrome-signin-metrics-revamp for more
+    context on the planned work.
+
+    - For the First Run, we log it once for the whole first run flow, it does
+    not get recorded multiple times if the user steps back in the flow and
+    chooses again to sign in.
+  </summary>
+</histogram>
+
 <histogram name="Signin.SigninAbortedAccessPoint" enum="SigninAccessPoint"
     expires_after="2023-10-06">
   <owner>bsazonov@chromium.org</owner>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index d69a92f..9df6486 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -6,15 +6,15 @@
         },
         "win": {
             "hash": "ac703781ed7ba9e9b0d0c627acae83a5e16c1d9d",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/bddab2f0f589eae7a70f8b5a6efa06fd6219bcab/trace_processor_shell.exe"
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/f396a983fe100dec36e2c7d9285ca8a74e0ade91/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "e945a99da7a66211f847b8049627bbec846d2d1d",
             "full_remote_path": "perfetto-luci-artifacts/3b59f000c939bfe4d05267fd68d282ef0b541334/linux-arm/trace_processor_shell"
         },
         "mac": {
-            "hash": "669e56398717d141abb5d40b6486dd0cde6d06b8",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/bddab2f0f589eae7a70f8b5a6efa06fd6219bcab/trace_processor_shell"
+            "hash": "79520d7a405bc77d9e9320c8522eb0b4d2ecef5b",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/f396a983fe100dec36e2c7d9285ca8a74e0ade91/trace_processor_shell"
         },
         "mac_arm64": {
             "hash": "f9caa6dfbdc44573d32a21a9aeeed2058ffc3d68",
diff --git a/ui/accessibility/ax_common.h b/ui/accessibility/ax_common.h
index 3a666ca..63b97be 100644
--- a/ui/accessibility/ax_common.h
+++ b/ui/accessibility/ax_common.h
@@ -5,13 +5,14 @@
 #ifndef UI_ACCESSIBILITY_AX_COMMON_H_
 #define UI_ACCESSIBILITY_AX_COMMON_H_
 
+#include "build/blink_buildflags.h"
 #include "build/build_config.h"
 
 #if (!defined(NDEBUG) || defined(ADDRESS_SANITIZER) ||            \
      defined(LEAK_SANITIZER) || defined(MEMORY_SANITIZER) ||      \
      defined(THREAD_SANITIZER) || defined(UNDEFINED_SANITIZER) || \
      DCHECK_IS_ON()) &&                                           \
-    !BUILDFLAG(IS_IOS)
+    BUILDFLAG(USE_BLINK)
 // Enable fast fails on clusterfuzz and other builds used to debug Chrome,
 // in order to help narrow down illegal states more quickly.
 #define AX_FAIL_FAST_BUILD
diff --git a/ui/chromeos/translations/ui_chromeos_strings_af.xtb b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
index 0bcc60a1..ab80b8b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_af.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
@@ -356,6 +356,7 @@
 <translation id="3971140002794351170">Laai mobiele profiel af, netwerk <ph name="NETWORK_INDEX" /> van <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">Engels (VK)</translation>
 <translation id="3975895378829046965">Bangla-foneties</translation>
+<translation id="3999574733850440202">Microsoft-lêers wat onlangs oopgemaak is, het na OneDrive toe geskuif</translation>
 <translation id="4002066346123236978">Titel</translation>
 <translation id="4017788180641807848">Engels (VSA) met Workman-sleutelbord</translation>
 <translation id="4019998208269143058">Speld aan kitslêers vas</translation>
@@ -881,6 +882,7 @@
 <translation id="8116072619078571545">Yswater</translation>
 <translation id="8128733386027980860">Engels (VK) met Dvorak-sleutelbord</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" is met jou gedeel. Jy kan dit nie uitvee nie, want dit behoort nie aan jou nie.</translation>
+<translation id="8138705869659070104">Aktiveer ná toestelopstelling</translation>
 <translation id="813913629614996137">Inisialiseer tans …</translation>
 <translation id="8147028810663464959">Karakterbreedte is vol</translation>
 <translation id="8151638057146502721">Stel op</translation>
@@ -906,6 +908,7 @@
 <translation id="8300849813060516376">OTASP het misluk</translation>
 <translation id="8312871300878166382">Plak in vouer</translation>
 <translation id="8329978297633540474">Gewone teks</translation>
+<translation id="8332007959299458842">Microsoft-lêers wat onlangs oopgemaak is, het na Google Drive toe geskuif</translation>
 <translation id="8335587457941836791">Ontspeld van rak af</translation>
 <translation id="8335837413233998004">Belarussies</translation>
 <translation id="8336153091935557858">Gister <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_am.xtb b/ui/chromeos/translations/ui_chromeos_strings_am.xtb
index ad8d3df..deed2b1 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_am.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_am.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">ቀጣይ</translation>
 <translation id="1209796539517632982">የራስ-ሰር ስም አገልጋዮች</translation>
 <translation id="1210831758834677569">ላኦኛ</translation>
+<translation id="1221555006497674479">ማከማቻ ዝቅተኛ ነው ከእርስዎ <ph name="TOTAL_SPACE" /> የተጋራ Drive ማከማቻ <ph name="REMAINING_PERCENTAGE" />% ቀርቷል።</translation>
 <translation id="1243314992276662751">ስቀል</translation>
 <translation id="1249250836236328755">ዘውግ</translation>
 <translation id="1254593899333212300">ቀጥተኛ የበይነመረብ ግንኙነት</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">የቻይንኛ ፒንዪን</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> ፋይሎች ከመስመር ውጭ እንዲገኙ በመደረግ ላይ</translation>
 <translation id="164969095109328410">የChrome መሣሪያ</translation>
+<translation id="1661207570040737402">ሁሉንም የእርስዎን የተጋራ Drive የGoogle Workspace ማከማቻ ተጠቅመዋል።</translation>
 <translation id="1661867754829461514">ፒን ይጎድላል</translation>
 <translation id="166439687370499867">የተጋራ አውታረ መረብ ውቅረቶችን መለወጥ አይፈቀድም</translation>
 <translation id="1665611772925418501">ይህ ፋይል ሊቀየር አልቻለም።</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">በረዶ ውሃ</translation>
 <translation id="8128733386027980860">እንግሊዝኛ (ዩኬ) ከድቮራክ ቁልፍ ሰሌዳ ጋር</translation>
 <translation id="8137331602592933310">«<ph name="FILENAME" />» ለእርስዎ ተጋርቷል። እርስዎ ባለቤቱ ስላልሆኑ ሊሰርዙት አይችሉም።</translation>
+<translation id="8138705869659070104">ከመሣሪያ ውቅረት በኋላ ያግብሩ</translation>
 <translation id="813913629614996137">በማስጀመር ላይ…</translation>
 <translation id="8147028810663464959">የቁምፊ ስፋት ሙሉ ነው</translation>
 <translation id="8151638057146502721">አዋቅር</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
index b53001f..a68365a9 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
@@ -882,6 +882,7 @@
 <translation id="8116072619078571545">ماء مثلج</translation>
 <translation id="8128733386027980860">‏الإنجليزية (المملكة المتحدة) باستخدام لوحة مفاتيح Dvorak</translation>
 <translation id="8137331602592933310">تمت مشاركة "<ph name="FILENAME" />" معك. لا يمكنك حذفه، نظرًا لأنك لا تمتلكه.</translation>
+<translation id="8138705869659070104">يمكنك التفعيل بعد إعداد جهازك</translation>
 <translation id="813913629614996137">تجري التهيئة...</translation>
 <translation id="8147028810663464959">عرض الحرف هو عرض بالكامل</translation>
 <translation id="8151638057146502721">إعداد</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_as.xtb b/ui/chromeos/translations/ui_chromeos_strings_as.xtb
index a0e9257..c86ba4d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_as.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_as.xtb
@@ -356,6 +356,7 @@
 <translation id="3971140002794351170">ম’বাইলৰ প্ৰ’ফাইল ডাউনল’ড কৰক, <ph name="NETWORK_COUNT" /> টা নেটৱৰ্কৰ <ph name="NETWORK_INDEX" /> নম্বৰৰটো, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">ইংৰাজী (যুক্তৰাজ্য)</translation>
 <translation id="3975895378829046965">বাংলা ফ’নেটিক</translation>
+<translation id="3999574733850440202">শেহতীয়াকৈ খোলা Microsoft ফাইলসমূহ OneDriveলৈ স্থানান্তৰ কৰা হৈছে</translation>
 <translation id="4002066346123236978">শিৰোনাম</translation>
 <translation id="4017788180641807848">Workman কীব’ৰ্ডৰ সৈতে ইংৰাজী (যুক্তৰাষ্ট্ৰ)</translation>
 <translation id="4019998208269143058">ক্ষিপ্ৰতাৰে এক্সেছ কৰিব পৰা ফাইলত পিন কৰক</translation>
@@ -881,6 +882,7 @@
 <translation id="8116072619078571545">বৰফৰ সৈতে পানী</translation>
 <translation id="8128733386027980860">Dvorak কীব’ৰ্ডৰ সৈতে ইংৰাজী (যুক্তৰাজ্য)</translation>
 <translation id="8137331602592933310">আপোনাৰ সৈতে "<ph name="FILENAME" />" শ্বেয়াৰ কৰা হৈছে। আপুনি ইয়াৰ গৰাকী নহয় বাবে আপুনি এইটো মচিব নোৱাৰে।</translation>
+<translation id="8138705869659070104">ডিভাইচ ছেটআপ কৰাৰ পাছত সক্ৰিয় কৰক</translation>
 <translation id="813913629614996137">আৰম্ভ কৰা হৈছে…</translation>
 <translation id="8147028810663464959">বৰ্ণৰ প্ৰস্থ পূৰ্ণ</translation>
 <translation id="8151638057146502721">কনফিগাৰ</translation>
@@ -906,6 +908,7 @@
 <translation id="8300849813060516376">OTASP বিফল হৈছে</translation>
 <translation id="8312871300878166382">ফ’ল্ডাৰত পে’ষ্ট কৰক</translation>
 <translation id="8329978297633540474">সাধাৰণ পাঠ</translation>
+<translation id="8332007959299458842">শেহতীয়াকৈ খোলা Microsoft ফাইলসমূহ Google Driveলৈ স্থানান্তৰ কৰা হৈছে</translation>
 <translation id="8335587457941836791">শ্বেল্‌ফৰ পৰা আনপিন কৰক</translation>
 <translation id="8335837413233998004">বেলাৰুছিয়ান</translation>
 <translation id="8336153091935557858">কালি <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_az.xtb b/ui/chromeos/translations/ui_chromeos_strings_az.xtb
index 9ca8af8..e8f6738 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_az.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_az.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Növbəti</translation>
 <translation id="1209796539517632982">Avtomatik ad serverləri</translation>
 <translation id="1210831758834677569">Laos</translation>
+<translation id="1221555006497674479">Yaddaş azdır, <ph name="TOTAL_SPACE" /> ümumi ortaq disk yaddaşından <ph name="REMAINING_PERCENTAGE" />% qalıb</translation>
 <translation id="1243314992276662751">Yükləyin</translation>
 <translation id="1249250836236328755">Janr</translation>
 <translation id="1254593899333212300">Birbaşa İnternet bağlantısı</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Çin dili (Pinyin)</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> fayl oflayn əlçatan edilir</translation>
 <translation id="164969095109328410">Chrome cihazı</translation>
+<translation id="1661207570040737402">Ortaq Disk üzrə bütün Google Workspace yaddaşını istifadə etmisiniz.</translation>
 <translation id="1661867754829461514">PIN çatışmır</translation>
 <translation id="166439687370499867">Paylaşılmış şəbəkə konfiqurasiyalarının dəyişdirilməsinə icazə verilmir</translation>
 <translation id="1665611772925418501">Fayl dəyişdirilə bilməz.</translation>
@@ -354,6 +356,7 @@
 <translation id="3971140002794351170">Mobil profili endirin, Şəbəkə <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">İngilis (BK)</translation>
 <translation id="3975895378829046965">Banqla Fonetikası</translation>
+<translation id="3999574733850440202">Bu yaxınlarda açılmış Microsoft faylları OneDrive-a köçürülüb</translation>
 <translation id="4002066346123236978">Başlıq</translation>
 <translation id="4017788180641807848">Workman klaviaturası ilə İngilis dili (ABŞ)</translation>
 <translation id="4019998208269143058">Sürətli fayllara əlavə edin</translation>
@@ -877,6 +880,7 @@
 <translation id="8116072619078571545">Buzlu su</translation>
 <translation id="8128733386027980860">Dvorak klaviaturası ilə İngilis dili (BK)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" Sizinlə paylaşılıb. Onun sahibi olmadığınız üçün onu silə bilməzsiniz.</translation>
+<translation id="8138705869659070104">Cihazı ayarlayıb, aktiv edin</translation>
 <translation id="813913629614996137">Başladılır...</translation>
 <translation id="8147028810663464959">Simvol eni Tamdır</translation>
 <translation id="8151638057146502721">Konfiqurasiya edin</translation>
@@ -902,6 +906,7 @@
 <translation id="8300849813060516376">OTASP uğursuz oldu</translation>
 <translation id="8312871300878166382">Qovluğa yerləşdirin</translation>
 <translation id="8329978297633540474">Tam mətn</translation>
+<translation id="8332007959299458842">Bu yaxınlarda açılmış Microsoft faylları Google Diskə köçürülüb</translation>
 <translation id="8335587457941836791">Buferdən çıxarın</translation>
 <translation id="8335837413233998004">Belarus</translation>
 <translation id="8336153091935557858">Dünən <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_be.xtb b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
index 467d9d2..3f0e086 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_be.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Далей</translation>
 <translation id="1209796539517632982">Аўтаматычныя серверы даменных імён</translation>
 <translation id="1210831758834677569">Лаоская</translation>
+<translation id="1221555006497674479">У вашым сховішчы абагуленага дыска мала месца. Застаецца <ph name="REMAINING_PERCENTAGE" />% з <ph name="TOTAL_SPACE" />.</translation>
 <translation id="1243314992276662751">Запампаваць</translation>
 <translation id="1249250836236328755">Жанр</translation>
 <translation id="1254593899333212300">Прамое падключэнне да інтэрнэту</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Кітайская (піньінь)</translation>
 <translation id="1646019627374511909">Ідзе адкрыццё пазасеткавага доступу да файлаў (<ph name="NUMBER_OF_ITEMS" />)</translation>
 <translation id="164969095109328410">Прылада Chrome</translation>
+<translation id="1661207570040737402">Вы выкарысталі ўвесь даступны вам аб'ём сховішча абагуленага дыска Google Workspace.</translation>
 <translation id="1661867754829461514">Не ўказаны PIN-код</translation>
 <translation id="166439687370499867">Забаронена змяняць налады агульнай сеткі</translation>
 <translation id="1665611772925418501">Не ўдалося мадыфікаваць файл.</translation>
@@ -879,6 +881,7 @@
 <translation id="8116072619078571545">Ледзяная вада</translation>
 <translation id="8128733386027980860">Англійская (Вялікабрытанія) з раскладкай Дворака</translation>
 <translation id="8137331602592933310">Файл "<ph name="FILENAME" />" абагулены з вамі. Вы не можаце выдаліць гэты файл, бо не з'яўляецеся яго ўладальнікам.</translation>
+<translation id="8138705869659070104">Спачатку наладзьце прыладу</translation>
 <translation id="813913629614996137">Ідзе ініцыялізацыя...</translation>
 <translation id="8147028810663464959">Шырыня сімвалаў – поўная</translation>
 <translation id="8151638057146502721">Наладзіць</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
index 4c29dc1..a0e1371 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Вода с лед</translation>
 <translation id="8128733386027980860">Английски (САЩ) с клавиатура „Дворак“</translation>
 <translation id="8137331602592933310">Файлът „<ph name="FILENAME" />“ е споделен с вас. Не можете да го изтриете, защото не го притежавате.</translation>
+<translation id="8138705869659070104">Актив. след настр. на у-вото</translation>
 <translation id="813913629614996137">Подготвя се за работа...</translation>
 <translation id="8147028810663464959">Ширината на знаците е пълна</translation>
 <translation id="8151638057146502721">Конфигуриране</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
index a2e9b52..a3f43c6b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">পরের</translation>
 <translation id="1209796539517632982">স্বয়ংক্রিয় নাম সার্ভার</translation>
 <translation id="1210831758834677569">লাও</translation>
+<translation id="1221555006497674479">স্টোরেজে স্পেস কম আছে আপনার <ph name="TOTAL_SPACE" /> শেয়ার্ড ড্রাইভ স্টোরেজের <ph name="REMAINING_PERCENTAGE" />% বাকি আছে।</translation>
 <translation id="1243314992276662751">আপলোড</translation>
 <translation id="1249250836236328755">প্রকার</translation>
 <translation id="1254593899333212300">সরাসরি ইন্টারনেট সংযোগ</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">চীনা পিনইন</translation>
 <translation id="1646019627374511909">অফলাইনে দেখার জন্য <ph name="NUMBER_OF_ITEMS" />টি ফাইল ডাউনলোড করা হচ্ছে</translation>
 <translation id="164969095109328410">Chrome ডিভাইস</translation>
+<translation id="1661207570040737402">আপনার সমস্ত শেয়ার্ড ড্রাইভ Google Workspace স্টোরেজ ব্যবহার করেছেন।</translation>
 <translation id="1661867754829461514">পিন হারিয়েছে</translation>
 <translation id="166439687370499867">শেয়ার করার নেটওয়ার্ক কনফিগারেশন পরিবর্তনের অনুমতি নেই</translation>
 <translation id="1665611772925418501">ফাইল সংশোধন করা যায়নি৷</translation>
@@ -879,6 +881,7 @@
 <translation id="8116072619078571545">বরফ জল</translation>
 <translation id="8128733386027980860">ইংরেজি (যুক্তরাজ্য) ভাষায় Dvorak কীবোর্ড</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" আপনার সাথে শেয়ার করা হয়েছে৷ আপনি এটিকে মুছে ফেলতে পারবেন না কারণ আপনি এটির মালিক নন৷</translation>
+<translation id="8138705869659070104">ডিভাইস সেট-আপ করার পরে চালু করুন</translation>
 <translation id="813913629614996137">আরম্ভ হচ্ছে…</translation>
 <translation id="8147028810663464959">অক্ষরের প্রস্থ 'সম্পূর্ণ' হিসেবে সেট করা হয়েছে</translation>
 <translation id="8151638057146502721">কনফিগার করুন</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
index be1ce19..409c048 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
@@ -356,6 +356,7 @@
 <translation id="3971140002794351170">Preuzimanje profila mobilnog uređaja, mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">engleski (UK)</translation>
 <translation id="3975895378829046965">bengalski fonetski</translation>
+<translation id="3999574733850440202">Nedavno otvorene Microsoftove datoteke premještene su na OneDrive</translation>
 <translation id="4002066346123236978">Naslov</translation>
 <translation id="4017788180641807848">engleski (SAD) s Workman tastaturom</translation>
 <translation id="4019998208269143058">Zakači na brze fajlove</translation>
@@ -882,6 +883,7 @@
 <translation id="8116072619078571545">Ledena voda</translation>
 <translation id="8128733386027980860">engleski (UK) s Dvorak tastaturom</translation>
 <translation id="8137331602592933310">Fajl "<ph name="FILENAME" />" se dijeli s vama. Ne možete ga izbrisati jer niste njegov vlasnik.</translation>
+<translation id="8138705869659070104">Aktivir. nakon što post. uređaj</translation>
 <translation id="813913629614996137">Pokretanje…</translation>
 <translation id="8147028810663464959">Znakovi su u punoj širini</translation>
 <translation id="8151638057146502721">Konfiguriraj</translation>
@@ -907,6 +909,7 @@
 <translation id="8300849813060516376">Greška na OTASP-u</translation>
 <translation id="8312871300878166382">Zalijepi u folder</translation>
 <translation id="8329978297633540474">Obični tekst</translation>
+<translation id="8332007959299458842">Nedavno otvorene Microsoftove datoteke premještene su na Google disk</translation>
 <translation id="8335587457941836791">Otkači s police</translation>
 <translation id="8335837413233998004">bjeloruski</translation>
 <translation id="8336153091935557858">Jučer, u <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
index 5e7ba9b..f5e9839d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Següent</translation>
 <translation id="1209796539517632982">Servidors de noms automàtics</translation>
 <translation id="1210831758834677569">Laosià</translation>
+<translation id="1221555006497674479">Només et queda un <ph name="REMAINING_PERCENTAGE" />% de l'emmagatzematge de què disposes a la unitat compartida (<ph name="TOTAL_SPACE" />).</translation>
 <translation id="1243314992276662751">Penja</translation>
 <translation id="1249250836236328755">Gènere</translation>
 <translation id="1254593899333212300">Connexió directa a Internet</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Xinès (pinyin)</translation>
 <translation id="1646019627374511909">S'està fent que <ph name="NUMBER_OF_ITEMS" /> fitxers estiguin disponibles sense connexió</translation>
 <translation id="164969095109328410">Dispositiu Chrome</translation>
+<translation id="1661207570040737402">Has fet servir tot el teu espai d'emmagatzematge a la unitat compartida de Google Workspace.</translation>
 <translation id="1661867754829461514">Falta el PIN</translation>
 <translation id="166439687370499867">No es pot canviar la configuració de la xarxa compartida</translation>
 <translation id="1665611772925418501">El fitxer no s'ha pogut modificar.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">Aigua amb gel</translation>
 <translation id="8128733386027980860">Anglès (Regne Unit) amb teclat Dvorak</translation>
 <translation id="8137331602592933310">El fitxer "<ph name="FILENAME" />" s'ha compartit amb l'usuari. No el podeu suprimir perquè no és vostre.</translation>
+<translation id="8138705869659070104">Activa després de configurar</translation>
 <translation id="813913629614996137">S'està inicialitzant…</translation>
 <translation id="8147028810663464959">L'amplada dels caràcters és completa</translation>
 <translation id="8151638057146502721">Configura</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
index 76ab554..4d2ac2d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Ledová voda</translation>
 <translation id="8128733386027980860">angličtina (Velká Británie) s klávesnicí Dvorak</translation>
 <translation id="8137331602592933310">Soubor <ph name="FILENAME" /> s vámi někdo sdílí. Nemůžete ho smazat, protože ho nevlastníte.</translation>
+<translation id="8138705869659070104">Po nastavení zařízení</translation>
 <translation id="813913629614996137">Probíhá inicializace...</translation>
 <translation id="8147028810663464959">Šířka znaků je Plná</translation>
 <translation id="8151638057146502721">Konfigurovat</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_cy.xtb b/ui/chromeos/translations/ui_chromeos_strings_cy.xtb
index 90bea622..7515813 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_cy.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_cy.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Nesaf</translation>
 <translation id="1209796539517632982">Gweinyddwyr enw awtomatig</translation>
 <translation id="1210831758834677569">Laoteg</translation>
+<translation id="1221555006497674479">Storfa yn isel <ph name="REMAINING_PERCENTAGE" />% ar ôl o'ch storfa gyriant cyffredin <ph name="TOTAL_SPACE" />.</translation>
 <translation id="1243314992276662751">Uwchlwytho</translation>
 <translation id="1249250836236328755">Genre</translation>
 <translation id="1254593899333212300">Cysylltiad Rhyngrwyd uniongyrchol</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Pinyin Tsieinëeg</translation>
 <translation id="1646019627374511909">Wrthi'n gwneud <ph name="NUMBER_OF_ITEMS" /> ffeil ar gael all-lein</translation>
 <translation id="164969095109328410">Dyfais Chrome</translation>
+<translation id="1661207570040737402">Rydych wedi defnyddio'ch holl storfa Gyriant Cyffredin Google Workspace.</translation>
 <translation id="1661867754829461514">PIN ar goll</translation>
 <translation id="166439687370499867">Ni chaniateir newid ffurfweddiadau rhwydwaith cyffredin</translation>
 <translation id="1665611772925418501">Ni ellid addasu'r ffeil.</translation>
@@ -879,6 +881,7 @@
 <translation id="8116072619078571545">Dŵr iâ</translation>
 <translation id="8128733386027980860">Saesneg (DU) gyda bysellfwrdd Dvorak</translation>
 <translation id="8137331602592933310">Mae "<ph name="FILENAME" />" wedi'i rannu gyda chi. Ni allwch ei ddileu gan nad ydych yn berchen arno.</translation>
+<translation id="8138705869659070104">Gweithredu ar ôl gosod y ddyfais</translation>
 <translation id="813913629614996137">Wrthi'n cychwyn…</translation>
 <translation id="8147028810663464959">Mae lled y nod yn Llawn</translation>
 <translation id="8151638057146502721">Ffurfweddu</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_da.xtb b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
index 0c77b483..cb3d5fe 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_da.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Næste</translation>
 <translation id="1209796539517632982">Automatiske navneservere</translation>
 <translation id="1210831758834677569">Laotisk</translation>
+<translation id="1221555006497674479">Der er kun <ph name="REMAINING_PERCENTAGE" /> % ledig lagerplads tilbage af dit fællesdrev på <ph name="TOTAL_SPACE" /></translation>
 <translation id="1243314992276662751">Upload</translation>
 <translation id="1249250836236328755">Genre</translation>
 <translation id="1254593899333212300">Direkte internetforbindelse</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Kinesisk pinyin</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> filer gøres tilgængelige offline</translation>
 <translation id="164969095109328410">Chrome-enhed</translation>
+<translation id="1661207570040737402">Du har brugt al din Google Workspace-lagerplads for fællesdrevet.</translation>
 <translation id="1661867754829461514">Pinkode mangler</translation>
 <translation id="166439687370499867">Det er ikke tilladt at ændre delte netværkskonfigurationer</translation>
 <translation id="1665611772925418501">Filen kunne ikke ændres.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">Isvand</translation>
 <translation id="8128733386027980860">Engelsk (Storbritannien) med Dvorak-tastatur</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" er blevet delt med dig. Du kan ikke slette filen, fordi du ikke ejer den.</translation>
+<translation id="8138705869659070104">Aktivér efter enhedskonfiguration</translation>
 <translation id="813913629614996137">Initialiserer...</translation>
 <translation id="8147028810663464959">Tegnbredden er Fuld</translation>
 <translation id="8151638057146502721">Konfigurer</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_de.xtb b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
index 21cbda6..8470db2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_de.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Weiter</translation>
 <translation id="1209796539517632982">Automatische Wahl des Nameservers</translation>
 <translation id="1210831758834677569">Lao</translation>
+<translation id="1221555006497674479">Nur noch <ph name="REMAINING_PERCENTAGE" /> % von <ph name="TOTAL_SPACE" /> Speicherplatz in der geteilten Ablage frei.</translation>
 <translation id="1243314992276662751">Hochladen</translation>
 <translation id="1249250836236328755">Genre</translation>
 <translation id="1254593899333212300">Direkte Internetverbindung</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Chinesisch (Pinyin)</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> Dateien werden offline verfügbar gemacht</translation>
 <translation id="164969095109328410">Chrome-Gerät</translation>
+<translation id="1661207570040737402">Dein gesamter Google Workspace-Speicherplatz in der geteilten Ablage ist belegt.</translation>
 <translation id="1661867754829461514">PIN fehlt</translation>
 <translation id="166439687370499867">Freigegebene Netzwerkkonfigurationen dürfen nicht geändert werden</translation>
 <translation id="1665611772925418501">Die Datei konnte nicht geändert werden.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">Wasser mit Eis</translation>
 <translation id="8128733386027980860">Englisch (Vereinigtes Königreich) mit Dvorak-Tastatur</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" wurde mit dir geteilt. Du kannst die Datei nicht löschen, da du nicht der Inhaber bist.</translation>
+<translation id="8138705869659070104">Nach Einrichtung aktivieren</translation>
 <translation id="813913629614996137">Initialisierung…</translation>
 <translation id="8147028810663464959">Zeichenbreite ist „Voll“</translation>
 <translation id="8151638057146502721">Konfigurieren</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_el.xtb b/ui/chromeos/translations/ui_chromeos_strings_el.xtb
index 84bed9fd..649bc99 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_el.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_el.xtb
@@ -900,6 +900,7 @@
 <translation id="8116072619078571545">Παγωμένο νερό</translation>
 <translation id="8128733386027980860">Αγγλικά (ΗΠΑ) με πληκτρολόγιο Dvorak</translation>
 <translation id="8137331602592933310">Το "<ph name="FILENAME" />" έχει χρησιμοποιηθεί από κοινού με εσάς. Δεν μπορείτε να το διαγράψετε, επειδή δεν σας ανήκει.</translation>
+<translation id="8138705869659070104">Ενεργοποίηση μετά τη ρύθμιση της συσκευής</translation>
 <translation id="813913629614996137">Εκκίνηση…</translation>
 <translation id="8147028810663464959">Το εύρος χαρακτήρων είναι Πλήρες</translation>
 <translation id="8151638057146502721">Διαμόρφωση</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
index ca6429a..ef53323 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
@@ -883,6 +883,7 @@
 <translation id="8116072619078571545">Ice water</translation>
 <translation id="8128733386027980860">English (UK) with Dvorak keyboard</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" has been shared with you. You cannot delete it because you do not own it.</translation>
+<translation id="8138705869659070104">Activate after device setup</translation>
 <translation id="813913629614996137">Initialising...</translation>
 <translation id="8147028810663464959">Character width is Full</translation>
 <translation id="8151638057146502721">Configure</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
index d4fff589..e96d6ad 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Agua helada</translation>
 <translation id="8128733386027980860">Inglés (Reino Unido) con teclado Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" se compartió contigo. No puedes eliminarlo porque no eres el propietario.</translation>
+<translation id="8138705869659070104">Activar luego de configurarlo</translation>
 <translation id="813913629614996137">Inicializando…</translation>
 <translation id="8147028810663464959">El ancho del carácter es el ancho completo</translation>
 <translation id="8151638057146502721">Configurar</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es.xtb b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
index da7c7aeeb..5f9e599 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_es.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Agua helada</translation>
 <translation id="8128733386027980860">Inglés (Reino Unido) con teclado Dvorak</translation>
 <translation id="8137331602592933310">El archivo "<ph name="FILENAME" />" se ha compartido contigo. No puedes eliminarlo porque no es tuyo.</translation>
+<translation id="8138705869659070104">Activar tras la configuración</translation>
 <translation id="813913629614996137">Inicializando…</translation>
 <translation id="8147028810663464959">Carácter de ancho completo</translation>
 <translation id="8151638057146502721">Configurar</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_et.xtb b/ui/chromeos/translations/ui_chromeos_strings_et.xtb
index 251fa9d..31ab3f80 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_et.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_et.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Järgmine</translation>
 <translation id="1209796539517632982">Automaatsed nimeserverid</translation>
 <translation id="1210831758834677569">lao</translation>
+<translation id="1221555006497674479">Salvestusruumi on vähe, alles on <ph name="REMAINING_PERCENTAGE" />% teie jagatud ketta salvestusruumist <ph name="TOTAL_SPACE" />.</translation>
 <translation id="1243314992276662751">Laadi üles</translation>
 <translation id="1249250836236328755">Žanr</translation>
 <translation id="1254593899333212300">Otsene Interneti-ühendus</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">hiina, pinyin</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> faili võrguühenduseta kättesaadavaks tegemine</translation>
 <translation id="164969095109328410">Chrome'i seade</translation>
+<translation id="1661207570040737402">Olete kasutanud ära kogu oma jagatud ketta Google Workspace'i salvestusruumi.</translation>
 <translation id="1661867754829461514">PIN-kood puudub</translation>
 <translation id="166439687370499867">Jagatud võrgu seadistuste muutmine ei ole lubatud</translation>
 <translation id="1665611772925418501">Faili ei saa muuta.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">Jäävesi</translation>
 <translation id="8128733386027980860">inglise (Ühendkuningriik), Dvoraki klaviatuuriga</translation>
 <translation id="8137331602592933310">Faili „<ph name="FILENAME" />” on teiega jagatud. Te ei saa seda kustutada, kuna te pole selle omanik.</translation>
+<translation id="8138705869659070104">Aktiveerige pärast seadme seadistust</translation>
 <translation id="813913629614996137">Lähtestamine …</translation>
 <translation id="8147028810663464959">Tähemärkide laius on täislaius</translation>
 <translation id="8151638057146502721">Seadista</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
index b17b434..9e36fbe 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
@@ -879,6 +879,7 @@
 <translation id="8116072619078571545">Ura izotzarekin</translation>
 <translation id="8128733386027980860">Ingelesa (Erresuma Batua), Dvorak teklatuarekin</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" partekatu dute zurekin. Ezin duzu ezabatu ez delako zurea.</translation>
+<translation id="8138705869659070104">Aktibatu gailua ezarri ostean</translation>
 <translation id="813913629614996137">Hasieratzen…</translation>
 <translation id="8147028810663464959">Karaktere-zabalera osoa da</translation>
 <translation id="8151638057146502721">Konfiguratu</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
index 1ec6c1e..59f4455 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">بعدی</translation>
 <translation id="1209796539517632982">سرورهای نام خودکار</translation>
 <translation id="1210831758834677569">لائوسی</translation>
+<translation id="1221555006497674479">فضای ذخیره‌سازی کم است، <ph name="REMAINING_PERCENTAGE" />٪ از <ph name="TOTAL_SPACE" /> فضای ذخیره‌سازی درایو مشترک باقی مانده است.</translation>
 <translation id="1243314992276662751">بارگذاری</translation>
 <translation id="1249250836236328755">ژانر</translation>
 <translation id="1254593899333212300">اتصال اینترنتی مستقیم</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">چینی (پین‌یین)</translation>
 <translation id="1646019627374511909">تنظیم <ph name="NUMBER_OF_ITEMS" /> فایل برای دسترسی آفلاین</translation>
 <translation id="164969095109328410">‏دستگاه Chrome</translation>
+<translation id="1661207570040737402">‏از کل فضای ذخیره‌سازی درایو مشترک Google Workspace استفاده کرده‌اید.</translation>
 <translation id="1661867754829461514">پین جا افتاده</translation>
 <translation id="166439687370499867">تغییر پیکربندی‌های شبکه هم‌رسانی‌شده مجاز نیست</translation>
 <translation id="1665611772925418501">امکان تغییر این فایل وجود نداشت.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">آب یخ</translation>
 <translation id="8128733386027980860">‏انگلیسی (بریتانیا) با صفحه‌کلید Dvorak</translation>
 <translation id="8137331602592933310">«<ph name="FILENAME" />» با شما به اشتراک گذاشته شده است. شما نمی‌توانید آن را حذف کنید زیرا به شما تعلق ندارد.</translation>
+<translation id="8138705869659070104">فعال‌سازی بعداز راه‌اندازی دستگاه</translation>
 <translation id="813913629614996137">درحال مقداردهی اولیه…</translation>
 <translation id="8147028810663464959">عرض نویسه روی «کامل» تنظیم شده است</translation>
 <translation id="8151638057146502721">پیکربندی</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
index f4b23ac..74b8f60 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Jäävesi</translation>
 <translation id="8128733386027980860">englanti (Yhdistynyt kuningaskunta), Dvorak-näppäimistö</translation>
 <translation id="8137331602592933310"><ph name="FILENAME" /> on jaettu sinulle. Et voi poistaa sitä, koska et ole tiedoston omistaja.</translation>
+<translation id="8138705869659070104">Aktivoi käyttöönoton jälkeen</translation>
 <translation id="813913629614996137">Käynnistetään…</translation>
 <translation id="8147028810663464959">Merkkileveys on täysleveä</translation>
 <translation id="8151638057146502721">Määritä</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
index ac4cf7f..bcc10838 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Susunod</translation>
 <translation id="1209796539517632982">Mga awtomatikong server ng pangalan</translation>
 <translation id="1210831758834677569">Lao</translation>
+<translation id="1221555006497674479">Paubos na ang storage, <ph name="REMAINING_PERCENTAGE" />% na lang ang natitira sa <ph name="TOTAL_SPACE" /> na storage ng iyong shared drive.</translation>
 <translation id="1243314992276662751">I-upload</translation>
 <translation id="1249250836236328755">Genre</translation>
 <translation id="1254593899333212300">Direktang koneksyon ng Internet</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Chinese Pinyin</translation>
 <translation id="1646019627374511909">Ginagawang available offline ang <ph name="NUMBER_OF_ITEMS" /> (na) file</translation>
 <translation id="164969095109328410">Chrome device</translation>
+<translation id="1661207570040737402">Nagamit mo na ang lahat ng iyong storage ng Shared Drive sa Google Workspace.</translation>
 <translation id="1661867754829461514">Nawawala ang PIN</translation>
 <translation id="166439687370499867">Hindi pinapayagan ang pagbago sa mga nakabahaging configuration ng network</translation>
 <translation id="1665611772925418501">Hindi mababago ang file.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">Tubig na may yelo</translation>
 <translation id="8128733386027980860">English (UK) na may Dvorak keyboard</translation>
 <translation id="8137331602592933310">Ibinahagi sa iyo ang "<ph name="FILENAME" />." Hindi mo ito matatanggal dahil hindi mo ito pagmamay-ari.</translation>
+<translation id="8138705869659070104">I-activate matapos ang setup</translation>
 <translation id="813913629614996137">Sinisimulan...</translation>
 <translation id="8147028810663464959">Puno na ang lapad ng character</translation>
 <translation id="8151638057146502721">I-configure</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
index 5f57d32..63f91778 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Suivant</translation>
 <translation id="1209796539517632982">Serveurs de noms automatiques</translation>
 <translation id="1210831758834677569">Laotien</translation>
+<translation id="1221555006497674479">Il ne reste plus que <ph name="REMAINING_PERCENTAGE" /> % dans votre espace de stockage Disque partagé de <ph name="TOTAL_SPACE" />.</translation>
 <translation id="1243314992276662751">Téléverser</translation>
 <translation id="1249250836236328755">Genre</translation>
 <translation id="1254593899333212300">Connexion directe à Internet</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Pinyin chinois</translation>
 <translation id="1646019627374511909">Mise à disposition hors ligne de <ph name="NUMBER_OF_ITEMS" /> fichiers en cours…</translation>
 <translation id="164969095109328410">Appareil Google Chrome</translation>
+<translation id="1661207570040737402">Vous avez utilisé tout l'espace de stockage Google Workspace de votre espace de stockage Disque partagé.</translation>
 <translation id="1661867754829461514">NIP manquant</translation>
 <translation id="166439687370499867">La modification de configurations de réseau partagé n'est pas autorisée</translation>
 <translation id="1665611772925418501">Le fichier n'a pas pu être modifié.</translation>
@@ -354,6 +356,7 @@
 <translation id="3971140002794351170">Télécharger le profil cellulaire, réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">Anglais (R.-U.)</translation>
 <translation id="3975895378829046965">Bangla (phonétique)</translation>
+<translation id="3999574733850440202">Les fichiers Microsoft récemment ouverts ont été déplacés vers OneDrive</translation>
 <translation id="4002066346123236978">Titre</translation>
 <translation id="4017788180641807848">Anglais (É.-U.) avec clavier Workman</translation>
 <translation id="4019998208269143058">Épingler à l'accès rapide aux fichiers</translation>
@@ -881,6 +884,7 @@
 <translation id="8116072619078571545">Eau glacée</translation>
 <translation id="8128733386027980860">Anglais (R.-U.) avec clavier Dvorak</translation>
 <translation id="8137331602592933310">Le fichier « <ph name="FILENAME" /> » a été partagé avec vous. Vous ne pouvez pas le supprimer, car vous n'en êtes pas le propriétaire.</translation>
+<translation id="8138705869659070104">Activer après config. app.</translation>
 <translation id="813913629614996137">Initialisation en cours...</translation>
 <translation id="8147028810663464959">Largeur de caractères : pleine</translation>
 <translation id="8151638057146502721">Configurer</translation>
@@ -906,6 +910,7 @@
 <translation id="8300849813060516376">Échec de l'opération OTASP</translation>
 <translation id="8312871300878166382">Coller dans le dossier</translation>
 <translation id="8329978297633540474">Texte brut</translation>
+<translation id="8332007959299458842">Les fichiers Microsoft récemment ouverts ont été déplacés vers Google Disque</translation>
 <translation id="8335587457941836791">Retirer de l'étagère</translation>
 <translation id="8335837413233998004">Biélorusse</translation>
 <translation id="8336153091935557858">Hier à <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
index 2f008a1..62769454 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Eau gelée</translation>
 <translation id="8128733386027980860">Anglais (Royaume-Uni) avec clavier Dvorak</translation>
 <translation id="8137331602592933310">Le fichier "<ph name="FILENAME" />" a été partagé avec vous. Vous ne pouvez pas le supprimer, car vous n'en êtes pas le propriétaire.</translation>
+<translation id="8138705869659070104">Activer après config. appareil</translation>
 <translation id="813913629614996137">Initialisation…</translation>
 <translation id="8147028810663464959">Largeur de caractères : pleine</translation>
 <translation id="8151638057146502721">Configurer</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
index 7b65a3a..efc55b00 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Seguinte</translation>
 <translation id="1209796539517632982">Servidores de nomes automáticos</translation>
 <translation id="1210831758834677569">Laosiano</translation>
+<translation id="1221555006497674479">Tes pouco espazo de almacenamento: quédache un <ph name="REMAINING_PERCENTAGE" /> % do almacenamento da unidade compartida (<ph name="TOTAL_SPACE" />).</translation>
 <translation id="1243314992276662751">Cargar</translation>
 <translation id="1249250836236328755">Xénero</translation>
 <translation id="1254593899333212300">Conexión directa a Internet</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Chinés (pinyin)</translation>
 <translation id="1646019627374511909">Activando acceso sen conexión a <ph name="NUMBER_OF_ITEMS" /> ficheiros</translation>
 <translation id="164969095109328410">Dispositivo Chrome</translation>
+<translation id="1661207570040737402">Tes ocupado todo o espazo de almacenamento de Google Workspace para a unidade compartida.</translation>
 <translation id="1661867754829461514">Non se atopa o PIN</translation>
 <translation id="166439687370499867">Non se permite cambiar a configuración da rede compartida</translation>
 <translation id="1665611772925418501">Non se puido modificar o ficheiro.</translation>
@@ -879,6 +881,7 @@
 <translation id="8116072619078571545">Auga xeada</translation>
 <translation id="8128733386027980860">Inglés (Reino Unido) con teclado Dvorak</translation>
 <translation id="8137331602592933310">Compartiuse "<ph name="FILENAME" />" contigo. Non podes eliminalo porque non es o propietario.</translation>
+<translation id="8138705869659070104">Activar tras a configuración</translation>
 <translation id="813913629614996137">Iniciando...</translation>
 <translation id="8147028810663464959">A largura do carácter é completa</translation>
 <translation id="8151638057146502721">Configurar</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
index 682b603..3270071 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
@@ -878,6 +878,7 @@
 <translation id="8116072619078571545">બરફનું પાણી</translation>
 <translation id="8128733386027980860">અંગ્રેજી (યુકે), Dvorak કીબોર્ડ સાથે</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" તમારી સાથે શેર કરવામાં આવી છે. તમે એને કાઢી શકતા નથી કારણ કે તમે તેના માલિક નથી.</translation>
+<translation id="8138705869659070104">ડિવાઇસના સેટઅપ બાદ સક્રિય કરો</translation>
 <translation id="813913629614996137">પ્રારંભ કરી રહ્યું છે...</translation>
 <translation id="8147028810663464959">અક્ષરની પહોળાઈ પૂર્ણ છે</translation>
 <translation id="8151638057146502721">ગોઠવો</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
index eef7f9b..74c01af3 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">अगला</translation>
 <translation id="1209796539517632982">स्वचालित नाम सर्वर</translation>
 <translation id="1210831758834677569">लाओ</translation>
+<translation id="1221555006497674479">आपके <ph name="TOTAL_SPACE" /> की शेयर की गई ड्राइव में सिर्फ़ <ph name="REMAINING_PERCENTAGE" />% स्टोरेज बचा है.</translation>
 <translation id="1243314992276662751">अपलोड करें</translation>
 <translation id="1249250836236328755">शैली</translation>
 <translation id="1254593899333212300">प्रत्यक्ष इंटरनेट कनेक्‍शन</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">चाइनीज़ पिनयिन</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> फ़ाइलों को ऑफ़लाइन इस्तेमाल करने के लिए डाउनलोड किया जा रहा है</translation>
 <translation id="164969095109328410">Chrome डिवाइस</translation>
+<translation id="1661207570040737402">आपने Google Workspace के साथ शेयर की गई अपनी ड्राइव के स्टोरेज का इस्तेमाल कर लिया है.</translation>
 <translation id="1661867754829461514">पिन गुम</translation>
 <translation id="166439687370499867">शेयर किए गए नेटवर्क कॉन्फ़िगरेशन बदलने की अनुमति नहीं है</translation>
 <translation id="1665611772925418501">फ़ाइल को संशोधित नहीं किया जा सका.</translation>
@@ -354,6 +356,7 @@
 <translation id="3971140002794351170">मोबाइल प्रोफ़ाइल डाउनलोड करें. यह <ph name="NETWORK_PROVIDER_NAME" /> के <ph name="NETWORK_COUNT" /> <ph name="NETWORK_NAME" /> नेटवर्क में से नेटवर्क <ph name="NETWORK_INDEX" /> है</translation>
 <translation id="3973925058222872294">अंग्रेज़ी (यूके)</translation>
 <translation id="3975895378829046965">बांग्ला फ़ोनेटिक</translation>
+<translation id="3999574733850440202">हाल ही में खोली गई Microsoft फ़ाइलों को OneDrive में भेज दिया गया है</translation>
 <translation id="4002066346123236978">शीर्षक</translation>
 <translation id="4017788180641807848">वर्कमैन कीबोर्ड के साथ अंग्रेज़ी (यूएस)</translation>
 <translation id="4019998208269143058">क्विक फ़ाइलों में पिन करें</translation>
@@ -880,6 +883,7 @@
 <translation id="8116072619078571545">ठंडा पानी</translation>
 <translation id="8128733386027980860">ड्वोराक कीबोर्ड के साथ अंग्रेज़ी (यूके)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" को आपके साथ शेयर किया गया है. आप इसे नहीं मिटा सकते क्योंकि आप इसके मालिक नहीं हैं.</translation>
+<translation id="8138705869659070104">डिवाइस सेटअप के बाद चालू करें</translation>
 <translation id="813913629614996137">शुरू हो रहा है...</translation>
 <translation id="8147028810663464959">वर्ण की चौड़ाई 'सबसे ज़्यादा' पर सेट है</translation>
 <translation id="8151638057146502721">कॉन्फ़िगर करें</translation>
@@ -905,6 +909,7 @@
 <translation id="8300849813060516376">OTASP विफल</translation>
 <translation id="8312871300878166382">फ़ोल्डर में चिपकाएं</translation>
 <translation id="8329978297633540474">सादा लेख</translation>
+<translation id="8332007959299458842">हाल ही में खोली गई Microsoft फ़ाइलों को Google Drive में भेज दिया गया है</translation>
 <translation id="8335587457941836791">अलमारी से टैब बड़ी करें</translation>
 <translation id="8335837413233998004">बेलारशियन</translation>
 <translation id="8336153091935557858">कल <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
index 901d60d..3fed453d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Dalje</translation>
 <translation id="1209796539517632982">Automatski poslužitelji naziva</translation>
 <translation id="1210831758834677569">laoski</translation>
+<translation id="1221555006497674479">Preostalo je malo pohrane, još <ph name="REMAINING_PERCENTAGE" />% od ukupno <ph name="TOTAL_SPACE" /> na dijeljenom disku.</translation>
 <translation id="1243314992276662751">Prenesi</translation>
 <translation id="1249250836236328755">Žanr</translation>
 <translation id="1254593899333212300">Izravna internetska veza</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">kineski pinyin</translation>
 <translation id="1646019627374511909">Broj datoteka koje će biti dostupne offline: <ph name="NUMBER_OF_ITEMS" /></translation>
 <translation id="164969095109328410">Chrome uređaj</translation>
+<translation id="1661207570040737402">U potpunosti ste iskoristili pohranu dijeljenog diska na Google Workspaceu.</translation>
 <translation id="1661867754829461514">Nedostaje PIN</translation>
 <translation id="166439687370499867">Promjena zajedničkih konfiguracija mreže nije dopuštena</translation>
 <translation id="1665611772925418501">Nije bilo moguće mijenjati datoteku.</translation>
@@ -354,6 +356,7 @@
 <translation id="3971140002794351170">Preuzmi mobilni profil, mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">engleski (UK)</translation>
 <translation id="3975895378829046965">bengalski fonetski</translation>
+<translation id="3999574733850440202">Nedavno otvorene Microsoftove datoteke premještene su na OneDrive</translation>
 <translation id="4002066346123236978">Naslov</translation>
 <translation id="4017788180641807848">engleski (SAD) s Workman tipkovnicom</translation>
 <translation id="4019998208269143058">Prikvači na brzi pristup datotekama</translation>
@@ -880,6 +883,7 @@
 <translation id="8116072619078571545">Ledena voda</translation>
 <translation id="8128733386027980860">engleski (UK) s tipkovnicom Dvorak</translation>
 <translation id="8137331602592933310">S vama je podijeljena datoteka "<ph name="FILENAME" />". Ne možete je izbrisati jer joj niste vlasnik.</translation>
+<translation id="8138705869659070104">Aktiviraj nakon postavljanja uređaja</translation>
 <translation id="813913629614996137">Pokretanje...</translation>
 <translation id="8147028810663464959">Znakovi su u punoj širini</translation>
 <translation id="8151638057146502721">Konfiguracija</translation>
@@ -905,6 +909,7 @@
 <translation id="8300849813060516376">OTASP nije uspio</translation>
 <translation id="8312871300878166382">Zalijepi u mapu</translation>
 <translation id="8329978297633540474">Običan tekst</translation>
+<translation id="8332007959299458842">Nedavno otvorene Microsoftove datoteke premještene su na Google disk</translation>
 <translation id="8335587457941836791">Otkvači s police</translation>
 <translation id="8335837413233998004">bjeloruski</translation>
 <translation id="8336153091935557858">Jučer u <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
index 7d2f912..f4f5ed1 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Tovább</translation>
 <translation id="1209796539517632982">Automatikus névszerverek</translation>
 <translation id="1210831758834677569">lao</translation>
+<translation id="1221555006497674479">Kevés tárhely (<ph name="REMAINING_PERCENTAGE" />%) maradt a(z) <ph name="TOTAL_SPACE" /> megosztott meghajtón.</translation>
 <translation id="1243314992276662751">Feltöltés</translation>
 <translation id="1249250836236328755">Műfaj</translation>
 <translation id="1254593899333212300">Közvetlen internetkapcsolat</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">kínai pinjin</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> fájl offline hozzáférhetővé tétele…</translation>
 <translation id="164969095109328410">Chrome-eszköz</translation>
+<translation id="1661207570040737402">Felhasználta a megosztott meghajtó Google Workspace-tárhelyét.</translation>
 <translation id="1661867754829461514">Hiányzó PIN-kód</translation>
 <translation id="166439687370499867">A megosztott hálózati konfigurációk módosítása nem engedélyezett</translation>
 <translation id="1665611772925418501">A fájlt nem lehet módosítani.</translation>
@@ -354,6 +356,7 @@
 <translation id="3971140002794351170">Mobilprofil letöltése, <ph name="NETWORK_COUNT" />/<ph name="NETWORK_INDEX" />. hálózat, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">angol (Egyesült Királyság)</translation>
 <translation id="3975895378829046965">bengáli, fonetikus</translation>
+<translation id="3999574733850440202">A közelmúltban megnyitott Microsoft-fájlok átkerültek a OneDrive szolgáltatásba</translation>
 <translation id="4002066346123236978">Cím</translation>
 <translation id="4017788180641807848">angol (USA) billentyűzet Workman kiosztással</translation>
 <translation id="4019998208269143058">Kitűzés a gyorsfájlok közé</translation>
@@ -880,6 +883,7 @@
 <translation id="8116072619078571545">Jeges víz</translation>
 <translation id="8128733386027980860">angol (Egyesült Királyság) billentyűzet Dvorak kiosztással</translation>
 <translation id="8137331602592933310">A következőt osztották meg Önnel: „<ph name="FILENAME" />”. Nem törölheti, mert nem az Ön tulajdonában áll.</translation>
+<translation id="8138705869659070104">Aktiválás eszközbeállítás után</translation>
 <translation id="813913629614996137">Indítás…</translation>
 <translation id="8147028810663464959">A karakterszélesség félkövér</translation>
 <translation id="8151638057146502721">Konfigurálás</translation>
@@ -905,6 +909,7 @@
 <translation id="8300849813060516376">OTASP sikertelen</translation>
 <translation id="8312871300878166382">Beillesztés mappába</translation>
 <translation id="8329978297633540474">Egyszerű szöveg</translation>
+<translation id="8332007959299458842">A közelmúltban megnyitott Microsoft-fájlok átkerültek a Google Drive-ra</translation>
 <translation id="8335587457941836791">Rögzítés feloldása a polcon</translation>
 <translation id="8335837413233998004">belarusz</translation>
 <translation id="8336153091935557858">Tegnap <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
index 7815668..ab779f4d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
@@ -879,6 +879,7 @@
 <translation id="8116072619078571545">Սառույցով ջուր</translation>
 <translation id="8128733386027980860">անգլերեն (ՄԹ)՝ Dvorak ստեղնաշարով</translation>
 <translation id="8137331602592933310">«<ph name="FILENAME" />» ֆայլը համօգտագործվել է ձեզ հետ: Դուք չեք կարող ջնջել այն, քանի որ այն ձերը չէ:</translation>
+<translation id="8138705869659070104">Ակտիվացրեք սարքի կարգավ․ հետո</translation>
 <translation id="813913629614996137">Նախապատրաստվում է...</translation>
 <translation id="8147028810663464959">Նիշերի լայնությունը՝ լիալայքն</translation>
 <translation id="8151638057146502721">Կազմաձևել</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_id.xtb b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
index d02d3cd..aeea53f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_id.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Air es</translation>
 <translation id="8128733386027980860">Inggris (Inggris Raya) dengan keyboard Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" telah dibagikan dengan Anda. Namun Anda tidak dapat menghapusnya karena bukan milik Anda.</translation>
+<translation id="8138705869659070104">Aktifkan setelah penyiapan perangkat</translation>
 <translation id="813913629614996137">Memulai...</translation>
 <translation id="8147028810663464959">Lebar karakter Penuh</translation>
 <translation id="8151638057146502721">Konfigurasi</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_is.xtb b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
index 95c0d164..9861f21 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_is.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
@@ -879,6 +879,7 @@
 <translation id="8116072619078571545">Klakavatn</translation>
 <translation id="8128733386027980860">Enska (bresk) með Dvorak-lyklaborði</translation>
 <translation id="8137331602592933310">„<ph name="FILENAME" />“ hefur verið deilt með þér. Þú getur ekki eytt því vegna þess að þú ert ekki eigandinn.</translation>
+<translation id="8138705869659070104">Virkja eftir uppsetningu tækis</translation>
 <translation id="813913629614996137">Frumstillir...</translation>
 <translation id="8147028810663464959">Stafir eru í fullri breidd</translation>
 <translation id="8151638057146502721">Grunnstilla</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_it.xtb b/ui/chromeos/translations/ui_chromeos_strings_it.xtb
index ec29849..07d7b197 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_it.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_it.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Avanti</translation>
 <translation id="1209796539517632982">Assegnazione automatica nomi ai server</translation>
 <translation id="1210831758834677569">Lao</translation>
+<translation id="1221555006497674479">Spazio di archiviazione in esaurimento: <ph name="REMAINING_PERCENTAGE" />% del tuo spazio di archiviazione di Drive condiviso (<ph name="TOTAL_SPACE" />) ancora disponibile.</translation>
 <translation id="1243314992276662751">Carica</translation>
 <translation id="1249250836236328755">Genere</translation>
 <translation id="1254593899333212300">Connessione diretta a Internet</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Cinese pinyin</translation>
 <translation id="1646019627374511909">Preparazione per la visualizzazione offline di <ph name="NUMBER_OF_ITEMS" /> file…</translation>
 <translation id="164969095109328410">Dispositivo Chrome</translation>
+<translation id="1661207570040737402">Hai esaurito il tuo spazio di archiviazione Google Workspace su Drive condiviso.</translation>
 <translation id="1661867754829461514">PIN mancante</translation>
 <translation id="166439687370499867">La modifica delle configurazioni di rete condivise non è consentita</translation>
 <translation id="1665611772925418501">Impossibile modificare il file.</translation>
@@ -879,6 +881,7 @@
 <translation id="8116072619078571545">Acqua con ghiaccio</translation>
 <translation id="8128733386027980860">Inglese (UK) con tastiera Dvorak</translation>
 <translation id="8137331602592933310">Il file "<ph name="FILENAME" />" è stato condiviso con te. Non puoi eliminarlo perché non ne sei il proprietario.</translation>
+<translation id="8138705869659070104">Attiva dopo configur. dispos.</translation>
 <translation id="813913629614996137">Inizializzazione...</translation>
 <translation id="8147028810663464959">La larghezza dei caratteri è piena</translation>
 <translation id="8151638057146502721">Configura</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
index 9d2e2e6..e56bb96d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
@@ -881,6 +881,7 @@
 <translation id="8116072619078571545">מים עם קרח</translation>
 <translation id="8128733386027980860">‏מקלדת Dvorak באנגלית (ארה"ב)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" שותף איתך. אין באפשרותך למחוק אותו מאחר שאינך הבעלים שלו.</translation>
+<translation id="8138705869659070104">הפעלה לאחר הגדרת המכשיר</translation>
 <translation id="813913629614996137">מתבצע אתחול...</translation>
 <translation id="8147028810663464959">רוחב התווים הוא מלא</translation>
 <translation id="8151638057146502721">הגדרה</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
index d8010c8..4293108 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">氷水</translation>
 <translation id="8128733386027980860">英語(イギリス)(Dvorak)キーボード</translation>
 <translation id="8137331602592933310">「<ph name="FILENAME" />」を共有しました。ファイルの所有者ではないため、このファイルを削除することはできません。</translation>
+<translation id="8138705869659070104">デバイスのセットアップ後に有効にします</translation>
 <translation id="813913629614996137">初期化しています...</translation>
 <translation id="8147028810663464959">文字幅は全角です</translation>
 <translation id="8151638057146502721">設定</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
index 8676a9b..a0edbff 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
@@ -882,6 +882,7 @@
 <translation id="8116072619078571545">გაყინული წყალი</translation>
 <translation id="8128733386027980860">ინგლისური (გაერთიანებული სამეფო) Dvorak კლავიატურით</translation>
 <translation id="8137331602592933310">„<ph name="FILENAME" />“ გაზიარებულია თქვენთვის. მისი წაშლა შეუძლებელია, რადგან ის თქვენ არ გეკუთვნით.</translation>
+<translation id="8138705869659070104">გააქტიურება მოწყობილობის დაყენების შემდეგ</translation>
 <translation id="813913629614996137">მიმდინარეობს ინიცირება…</translation>
 <translation id="8147028810663464959">სიმბოლოთა სიგანე სავსეა</translation>
 <translation id="8151638057146502721">კონფიგურირება</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
index 1a75ab8..fe75ee0 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
@@ -881,6 +881,7 @@
 <translation id="8116072619078571545">Мұзды су</translation>
 <translation id="8128733386027980860">Ағылшын (БК), Дворак пернетақтасымен</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" сізбен бөлісілді. Өзіңіздікі болмағандықтан, оны жоя алмайсыз.</translation>
+<translation id="8138705869659070104">Орнатудан кейін белсендіру</translation>
 <translation id="813913629614996137">Дайындауда…</translation>
 <translation id="8147028810663464959">Таңба ені – толық</translation>
 <translation id="8151638057146502721">Конфигурациялау</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_km.xtb b/ui/chromeos/translations/ui_chromeos_strings_km.xtb
index a0b66ca..7736e194 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_km.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_km.xtb
@@ -881,6 +881,7 @@
 <translation id="8116072619078571545">ទឹកកក</translation>
 <translation id="8128733386027980860">ភាសា​អង់គ្លេស (ចក្រភព​អង់គ្លេស) ដែលប្រើ​ក្ដារចុច Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" បានចែករំលែកជាមួយអ្នក។ អ្នកមិនអាចលុបវាទេ ពីព្រោះអ្នកមិនមានជាម្ចាស់របស់វា។</translation>
+<translation id="8138705869659070104">បើកដំណើរការបន្ទាប់ពីរៀបចំឧបករណ៍</translation>
 <translation id="813913629614996137">កំពុង​ចាប់ផ្ដើម…</translation>
 <translation id="8147028810663464959">តួអក្សរមានទទឹងពេញ</translation>
 <translation id="8151638057146502721">តំឡើង</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
index ecc2dc2..dc6e41b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
@@ -882,6 +882,7 @@
 <translation id="8116072619078571545">ಮಂಜುಗಡ್ಡೆ ನೀರು</translation>
 <translation id="8128733386027980860">ಡ್ವೊರಾಕ್ ಕೀಬೋರ್ಡ್‌ನಲ್ಲಿ ಇಂಗ್ಲಿಷ್ (ಯುಕೆ)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" ಅನ್ನು ನಿಮ್ಮೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ. ನೀವು ಅದನ್ನು ಹೊಂದಿಲ್ಲದಿರುವ ಕಾರಣ ನಿಮಗೆ ಅದನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
+<translation id="8138705869659070104">ಸಾಧನದ ಸೆಟಪ್ ನಂತರ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="813913629614996137">ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="8147028810663464959">ಅಕ್ಷರದ ಅಗಲವು ಪೂರ್ಣವಾಗಿದೆ</translation>
 <translation id="8151638057146502721">ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
index 6c92bb40..f5fc45a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">다음</translation>
 <translation id="1209796539517632982">자동 네임서버</translation>
 <translation id="1210831758834677569">라오어</translation>
+<translation id="1221555006497674479">저장용량 부족. 공유 드라이브 저장용량 <ph name="TOTAL_SPACE" /> 중 <ph name="REMAINING_PERCENTAGE" />% 남았습니다.</translation>
 <translation id="1243314992276662751">업로드</translation>
 <translation id="1249250836236328755">장르</translation>
 <translation id="1254593899333212300">인터넷에 바로 연결</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">중국어(병음)</translation>
 <translation id="1646019627374511909">파일 <ph name="NUMBER_OF_ITEMS" />개를 오프라인에서 사용하도록 설정 중</translation>
 <translation id="164969095109328410">Chrome 기기</translation>
+<translation id="1661207570040737402">공유 드라이브의 Google Workspace 스토리지를 모두 사용했습니다.</translation>
 <translation id="1661867754829461514">PIN이 없습니다.</translation>
 <translation id="166439687370499867">공유 네트워크 설정 변경은 허용되지 않습니다</translation>
 <translation id="1665611772925418501">파일을 수정하지 못했습니다.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">얼음물</translation>
 <translation id="8128733386027980860">영어(영국, 드보락 키보드)</translation>
 <translation id="8137331602592933310">다른 사용자가 '<ph name="FILENAME" />'을(를) 나와 공유했습니다. 내가 소유자가 아니므로 삭제할 수 없습니다.</translation>
+<translation id="8138705869659070104">기기 설정 후 활성화</translation>
 <translation id="813913629614996137">초기화 중...</translation>
 <translation id="8147028810663464959">문자 폭을 최대로 설정</translation>
 <translation id="8151638057146502721">구성</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
index 192fe6b..69cb39a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
@@ -879,6 +879,7 @@
 <translation id="8116072619078571545">Муз кошулган суу</translation>
 <translation id="8128733386027980860">Англисче (Улуу Британия) жана Dvorak баскычтобу</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" сиз менен бөлүшүлдү. Ал сизге таандык эмес болгондуктан, аны жок кыла албайсыз.</translation>
+<translation id="8138705869659070104">Түзмөк тууралангандан кийин иштетилсин</translation>
 <translation id="813913629614996137">Баштапкы маанини берүүдө...</translation>
 <translation id="8147028810663464959">Символдун эни Толук</translation>
 <translation id="8151638057146502721">Конфигурациялоо</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lo.xtb b/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
index 7a5318b..3d825eb 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">ຕໍ່ໄປ</translation>
 <translation id="1209796539517632982">ເຊີບເວີ​ຊື່​ອັດ​ຕະ​ໂນ​ມັດ</translation>
 <translation id="1210831758834677569">ພາສາລາວ</translation>
+<translation id="1221555006497674479">ບ່ອນຈັດເກັບຂໍ້ມູນຍັງເຫຼືອໜ້ອຍພຽງ <ph name="REMAINING_PERCENTAGE" />% ຂອງບ່ອນຈັດເກັບຂໍ້ມູນ Drive <ph name="TOTAL_SPACE" /> ຂອງທ່ານ.</translation>
 <translation id="1243314992276662751">ອັບ​ໂຫຼດ</translation>
 <translation id="1249250836236328755">ປະເພດ</translation>
 <translation id="1254593899333212300">ການເຊື່ອມຕໍ່ອິນເຕີເນັດໂດຍກົງ</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">ພາສາຈີນພິນອິນ</translation>
 <translation id="1646019627374511909">ກຳລັງເຮັດໃຫ້ <ph name="NUMBER_OF_ITEMS" /> ໄຟລ໌ເປັນໄຟລ໌ອອບລາຍ</translation>
 <translation id="164969095109328410">ອຸປະກອນ Chrome</translation>
+<translation id="1661207570040737402">ທ່ານໃຊ້ບ່ອນຈັດເກັບຂໍ້ມູນ Google Workspace ໃນໄດຣຟ໌ທີ່ແບ່ງປັນຂອງທ່ານໝົດແລ້ວ.</translation>
 <translation id="1661867754829461514">PIN ຂາດຫາຍໄປ</translation>
 <translation id="166439687370499867">ບໍ່ອະນຸຍາດໃຫ້ປ່ຽນການກຳນົດຄ່າເຄືອຂ່າຍທີ່ໃຊ້ຮ່ວມກັນ</translation>
 <translation id="1665611772925418501">ບໍ່​ສາ​ມາດ​ດັດແປງໄຟລ​໌​ນີ້ໄດ້​.</translation>
@@ -879,6 +881,7 @@
 <translation id="8116072619078571545">ນໍ້າກ້ອນ</translation>
 <translation id="8128733386027980860">ພາສາອັງກິດ (ສະຫະລາດຊະອານາຈັກ) ທີ່ໃຊ້ແປ້ນພິມ Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" ໄດ້ຖືກແຊຣ໌ກັບທ່ານ. ທ່ານບໍ່ສາມາດລຶບມັນໄດ້ ເພາະວ່າທ່ານບໍ່ເປັນເຈົ້າຂອງມັນ.</translation>
+<translation id="8138705869659070104">ເປີດໃຊ້ຫຼັງຈາກຕິດຕັ້ງອຸປະກອນ</translation>
 <translation id="813913629614996137">ກຳລັງລິເລີ່ມ...</translation>
 <translation id="8147028810663464959">ຄວາມກວ້າງຕົວອັກສອນເຕັມແລ້ວ</translation>
 <translation id="8151638057146502721">ປັບ​ຕັ້ງ​ຄ່າ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
index cc09e5b..2c57b3e6 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Ledinis vanduo</translation>
 <translation id="8128733386027980860">Anglų k. (JK) su Dvorako klaviatūra</translation>
 <translation id="8137331602592933310">Su jumis buvo bendrintas failas „<ph name="FILENAME" />“. Negalite jo ištrinti, nes jis jums nepriklauso.</translation>
+<translation id="8138705869659070104">Suaktyvinti po įrenginio sąrankos</translation>
 <translation id="813913629614996137">Inicijuojama...</translation>
 <translation id="8147028810663464959">Simbolio plotis yra viso dydžio</translation>
 <translation id="8151638057146502721">Konfigūruoti</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
index 85070228..f64d628 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Ūdens ar ledu</translation>
 <translation id="8128733386027980860">Angļu (Apvienotā Karaliste), ar Dvorak tastatūru</translation>
 <translation id="8137331602592933310">Fails “<ph name="FILENAME" />” tika kopīgots ar jums. Jūs nevarat to dzēst, jo tas nepieder jums.</translation>
+<translation id="8138705869659070104">Aktivizēt pēc iestatīšanas</translation>
 <translation id="813913629614996137">Notiek inicializēšana...</translation>
 <translation id="8147028810663464959">Rakstzīmju platums ir pilns.</translation>
 <translation id="8151638057146502721">Konfigurēt</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
index 86556c8..058ec686 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
@@ -879,6 +879,7 @@
 <translation id="8116072619078571545">Вода со мраз</translation>
 <translation id="8128733386027980860">англиски (САД) со тастатура Dvorak</translation>
 <translation id="8137331602592933310">„<ph name="FILENAME" />“ е споделен со вас. Не може да го избришете затоа што не го поседувате.</translation>
+<translation id="8138705869659070104">Активирајте по поставувањето</translation>
 <translation id="813913629614996137">Се иницијализира…</translation>
 <translation id="8147028810663464959">Ширината на знакот е полна</translation>
 <translation id="8151638057146502721">Конфигурирај</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
index 59b20bcd..f51be1a2c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
@@ -882,6 +882,7 @@
 <translation id="8116072619078571545">ഐസ് വെള്ളം</translation>
 <translation id="8128733386027980860">Dvorak കീബോർഡ് ഉള്ള ഇംഗ്ലീഷ് (യുകെ)</translation>
 <translation id="8137331602592933310">നിങ്ങളുമായി "<ph name="FILENAME" />" എന്നത് പങ്കിട്ടിരിക്കുന്നു. ഇത് നിങ്ങളുടേതല്ലാത്തതിനാൽ നിങ്ങൾക്ക് അത് ഇല്ലാതാക്കാനാകില്ല.</translation>
+<translation id="8138705869659070104">ഉപകരണം സജ്ജീകരിച്ച് സജീവമാക്കൂ</translation>
 <translation id="813913629614996137">ആരംഭിക്കുന്നു...</translation>
 <translation id="8147028810663464959">പ്രതീകം പൂർണ്ണ വീതിയിലാണ്</translation>
 <translation id="8151638057146502721">കോൺഫിഗർ ചെയ്യുക</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mn.xtb b/ui/chromeos/translations/ui_chromeos_strings_mn.xtb
index 3f087bb..471decc 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mn.xtb
@@ -877,6 +877,7 @@
 <translation id="8116072619078571545">Мөстэй ус</translation>
 <translation id="8128733386027980860">Dvorak гартай англи (ИБ)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" Тантай хуваалцагдсан байна. Та энэ файлыг эзэмшдэггүй учраас устгах боломжгүй.</translation>
+<translation id="8138705869659070104">Төхөөрөмж тохируулаад идэвхжүүл</translation>
 <translation id="813913629614996137">Эхлүүлж байна…</translation>
 <translation id="8147028810663464959">Тэмдэгтүүдийн өргөн бүтэн байна</translation>
 <translation id="8151638057146502721">Тохируулах</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
index f39a828..d1c24bd4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">बर्फाचे पाणी</translation>
 <translation id="8128733386027980860">ड्वोझॅक कीबोर्डसह इंग्रजी (यूके)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" आपल्यासह शेअर केले गेले आहे. हे आपल्या मालकीचे नसल्यामुळे तुम्ही ते हटवू शकत नाही.</translation>
+<translation id="8138705869659070104">डिव्हाइस सेटअपनंतर सक्रिय करा</translation>
 <translation id="813913629614996137">सुरू करत आहे…</translation>
 <translation id="8147028810663464959">वर्णाची रुंदी पूर्ण आहे</translation>
 <translation id="8151638057146502721">कॉंफिगर करा</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
index 5474b61e..e17475a5 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Seterusnya</translation>
 <translation id="1209796539517632982">Nama pelayan automatik</translation>
 <translation id="1210831758834677569">Lao</translation>
+<translation id="1221555006497674479">Storan rendah <ph name="REMAINING_PERCENTAGE" />% berbaki daripada <ph name="TOTAL_SPACE" /> storan drive kongsi anda.</translation>
 <translation id="1243314992276662751">Muat naik</translation>
 <translation id="1249250836236328755">Genre</translation>
 <translation id="1254593899333212300">Sambungan Internet Langsung</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Pinyin Cina</translation>
 <translation id="1646019627374511909">Menjadikan <ph name="NUMBER_OF_ITEMS" /> fail tersedia di luar talian</translation>
 <translation id="164969095109328410">Peranti Chrome</translation>
+<translation id="1661207570040737402">Anda telah menggunakan semua storan Drive Kongsi Google Workspace anda.</translation>
 <translation id="1661867754829461514">PIN tiada</translation>
 <translation id="166439687370499867">Penukaran konfigurasi rangkaian kongsi tidak dibenarkan</translation>
 <translation id="1665611772925418501">Fail tidak boleh diubah suai.</translation>
@@ -354,6 +356,7 @@
 <translation id="3971140002794351170">Muat turun profil mudah alih, Rangkaian <ph name="NETWORK_INDEX" /> daripada <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">Inggeris (UK)</translation>
 <translation id="3975895378829046965">Fonetik Bangla</translation>
+<translation id="3999574733850440202">Fail Microsoft yang dibuka baru-baru ini telah dialihkan kepada OneDrive</translation>
 <translation id="4002066346123236978">Tajuk</translation>
 <translation id="4017788180641807848">Inggeris (AS) dengan papan kekunci Workman</translation>
 <translation id="4019998208269143058">Sematkan pada fail pantas</translation>
@@ -880,6 +883,7 @@
 <translation id="8116072619078571545">Air ais</translation>
 <translation id="8128733386027980860">Inggeris (UK) dengan papan kekunci Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" telah dikongsikan dengan anda. Anda tidak boleh memadamkan fail kerana anda bukan pemiliknya.</translation>
+<translation id="8138705869659070104">Aktifkn slps prsediaan pranti</translation>
 <translation id="813913629614996137">Memulakan...</translation>
 <translation id="8147028810663464959">Lebar aksara ialah Penuh</translation>
 <translation id="8151638057146502721">Konfigurasi</translation>
@@ -905,6 +909,7 @@
 <translation id="8300849813060516376">OTASP gagal</translation>
 <translation id="8312871300878166382">Tampal ke folder</translation>
 <translation id="8329978297633540474">Teks biasa</translation>
+<translation id="8332007959299458842">Fail Microsoft yang dibuka baru-baru ini telah dialihkan kepada Google Drive</translation>
 <translation id="8335587457941836791">Nyahsemat dari rak</translation>
 <translation id="8335837413233998004">Belarus</translation>
 <translation id="8336153091935557858">Semalam <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_my.xtb b/ui/chromeos/translations/ui_chromeos_strings_my.xtb
index fb0a2c2..51be9f7 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_my.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_my.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">ရှေ့သို့</translation>
 <translation id="1209796539517632982">အလိုအလျောက် အမည် ဆာဗာများ</translation>
 <translation id="1210831758834677569">လာအို</translation>
+<translation id="1221555006497674479">မျှသုံးဒရိုက်ဗ် သိုလှောင်ခန်း <ph name="TOTAL_SPACE" /> အနက် <ph name="REMAINING_PERCENTAGE" />% အနည်းငယ်သာ ကျန်တော့သည်။</translation>
 <translation id="1243314992276662751">အာပ်လုဒ် လုပ်ရန်</translation>
 <translation id="1249250836236328755">သီချင်းအမျိုးအစား</translation>
 <translation id="1254593899333212300">တိုက်ရိုက် အင်တာနက် ချိတ်ဆက်မှု</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">တရုတ် ပင်ယင်</translation>
 <translation id="1646019627374511909">ဖိုင် <ph name="NUMBER_OF_ITEMS" /> ခုကို အော့ဖ်လိုင်းသုံး၍ရအောင် ပြုလုပ်နေသည်</translation>
 <translation id="164969095109328410">Chrome ကိရိယာ</translation>
+<translation id="1661207570040737402">‘မျှသုံးဒရိုက်ဗ်’ Google Workspace သိုလှောင်ခန်းအားလုံးကို သုံးထားသည်။</translation>
 <translation id="1661867754829461514">ပင်နံပါတ်ကုဒ် လိုသေးသည်</translation>
 <translation id="166439687370499867">မျှဝေထားသော ကွန်ရက်စီစဉ်သတ်မှတ်မှုများကို ပြောင်းခွင့်မပြုပါ</translation>
 <translation id="1665611772925418501">ဖိုင်ကို မွမ်းမံ မပေးနိုင်ခဲ့ပါ။</translation>
@@ -354,6 +356,7 @@
 <translation id="3971140002794351170">မိုဘိုင်းပရိုဖိုင် ဒေါင်းလုဒ်လုပ်ရန်၊ ကွန်ရက် <ph name="NETWORK_COUNT" /> ခုအနက် <ph name="NETWORK_INDEX" />၊ <ph name="NETWORK_NAME" />၊ <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">အင်္ဂလိပ် (ယူကေ)</translation>
 <translation id="3975895378829046965">ဘင်္ဂါလီ အသံထွက်</translation>
+<translation id="3999574733850440202">မကြာသေးမီကဖွင့်ထားသော Microsoft ဖိုင်များကို OneDrive သို့ ရွှေ့လိုက်သည်</translation>
 <translation id="4002066346123236978">ခေါင်းစဉ်</translation>
 <translation id="4017788180641807848">Workman ကီးဘုတ်ဖြင့် အင်္ဂလိပ် (ယူအက်စ်)</translation>
 <translation id="4019998208269143058">အမြန်သုံးဖိုင်များတွင် ပင်ထိုးရန်</translation>
@@ -879,6 +882,7 @@
 <translation id="8116072619078571545">ရေခဲရေ</translation>
 <translation id="8128733386027980860">Dvorak ကီးဘုတ်ဖြင့် အင်္ဂလိပ် (ယူအက်စ်)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" ကို သင့်အား မျှဝေပေးခဲ့သည်။ သင်သည် ၎င်းကို မပိုင်ဆိုင်၍ ၎င်းကို သင် မဖျက်နိုင်ပါ။</translation>
+<translation id="8138705869659070104">စက်စနစ်ထည့်သွင်းပြီးနောက် စသုံးရန်</translation>
 <translation id="813913629614996137">စတင်နေသည်…</translation>
 <translation id="8147028810663464959">စာလုံးအကျယ် ပြည့်သွားပြီ</translation>
 <translation id="8151638057146502721">ပြုပြင်</translation>
@@ -904,6 +908,7 @@
 <translation id="8300849813060516376">OTASP မအောင်မြင်ပါ</translation>
 <translation id="8312871300878166382">ဖိုင်တွဲထဲသို့ ကူးထည့်ရန်</translation>
 <translation id="8329978297633540474">ရိုးရိုး စာသား</translation>
+<translation id="8332007959299458842">မကြာသေးမီကဖွင့်ထားသော Microsoft ဖိုင်များကို Google Drive သို့ ရွှေ့လိုက်သည်</translation>
 <translation id="8335587457941836791">စင် ပေါ်မှ ထုတ်ပစ်ရန်</translation>
 <translation id="8335837413233998004">ဘီလာရုစ်</translation>
 <translation id="8336153091935557858">မနေ့က <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
index 87f8beb..ded938d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">अर्को</translation>
 <translation id="1209796539517632982">स्वचालित नाम सर्भरहरू</translation>
 <translation id="1210831758834677569">लाओ</translation>
+<translation id="1221555006497674479">भण्डारणमा खाली ठाउँ कम छ। तपाईंको <ph name="TOTAL_SPACE" /> साझा ड्राइभमा भएको भण्डारणमध्ये <ph name="REMAINING_PERCENTAGE" />% ठाउँ खाली छ।</translation>
 <translation id="1243314992276662751">अपलोड गर्नुहोस्</translation>
 <translation id="1249250836236328755">विधा</translation>
 <translation id="1254593899333212300">प्रत्यक्ष इन्टरनेट जडान</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">चिनियाँ पिनयिन</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> वटा फाइल अफलाइन उपलब्ध गराइँदै छन्</translation>
 <translation id="164969095109328410">Chrome यन्त्र</translation>
+<translation id="1661207570040737402">तपाईंले आफ्नो Google Workspace को साझा ड्राइभमा भएको भण्डारण पूरै प्रयोग गरिसक्नुभएको छ।</translation>
 <translation id="1661867754829461514">पिन छुटिरहेको छ</translation>
 <translation id="166439687370499867">साझा गरिएको नेटवर्कको कन्फिगरेसनहरू परिवर्तन गर्न अनुमति छैन</translation>
 <translation id="1665611772925418501">फाइल परिमार्जन गर्न सकिएन।</translation>
@@ -879,6 +881,7 @@
 <translation id="8116072619078571545">बरफजस्तो चिसो पानी</translation>
 <translation id="8128733386027980860">अङ्ग्रेजी (संयुक्त अधिराज्य) ड्भोराक किबोर्ड</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" तपाईंसँग साझा गरिएको छ। तपाईंले यसलाई मेटाउन सक्नुहुन्न किनकी यसमा तपाईंको स्वामित्व छैन।</translation>
+<translation id="8138705869659070104">डिभाइस सेटअप गरेपछि एक्टिभेट गर्नुहोस्</translation>
 <translation id="813913629614996137">सुरुवात गर्दै...</translation>
 <translation id="8147028810663464959">वर्णको चौडाइ पूर्ण छ</translation>
 <translation id="8151638057146502721">विन्यास गर्नुहोस्</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_nl.xtb b/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
index 539b06f..9c3f52e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Volgende</translation>
 <translation id="1209796539517632982">Automatische naamservers</translation>
 <translation id="1210831758834677569">Lao</translation>
+<translation id="1221555006497674479">Weinig opslagruimte, nog <ph name="REMAINING_PERCENTAGE" />% over van je <ph name="TOTAL_SPACE" /> aan gedeelde Drive-opslag.</translation>
 <translation id="1243314992276662751">Uploaden</translation>
 <translation id="1249250836236328755">Genre</translation>
 <translation id="1254593899333212300">Rechtstreekse internetverbinding</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Chinees (Pinyin)</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> bestanden offline beschikbaar maken</translation>
 <translation id="164969095109328410">Chrome-apparaat</translation>
+<translation id="1661207570040737402">Je hebt geen Google Workspace-opslag meer over in je gedeelde Drive.</translation>
 <translation id="1661867754829461514">Pincode ontbreekt</translation>
 <translation id="166439687370499867">Het wijzigen van gedeelde netwerkconfiguraties is niet toegestaan</translation>
 <translation id="1665611772925418501">Het bestand kan niet worden aangepast.</translation>
@@ -881,6 +883,7 @@
 <translation id="8116072619078571545">IJswater</translation>
 <translation id="8128733386027980860">Engels (VK) met Dvorak-toetsenbord</translation>
 <translation id="8137331602592933310">'<ph name="FILENAME" />' is met je gedeeld. Je kunt dit niet verwijderen omdat jij niet de eigenaar bent.</translation>
+<translation id="8138705869659070104">Activeren na apparaatinstelling</translation>
 <translation id="813913629614996137">Starten...</translation>
 <translation id="8147028810663464959">Karakterbreedte: volledig (vol)</translation>
 <translation id="8151638057146502721">Configureren</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_no.xtb b/ui/chromeos/translations/ui_chromeos_strings_no.xtb
index b78f39c..86ac5ec 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_no.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_no.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Neste</translation>
 <translation id="1209796539517632982">Automatiske navnetjenere</translation>
 <translation id="1210831758834677569">Lao</translation>
+<translation id="1221555006497674479">Lite lagringsplass – det er <ph name="REMAINING_PERCENTAGE" /> % igjen av den delte lagringsplassen din på <ph name="TOTAL_SPACE" />.</translation>
 <translation id="1243314992276662751">Last opp</translation>
 <translation id="1249250836236328755">Sjanger</translation>
 <translation id="1254593899333212300">Direkte internettilkobling</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Kinesisk pinyin</translation>
 <translation id="1646019627374511909">Gjør <ph name="NUMBER_OF_ITEMS" /> filer tilgjengelige uten nett</translation>
 <translation id="164969095109328410">Chrome-enhet</translation>
+<translation id="1661207570040737402">Du har brukt all lagringsplassen din på den delte disken i Google Workspace.</translation>
 <translation id="1661867754829461514">Personlig kode mangler</translation>
 <translation id="166439687370499867">Det er ikke tillatt å endre delte nettverkskonfigurasjoner</translation>
 <translation id="1665611772925418501">Kunne ikke endre filen.</translation>
@@ -881,6 +883,7 @@
 <translation id="8116072619078571545">Isvann</translation>
 <translation id="8128733386027980860">Engelsk (Storbritannia) med Dvorak-tastatur</translation>
 <translation id="8137331602592933310">«<ph name="FILENAME" />» er delt med deg. Du kan ikke slette filen fordi du ikke eier den.</translation>
+<translation id="8138705869659070104">Aktiver etter enhetsoppsett</translation>
 <translation id="813913629614996137">Initialiserer …</translation>
 <translation id="8147028810663464959">Tegnbredden er Full</translation>
 <translation id="8151638057146502721">Konfigurer</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_or.xtb b/ui/chromeos/translations/ui_chromeos_strings_or.xtb
index 5b48a26..bacc7bd2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_or.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_or.xtb
@@ -874,6 +874,7 @@
 <translation id="8116072619078571545">ଥଣ୍ଡା ପାଣି</translation>
 <translation id="8128733386027980860">ଡିଭୋରାକ୍ କୀବୋର୍ଡ ସହ ଇଂରାଜୀ (UK)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" ଆପଣଙ୍କ ସହ ସେୟାର୍ ହୋଇଛି। ଆପଣଙ୍କ ପାଖରେ ଏହା ନଥିବାରୁ ଆପଣ ଏହାକୁ ଡିଲିଟ୍ କରିପାରିବେ ନାହିଁ।</translation>
+<translation id="8138705869659070104">ଡିଭାଇସ ସେଟଅପ ପରେ ସକ୍ରିୟ କର</translation>
 <translation id="813913629614996137">ଆରମ୍ଭ କରୁଛି…</translation>
 <translation id="8147028810663464959">କେରେକ୍ଟରର ଚଉଡ଼ା ପୂର୍ଣ୍ଣ ଅଛି</translation>
 <translation id="8151638057146502721">କନ୍‍ଫିଗର୍ କରନ୍ତୁ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pa.xtb b/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
index ba7ab27..4f87dd1 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
@@ -879,6 +879,7 @@
 <translation id="8116072619078571545">ਠੰਡਾ ਪਾਣੀ</translation>
 <translation id="8128733386027980860">ਡੀਵੋਰਯੈਕ ਕੀ-ਬੋਰਡ ਦੇ ਨਾਲ ਅੰਗਰੇਜ਼ੀ (ਯੂ.ਕੇ.)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" ਤੁਹਾਡੇ ਨਾਲ ਸ਼ੇਅਰ ਕੀਤੀ ਗਈ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ ਮਿਟਾ ਨਹੀਂ ਸਕਦੇ ਕਿਉਂਕਿ ਇਹ ਤੁਹਾਡੀ ਨਹੀਂ ਹੈ।</translation>
+<translation id="8138705869659070104">ਡੀਵਾਈਸ ਸੈੱਟਅੱਪ ਤੋਂ ਬਾਅਦ ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ</translation>
 <translation id="813913629614996137">ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...</translation>
 <translation id="8147028810663464959">ਅੱਖਰ-ਚਿੰਨ੍ਹ ਦੀ ਚੌੜਾਈ ਪੂਰੀ ਹੈ</translation>
 <translation id="8151638057146502721">ਸੰਰੂਪਿਤ ਕਰੋ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pl.xtb b/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
index 12662a88..2338b47 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
@@ -882,6 +882,7 @@
 <translation id="8116072619078571545">Woda z lodem</translation>
 <translation id="8128733386027980860">Angielski (Wielka Brytania) z klawiaturą Dvoraka</translation>
 <translation id="8137331602592933310">Plik „<ph name="FILENAME" />” został Ci udostępniony. Nie możesz go usunąć, ponieważ nie jesteś jego właścicielem.</translation>
+<translation id="8138705869659070104">Aktywuj po konfiguracji urządzenia</translation>
 <translation id="813913629614996137">Inicjuję…</translation>
 <translation id="8147028810663464959">Szerokość znaków: pełna</translation>
 <translation id="8151638057146502721">Konfiguruj</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
index 307a864..d9201384 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Próxima</translation>
 <translation id="1209796539517632982">Servidores de nome automáticos</translation>
 <translation id="1210831758834677569">Laosiano</translation>
+<translation id="1221555006497674479">Pouco armazenamento: <ph name="REMAINING_PERCENTAGE" />% restante do seu armazenamento no drive compartilhado de <ph name="TOTAL_SPACE" />.</translation>
 <translation id="1243314992276662751">Fazer upload</translation>
 <translation id="1249250836236328755">Gênero</translation>
 <translation id="1254593899333212300">Conexão direta à Internet</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Chinês (pinyin)</translation>
 <translation id="1646019627374511909">Disponibilizando <ph name="NUMBER_OF_ITEMS" /> arquivos off-line</translation>
 <translation id="164969095109328410">Dispositivo Chrome</translation>
+<translation id="1661207570040737402">Você usou todo o armazenamento no drive compartilhado do Google Workspace.</translation>
 <translation id="1661867754829461514">PIN ausente</translation>
 <translation id="166439687370499867">A alteração das configurações de rede compartilhada não é permitida</translation>
 <translation id="1665611772925418501">Não foi possível modificar o arquivo.</translation>
@@ -354,6 +356,7 @@
 <translation id="3971140002794351170">Download do perfil móvel. Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">Inglês (Reino Unido)</translation>
 <translation id="3975895378829046965">Bengali (fonético)</translation>
+<translation id="3999574733850440202">Os arquivos da Microsoft abertos recentemente foram movidos para o OneDrive</translation>
 <translation id="4002066346123236978">Título</translation>
 <translation id="4017788180641807848">Inglês (EUA) com teclado Workman</translation>
 <translation id="4019998208269143058">Fixar nos arquivos de acesso rápido</translation>
@@ -880,6 +883,7 @@
 <translation id="8116072619078571545">Água com gelo</translation>
 <translation id="8128733386027980860">Inglês (Reino Unido) com teclado Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" foi compartilhado com você. Não é possível excluí-lo porque você não é o proprietário dele.</translation>
+<translation id="8138705869659070104">Ativar após a configuração do dispositivo</translation>
 <translation id="813913629614996137">Inicializando…</translation>
 <translation id="8147028810663464959">A largura de caractere é inteira</translation>
 <translation id="8151638057146502721">Configurar</translation>
@@ -905,6 +909,7 @@
 <translation id="8300849813060516376">Falha no OTASP</translation>
 <translation id="8312871300878166382">Colar na pasta</translation>
 <translation id="8329978297633540474">Texto sem formatação</translation>
+<translation id="8332007959299458842">Os arquivos da Microsoft abertos recentemente foram movidos para o Google Drive</translation>
 <translation id="8335587457941836791">Desafixar da estante</translation>
 <translation id="8335837413233998004">Bielorrusso</translation>
 <translation id="8336153091935557858">Ontem <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
index aec0de3..8b0c76e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
@@ -883,6 +883,7 @@
 <translation id="8116072619078571545">Água gelada</translation>
 <translation id="8128733386027980860">Inglês (EUA) com teclado Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" foi partilhado consigo. Não o pode eliminar porque não lhe pertence.</translation>
+<translation id="8138705869659070104">Ativar após conf. dispositivo</translation>
 <translation id="813913629614996137">A inicializar...</translation>
 <translation id="8147028810663464959">A largura de carateres é Completa</translation>
 <translation id="8151638057146502721">Configurar</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
index 5958898..a5acbbf 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
@@ -882,6 +882,7 @@
 <translation id="8116072619078571545">Apă cu gheață</translation>
 <translation id="8128733386027980860">Engleză (S.U.A.) cu tastatură Dvorak</translation>
 <translation id="8137331602592933310">V-a fost permis accesul la „<ph name="FILENAME" />”. Nu puteți șterge fișierul, deoarece nu vă aparține.</translation>
+<translation id="8138705869659070104">Activează după configurare</translation>
 <translation id="813913629614996137">Se inițializează...</translation>
 <translation id="8147028810663464959">Lățimea pentru caractere este completă</translation>
 <translation id="8151638057146502721">Configurați</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
index 8bbd5a7..a4de396 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Далее</translation>
 <translation id="1209796539517632982">Автоматические серверы имен</translation>
 <translation id="1210831758834677569">Лаосский</translation>
+<translation id="1221555006497674479">Заканчивается место на общем диске. Свободное пространство: <ph name="REMAINING_PERCENTAGE" /> % от <ph name="TOTAL_SPACE" />.</translation>
 <translation id="1243314992276662751">Загрузить</translation>
 <translation id="1249250836236328755">Жанр</translation>
 <translation id="1254593899333212300">Прямое подключение к Интернету</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Китайский, пиньинь</translation>
 <translation id="1646019627374511909">Скачивание файлов (<ph name="NUMBER_OF_ITEMS" />) для офлайн-доступа…</translation>
 <translation id="164969095109328410">Устройство Chrome</translation>
+<translation id="1661207570040737402">Закончилось место на общем диске Google Workspace.</translation>
 <translation id="1661867754829461514">PIN-код отсутствует</translation>
 <translation id="166439687370499867">Изменять настройки общей сети запрещено</translation>
 <translation id="1665611772925418501">Не удалось изменить файл.</translation>
@@ -354,6 +356,7 @@
 <translation id="3971140002794351170">Скачать мобильный профиль, сеть <ph name="NETWORK_INDEX" /> из <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">Английский (Великобритания)</translation>
 <translation id="3975895378829046965">Бенгальский, фонетический</translation>
+<translation id="3999574733850440202">Недавно открытые файлы Microsoft были перенесены на OneDrive</translation>
 <translation id="4002066346123236978">Название</translation>
 <translation id="4017788180641807848">Английский (США), раскладка Workman</translation>
 <translation id="4019998208269143058">Добавить в Быстрый доступ к файлам</translation>
@@ -880,6 +883,7 @@
 <translation id="8116072619078571545">Вода со льдом</translation>
 <translation id="8128733386027980860">Английский (США), раскладка Дворака</translation>
 <translation id="8137331602592933310">Вы не можете удалить файл "<ph name="FILENAME" />", так как не являетесь его владельцем.</translation>
+<translation id="8138705869659070104">Сначала настройте устройство</translation>
 <translation id="813913629614996137">Инициализация...</translation>
 <translation id="8147028810663464959">Ширина символов – полная</translation>
 <translation id="8151638057146502721">Настроить</translation>
@@ -905,6 +909,7 @@
 <translation id="8300849813060516376">Сбой OTASP</translation>
 <translation id="8312871300878166382">Вставить в папку</translation>
 <translation id="8329978297633540474">Обычный текст</translation>
+<translation id="8332007959299458842">Недавно открытые файлы Microsoft были перенесены на Google Диск</translation>
 <translation id="8335587457941836791">Открепить от панели запуска</translation>
 <translation id="8335837413233998004">Белорусский</translation>
 <translation id="8336153091935557858">Вчера, <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_si.xtb b/ui/chromeos/translations/ui_chromeos_strings_si.xtb
index d3e91b5..e86cd97 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_si.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_si.xtb
@@ -879,6 +879,7 @@
 <translation id="8116072619078571545">අයිස් වතුර</translation>
 <translation id="8128733386027980860">Dvorak යතුරුපුවරුව සමග ඉංග්‍රීසි (එ.රා.)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />"ඔබ සමඟ බෙදාගෙන ඇත.එය ඔබට හිමි නොමැති බැවින් මකාදැමිය නොහැක.</translation>
+<translation id="8138705869659070104">උපාංග පිහිටුවීමෙන් පසුව ස. ක.</translation>
 <translation id="813913629614996137">මුල පුරමින්…</translation>
 <translation id="8147028810663464959">අනුලකුණු පළල පිරී ඇත</translation>
 <translation id="8151638057146502721">වින්‍යාස කරන්න</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sk.xtb b/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
index e59a540..62973c0 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Ďalej</translation>
 <translation id="1209796539517632982">Automatické menné servery</translation>
 <translation id="1210831758834677569">Laoská klávesnica</translation>
+<translation id="1221555006497674479">Nedostatok priestoru, z vášho priestoru na spoločnom disku <ph name="TOTAL_SPACE" /> zostáva <ph name="REMAINING_PERCENTAGE" /> %.</translation>
 <translation id="1243314992276662751">Nahrať</translation>
 <translation id="1249250836236328755">Žáner</translation>
 <translation id="1254593899333212300">Priame pripojenie k Internetu</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Čínska klávesnica Pchin-jin</translation>
 <translation id="1646019627374511909">Súbory (<ph name="NUMBER_OF_ITEMS" />) sa sprístupňujú offline</translation>
 <translation id="164969095109328410">Zariadenie Chrome</translation>
+<translation id="1661207570040737402">Vyčerpali ste celý svoj priestor na spoločnom disku v službe Google Workspace.</translation>
 <translation id="1661867754829461514">Chýba kód PIN</translation>
 <translation id="166439687370499867">Zmena konfigurácií zdieľanej siete nie je povolená</translation>
 <translation id="1665611772925418501">Súbor sa nepodarilo upraviť.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">Voda s ľadom</translation>
 <translation id="8128733386027980860">Anglická (UK) klávesnica s rozložením Dvorak</translation>
 <translation id="8137331602592933310">Bol s vami zdieľaný súbor <ph name="FILENAME" />. Keďže ho nevlastníte, nemôžete ho odstrániť.</translation>
+<translation id="8138705869659070104">Aktivovať po nastavení zar.</translation>
 <translation id="813913629614996137">Prebieha inicializácia...</translation>
 <translation id="8147028810663464959">Šírka znaku je Plná</translation>
 <translation id="8151638057146502721">Konfigurovať</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
index a3a645e4..a44617e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
@@ -883,6 +883,7 @@
 <translation id="8116072619078571545">Voda z ledom</translation>
 <translation id="8128733386027980860">angleščina (VB) s tipkovnico Dvorak</translation>
 <translation id="8137331602592933310">Datoteka »<ph name="FILENAME" />« je v skupni rabi z vami. Ne morete je izbrisati, ker niste njen lastnik.</translation>
+<translation id="8138705869659070104">Aktiv. po nastavitvi naprave</translation>
 <translation id="813913629614996137">Inicializiranje ...</translation>
 <translation id="8147028810663464959">Širina znaka je zapolnjena</translation>
 <translation id="8151638057146502721">Konfiguriraj</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
index 4e51d93..cc059dbc 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
@@ -879,6 +879,7 @@
 <translation id="8116072619078571545">Ujë me akull</translation>
 <translation id="8128733386027980860">Anglisht (MB) me tastierë Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" është ndarë me ty. Nuk mund ta fshish sepse nuk je zotëruesi i saj.</translation>
+<translation id="8138705869659070104">Aktivizoje pas konfigurimit të pajisjes</translation>
 <translation id="813913629614996137">Po fillon...</translation>
 <translation id="8147028810663464959">Gjerësia e karaktereve është e plotë</translation>
 <translation id="8151638057146502721">Konfiguro</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb b/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
index 87f769b7..a110d08 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Dalje</translation>
 <translation id="1209796539517632982">Automatski serveri naziva</translation>
 <translation id="1210831758834677569">laoski</translation>
+<translation id="1221555006497674479">Ostalo vam je još samo <ph name="REMAINING_PERCENTAGE" />% od <ph name="TOTAL_SPACE" /> deljenog prostora na disku.</translation>
 <translation id="1243314992276662751">Otpremi</translation>
 <translation id="1249250836236328755">Žanr</translation>
 <translation id="1254593899333212300">Direktna veza sa internetom</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">kineski pinjin</translation>
 <translation id="1646019627374511909">Omogućava se korišćenje fajlova oflajn (<ph name="NUMBER_OF_ITEMS" />)</translation>
 <translation id="164969095109328410">Chrome uređaj</translation>
+<translation id="1661207570040737402">Iskoristili ste sav Google Workspace memorijski prostor na deljenom disku.</translation>
 <translation id="1661867754829461514">Nedostaje PIN</translation>
 <translation id="166439687370499867">Promena konfiguracije deljene mreže nije dozvoljena</translation>
 <translation id="1665611772925418501">Nije moguće izmeniti datoteku.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">Voda sa ledom</translation>
 <translation id="8128733386027980860">engleski (SAD) sa tastaturom Dvorak</translation>
 <translation id="8137331602592933310">„<ph name="FILENAME" />“ se deli sa vama. Ne možete da je izbrišete jer nije u vašem vlasništvu.</translation>
+<translation id="8138705869659070104">Aktiviraj posle podešavanja</translation>
 <translation id="813913629614996137">Pokreće se…</translation>
 <translation id="8147028810663464959">Širina znakova je puna</translation>
 <translation id="8151638057146502721">Konfiguriši</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sr.xtb b/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
index ccd97be..ea643a7 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Даље</translation>
 <translation id="1209796539517632982">Аутоматски сервери назива</translation>
 <translation id="1210831758834677569">лаоски</translation>
+<translation id="1221555006497674479">Остало вам је још само <ph name="REMAINING_PERCENTAGE" />% од <ph name="TOTAL_SPACE" /> дељеног простора на диску.</translation>
 <translation id="1243314992276662751">Отпреми</translation>
 <translation id="1249250836236328755">Жанр</translation>
 <translation id="1254593899333212300">Директна веза са интернетом</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">кинески пинјин</translation>
 <translation id="1646019627374511909">Омогућава се коришћење фајлова офлајн (<ph name="NUMBER_OF_ITEMS" />)</translation>
 <translation id="164969095109328410">Chrome уређај</translation>
+<translation id="1661207570040737402">Искористили сте сав Google Workspace меморијски простор на дељеном диску.</translation>
 <translation id="1661867754829461514">Недостаје PIN</translation>
 <translation id="166439687370499867">Промена конфигурације дељене мреже није дозвољена</translation>
 <translation id="1665611772925418501">Није могуће изменити датотеку.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">Вода са ледом</translation>
 <translation id="8128733386027980860">енглески (САД) са тастатуром Dvorak</translation>
 <translation id="8137331602592933310">„<ph name="FILENAME" />“ се дели са вама. Не можете да је избришете јер није у вашем власништву.</translation>
+<translation id="8138705869659070104">Активирај после подешавања</translation>
 <translation id="813913629614996137">Покреће се…</translation>
 <translation id="8147028810663464959">Ширина знакова је пуна</translation>
 <translation id="8151638057146502721">Конфигуриши</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
index d2fa415..cc94cf8 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
@@ -354,6 +354,7 @@
 <translation id="3971140002794351170">Ladda ned mobilprofil, Nätverk <ph name="NETWORK_INDEX" /> av <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">engelska (Storbritannien)</translation>
 <translation id="3975895378829046965">bengali, fonetiskt</translation>
+<translation id="3999574733850440202">Nyligen öppnade Microsoft-filer har flyttats till OneDrive</translation>
 <translation id="4002066346123236978">Titel</translation>
 <translation id="4017788180641807848">engelska (USA) med Workman-tangentbord</translation>
 <translation id="4019998208269143058">Fäst i Snabbfiler</translation>
@@ -880,6 +881,7 @@
 <translation id="8116072619078571545">Isvatten</translation>
 <translation id="8128733386027980860">engelska (Förenade kungariket) med Dvorak-tangentbord</translation>
 <translation id="8137331602592933310"><ph name="FILENAME" /> har delats med dig. Du kan inte ta bort det eftersom du inte äger det.</translation>
+<translation id="8138705869659070104">Aktivera efter enhetskonfig.</translation>
 <translation id="813913629614996137">Initierar …</translation>
 <translation id="8147028810663464959">Teckenbredden är full</translation>
 <translation id="8151638057146502721">Konfigurera</translation>
@@ -905,6 +907,7 @@
 <translation id="8300849813060516376">Det gick inte att etablera tjänsten over-the-air.</translation>
 <translation id="8312871300878166382">Klistra in i mapp</translation>
 <translation id="8329978297633540474">Oformaterad text</translation>
+<translation id="8332007959299458842">Nyligen öppnade Microsoft-filer har flyttats till Google Drive</translation>
 <translation id="8335587457941836791">Ta bort från hyllan</translation>
 <translation id="8335837413233998004">belarusiska</translation>
 <translation id="8336153091935557858">Igår kl. <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
index 06fb235b..bf0b7bc 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">Maji ya barafu</translation>
 <translation id="8128733386027980860">Kiingereza (Uingereza) kwenye kibodi ya Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" imeshirikiwa na wewe. Huwezi kuifuta kwa sababu huimiliki.</translation>
+<translation id="8138705869659070104">Washa baada ya kuweka mipangilio ya kifaa</translation>
 <translation id="813913629614996137">Inaanzisha…</translation>
 <translation id="8147028810663464959">Upana wa herufi Umejaa</translation>
 <translation id="8151638057146502721">Sanidi</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
index bb8b41b5..a6bcfa2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -880,6 +880,7 @@
 <translation id="8116072619078571545">குளிர்ந்த நீர்</translation>
 <translation id="8128733386027980860">ஆங்கிலம் (யூகே) - டிவோர்க் கீபோர்டு</translation>
 <translation id="8137331602592933310">உங்களுடன் "<ph name="FILENAME" />" பகிரப்பட்டுள்ளது. உங்களுக்குச் சொந்தமில்லாதது என்பதால் உங்களால் அதை நீக்க முடியாது.</translation>
+<translation id="8138705869659070104">சாதன அமைவிற்குப் பிறகு இயக்கு</translation>
 <translation id="813913629614996137">துவக்குகிறது...</translation>
 <translation id="8147028810663464959">முழுமையான எழுத்துக்களின் அகலம்</translation>
 <translation id="8151638057146502721">உள்ளமை</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
index 95fdcc3..05953470 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
@@ -356,6 +356,7 @@
 <translation id="3971140002794351170"><ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> నుండి <ph name="NETWORK_COUNT" />లో <ph name="NETWORK_INDEX" />వ నెట్‌వర్క్ మొబైల్ ప్రొఫైల్‌ను డౌన్‌లోడ్ చేయండి</translation>
 <translation id="3973925058222872294">ఇంగ్లీష్ (UK)</translation>
 <translation id="3975895378829046965">బంగ్లా ఫొనెటిక్</translation>
+<translation id="3999574733850440202">ఇటీవల తెరిచిన Microsoft ఫైల్స్ OneDriveకు తరలించబడ్డాయి</translation>
 <translation id="4002066346123236978">శీర్షిక</translation>
 <translation id="4017788180641807848">వర్క్‌మాన్ కీబోర్డ్‌తో ఇంగ్లీష్ (US)</translation>
 <translation id="4019998208269143058">క్విక్ ఫైల్స్‌కు పిన్ చేయండి</translation>
@@ -882,6 +883,7 @@
 <translation id="8116072619078571545">చల్లటి నీరు</translation>
 <translation id="8128733386027980860">డ్వోరక్ కీబోర్డ్‌తో ఇంగ్లీష్ (UK)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" మీతో షేర్ చేయబడింది. మీకు ఇది స్వంతం కానందున మీరు దీన్ని తొలగించలేరు.</translation>
+<translation id="8138705869659070104">పరికరాన్ని సెటప్ చేసిన తర్వాత యాక్టివేట్ చేయండి</translation>
 <translation id="813913629614996137">ప్రారంభిస్తోంది...</translation>
 <translation id="8147028810663464959">అక్షరం వెడల్పు నిండింది</translation>
 <translation id="8151638057146502721">కాన్ఫిగర్ చేయి</translation>
@@ -907,6 +909,7 @@
 <translation id="8300849813060516376">OTASP విఫలమైంది</translation>
 <translation id="8312871300878166382">ఫోల్డర్‌లోకి పేస్ట్ చేయండి</translation>
 <translation id="8329978297633540474">సాదా వచనం</translation>
+<translation id="8332007959299458842">ఇటీవల తెరిచిన Microsoft ఫైల్స్ Google Driveకు తరలించబడ్డాయి</translation>
 <translation id="8335587457941836791">అర నుండి అన్‌పిన్ చేయండి</translation>
 <translation id="8335837413233998004">బెలారుసియన్</translation>
 <translation id="8336153091935557858">నిన్న <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_th.xtb b/ui/chromeos/translations/ui_chromeos_strings_th.xtb
index 81b8583..7f5c93f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_th.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_th.xtb
@@ -883,6 +883,7 @@
 <translation id="8116072619078571545">น้ำเย็น</translation>
 <translation id="8128733386027980860">อังกฤษ (สหราชอาณาจักร) ด้วยแป้นพิมพ์ดีโวรัก</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" มีการแชร์กับคุณ คุณไม่สามารถลบออกได้เนื่องจากคุณไม่ใช่เจ้าของ</translation>
+<translation id="8138705869659070104">เปิดใช้งานหลังตั้งค่าอุปกรณ์</translation>
 <translation id="813913629614996137">กำลังเริ่มดำเนินการ...</translation>
 <translation id="8147028810663464959">ความกว้างอักขระเป็นแบบเต็ม</translation>
 <translation id="8151638057146502721">กำหนดค่า</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
index 4b531b92..0c0b5e01 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
@@ -882,6 +882,7 @@
 <translation id="8116072619078571545">Buzlu su</translation>
 <translation id="8128733386027980860">Dvorak klavye ile İngilizce (ABD)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" sizinle paylaşıldı. Sahibi siz olmadığınız için bu dosyayı silemezsiniz.</translation>
+<translation id="8138705869659070104">Cihaz kurulumundan sonra etkinleştirin</translation>
 <translation id="813913629614996137">İlk kullanıma hazırlanıyor...</translation>
 <translation id="8147028810663464959">Karakter genişliği Tam</translation>
 <translation id="8151638057146502721">Yapılandır</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
index 3b15259..7db6a1c6 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">Далі</translation>
 <translation id="1209796539517632982">Імена серверів – автоматично</translation>
 <translation id="1210831758834677569">Лаоська</translation>
+<translation id="1221555006497674479">На спільному диску закінчується місце. Залишилося <ph name="REMAINING_PERCENTAGE" />% з <ph name="TOTAL_SPACE" /> пам’яті.</translation>
 <translation id="1243314992276662751">Завантажити</translation>
 <translation id="1249250836236328755">Жанр</translation>
 <translation id="1254593899333212300">Пряме з'єднання з Інтернетом</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">Китайська, піньїнь</translation>
 <translation id="1646019627374511909">Файли (<ph name="NUMBER_OF_ITEMS" />) завантажуються на пристрій</translation>
 <translation id="164969095109328410">Пристрій Chrome</translation>
+<translation id="1661207570040737402">Спільний диск Google Workspace заповнено.</translation>
 <translation id="1661867754829461514">Відсутній PIN-код</translation>
 <translation id="166439687370499867">Заборонено змінювати налаштування спільної мережі</translation>
 <translation id="1665611772925418501">Файл неможливо змінити.</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">Крижана вода</translation>
 <translation id="8128733386027980860">Англійська (Велика Британія), розкладка Дворака</translation>
 <translation id="8137331602592933310">Вам надали доступ до файлу "<ph name="FILENAME" />". Ви не можете його видалити, оскільки він вам не належить.</translation>
+<translation id="8138705869659070104">Потрібно налаштувати пристрій</translation>
 <translation id="813913629614996137">Ініціалізація...</translation>
 <translation id="8147028810663464959">Ширина символів – повна</translation>
 <translation id="8151638057146502721">Налаштувати</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
index dce03f237..2833b56 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">اگلا</translation>
 <translation id="1209796539517632982">خود کار نام سرورز</translation>
 <translation id="1210831758834677569">لاؤ</translation>
+<translation id="1221555006497674479">اسٹوریج کم ہے، آپ کی <ph name="TOTAL_SPACE" /> مشترکہ ڈرائیو اسٹوریج میں سے <ph name="REMAINING_PERCENTAGE" /> فیصد باقی ہے۔</translation>
 <translation id="1243314992276662751">اپ لوڈ کریں</translation>
 <translation id="1249250836236328755">نوع</translation>
 <translation id="1254593899333212300">براہ راست انٹرنیٹ کنکشن</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">‏چینی Pinyin</translation>
 <translation id="1646019627374511909"><ph name="NUMBER_OF_ITEMS" /> فائلز کو آف لائن دستیاب بنایا جا رہا ہے</translation>
 <translation id="164969095109328410">‏Chrome آلہ</translation>
+<translation id="1661207570040737402">‏آپ نے مشترکہ ڈرائیو کیGoogle Workspace کی اپنی تمام اسٹوریج استعمال کر لی ہے۔</translation>
 <translation id="1661867754829461514">‏PIN غائب ہے</translation>
 <translation id="166439687370499867">اشتراک کردہ نیٹ ورک کنفیگریشنز تبدیل کرنے کی اجازت نہیں ہے</translation>
 <translation id="1665611772925418501">فائل میں ترمیم نہیں کی جا سکی۔</translation>
@@ -879,6 +881,7 @@
 <translation id="8116072619078571545">برف کا پانی</translation>
 <translation id="8128733386027980860">ڈوراک کی بورڈ کے ساتھ انگریزی (برطانیہ)</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" کا آپ کے ساتھ اشتراک کیا گیا ہے۔ آپ اسے حذف نہیں کر سکتے ہیں کیونکہ آپ اس کے مالک نہیں ہیں۔</translation>
+<translation id="8138705869659070104">آلہ سیٹ اپ کرنے کے بعد فعال کریں</translation>
 <translation id="813913629614996137">آغاز کیا جا رہا ہے…</translation>
 <translation id="8147028810663464959">حرف کی چوڑائی پوری ہے</translation>
 <translation id="8151638057146502721">کنفیگر کریں</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
index 02c8754..68f4dc4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
@@ -882,6 +882,7 @@
 <translation id="8116072619078571545">Muzlagan suv</translation>
 <translation id="8128733386027980860">Ingliz (Buyuk Britaniya) va Dvorak klaviaturasi</translation>
 <translation id="8137331602592933310">Siz “<ph name="FILENAME" />” faylini o‘chira olmaysiz, chunki bu fayl sizga tegishli emas.</translation>
+<translation id="8138705869659070104">Qurilma sozlangandan keyin faollashtiriladi</translation>
 <translation id="813913629614996137">Ishga tushirilmoqda...</translation>
 <translation id="8147028810663464959">Toʻliq enli belgilar</translation>
 <translation id="8151638057146502721">Sozlash</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
index 2d3c4abe..d7049a2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
@@ -356,6 +356,7 @@
 <translation id="3971140002794351170">Tải hồ sơ mạng di động xuống, Mạng <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="3973925058222872294">Tiếng Anh (Anh)</translation>
 <translation id="3975895378829046965">Tiếng Bangla (phiên âm)</translation>
+<translation id="3999574733850440202">Các tệp Microsoft mới mở gần đây đã được chuyển sang OneDrive</translation>
 <translation id="4002066346123236978">Tiêu đề</translation>
 <translation id="4017788180641807848">Tiếng Anh (Mỹ) bằng bàn phím Workman</translation>
 <translation id="4019998208269143058">Ghim vào tệp nhanh</translation>
@@ -882,6 +883,7 @@
 <translation id="8116072619078571545">Nước đá</translation>
 <translation id="8128733386027980860">Tiếng Anh (Anh) bằng bàn phím Dvorak</translation>
 <translation id="8137331602592933310">"<ph name="FILENAME" />" đã được chia sẻ với bạn. Bạn không thể xóa tệp vì bạn không sở hữu tệp.</translation>
+<translation id="8138705869659070104">Kích hoạt sau khi thiết lập thiết bị</translation>
 <translation id="813913629614996137">Đang khởi chạy...</translation>
 <translation id="8147028810663464959">Độ rộng ký tự là Đầy đủ</translation>
 <translation id="8151638057146502721">Định cấu hình</translation>
@@ -907,6 +909,7 @@
 <translation id="8300849813060516376">OTASP không thành công</translation>
 <translation id="8312871300878166382">Dán vào thư mục</translation>
 <translation id="8329978297633540474">Văn bản thuần túy</translation>
+<translation id="8332007959299458842">Các tệp Microsoft mới mở gần đây đã được chuyển sang Google Drive</translation>
 <translation id="8335587457941836791">Bỏ ghim khỏi kệ</translation>
 <translation id="8335837413233998004">Tiếng Belarus</translation>
 <translation id="8336153091935557858">Hôm qua <ph name="YESTERDAY_DAYTIME" /></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
index 97786ec..e6621221 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
@@ -876,6 +876,7 @@
 <translation id="8116072619078571545">冰水</translation>
 <translation id="8128733386027980860">英语(英国)Dvorak 键盘</translation>
 <translation id="8137331602592933310">“<ph name="FILENAME" />”是其他人共享给您的。您无法删除该文件,因为您不是它的所有者。</translation>
+<translation id="8138705869659070104">在设备完成设置后启用</translation>
 <translation id="813913629614996137">正在初始化…</translation>
 <translation id="8147028810663464959">字符宽度为全角</translation>
 <translation id="8151638057146502721">配置</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
index bf9f584..691267a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">下一個</translation>
 <translation id="1209796539517632982">自動名稱伺服器</translation>
 <translation id="1210831758834677569">老撾文</translation>
+<translation id="1221555006497674479">儲存空間不足,您的 <ph name="TOTAL_SPACE" /> 共用雲端硬碟儲存空間只剩 <ph name="REMAINING_PERCENTAGE" />% 可用。</translation>
 <translation id="1243314992276662751">上載</translation>
 <translation id="1249250836236328755">類型</translation>
 <translation id="1254593899333212300">直接連線到互聯網</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">中文 (拼音)</translation>
 <translation id="1646019627374511909">正在將 <ph name="NUMBER_OF_ITEMS" /> 個檔案設定為可離線使用</translation>
 <translation id="164969095109328410">Chrome 裝置</translation>
+<translation id="1661207570040737402">您的「Google Workspace 共用雲端硬碟」儲存空間已全數用盡。</translation>
 <translation id="1661867754829461514">找不到 PIN</translation>
 <translation id="166439687370499867">不允許變更共用網絡設定</translation>
 <translation id="1665611772925418501">無法修改檔案。</translation>
@@ -881,6 +883,7 @@
 <translation id="8116072619078571545">冰水</translation>
 <translation id="8128733386027980860">英文 (英國),Dvorak 鍵盤</translation>
 <translation id="8137331602592933310">「<ph name="FILENAME" />」是他人與您共用的項目。您不是這個檔案的擁有者,無法刪除這個檔案。</translation>
+<translation id="8138705869659070104">在裝置完成設定後啟用</translation>
 <translation id="813913629614996137">正在初始化…</translation>
 <translation id="8147028810663464959">字元寬度為全形</translation>
 <translation id="8151638057146502721">設定</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
index bd6eaf6..f94f06f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
@@ -27,6 +27,7 @@
 <translation id="1201402288615127009">繼續</translation>
 <translation id="1209796539517632982">自動名稱伺服器</translation>
 <translation id="1210831758834677569">寮文</translation>
+<translation id="1221555006497674479">儲存空間即將用盡,你的 <ph name="TOTAL_SPACE" /> 共用雲端硬碟儲存空間只剩 <ph name="REMAINING_PERCENTAGE" />% 可用。</translation>
 <translation id="1243314992276662751">上傳</translation>
 <translation id="1249250836236328755">類型</translation>
 <translation id="1254593899333212300">直接連線到網際網路</translation>
@@ -73,6 +74,7 @@
 <translation id="1641780993263690097">中文 (拼音)</translation>
 <translation id="1646019627374511909">正在將 <ph name="NUMBER_OF_ITEMS" /> 個檔案設為可離線存取</translation>
 <translation id="164969095109328410">Chrome 裝置</translation>
+<translation id="1661207570040737402">Google Workspace 共用雲端硬碟儲存空間已用盡。</translation>
 <translation id="1661867754829461514">找不到 PIN</translation>
 <translation id="166439687370499867">不允許變更共用網路設定</translation>
 <translation id="1665611772925418501">無法修改檔案。</translation>
@@ -880,6 +882,7 @@
 <translation id="8116072619078571545">冰水</translation>
 <translation id="8128733386027980860">英文 (英國) 搭配 Dvorak 鍵盤</translation>
 <translation id="8137331602592933310">「<ph name="FILENAME" />」是他人與你共用的項目。你不是這個檔案的擁有者,無法刪除這個檔案。</translation>
+<translation id="8138705869659070104">在裝置完成設定後啟用</translation>
 <translation id="813913629614996137">正在初始化...</translation>
 <translation id="8147028810663464959">字元寬度為全形</translation>
 <translation id="8151638057146502721">設定</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
index c320ff6b..c44d16c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
@@ -879,6 +879,7 @@
 <translation id="8116072619078571545">Amanzi e-ice</translation>
 <translation id="8128733386027980860">English (UK enekhibhodi ye-Dvorak</translation>
 <translation id="8137331602592933310">I-"<ph name="FILENAME" />" yabiwe nawe. Awukwazi ukuyisusa ngoba akuyona eyakho.</translation>
+<translation id="8138705869659070104">Yenza kusebenze ngemva kokusetha idivayisi</translation>
 <translation id="813913629614996137">Iyaqalisa...</translation>
 <translation id="8147028810663464959">Ububanzi bezinhlamvu Bugcwele</translation>
 <translation id="8151638057146502721">Lungiselela</translation>
diff --git a/ui/compositor/test/in_process_context_factory.cc b/ui/compositor/test/in_process_context_factory.cc
index 5d7c358..b975431 100644
--- a/ui/compositor/test/in_process_context_factory.cc
+++ b/ui/compositor/test/in_process_context_factory.cc
@@ -51,7 +51,7 @@
 #include "ui/gl/gl_implementation.h"
 #include "ui/gl/test/gl_surface_test_support.h"
 
-#if BUILDFLAG(IS_APPLE)
+#if BUILDFLAG(IS_MAC)
 #include "ui/accelerated_widget_mac/ca_transaction_observer.h"
 #endif
 
diff --git a/ui/display/fake/fake_display_delegate.cc b/ui/display/fake/fake_display_delegate.cc
index 67d1dc5..67aa477 100644
--- a/ui/display/fake/fake_display_delegate.cc
+++ b/ui/display/fake/fake_display_delegate.cc
@@ -171,6 +171,12 @@
   }
 }
 
+void FakeDisplayDelegate::SetHdcpKeyProp(int64_t display_id,
+                                         const std::string& key,
+                                         SetHdcpKeyPropCallback callback) {
+  std::move(callback).Run(false);
+}
+
 void FakeDisplayDelegate::GetHDCPState(const DisplaySnapshot& output,
                                        GetHDCPStateCallback callback) {
   std::move(callback).Run(false, HDCP_STATE_UNDESIRED,
diff --git a/ui/display/fake/fake_display_delegate.h b/ui/display/fake/fake_display_delegate.h
index 8c0c248a..06423f8 100644
--- a/ui/display/fake/fake_display_delegate.h
+++ b/ui/display/fake/fake_display_delegate.h
@@ -90,6 +90,9 @@
       const std::vector<display::DisplayConfigurationParams>& config_requests,
       ConfigureCallback callback,
       uint32_t modeset_flag) override;
+  void SetHdcpKeyProp(int64_t display_id,
+                      const std::string& key,
+                      SetHdcpKeyPropCallback callback) override;
   void GetHDCPState(const DisplaySnapshot& output,
                     GetHDCPStateCallback callback) override;
   void SetHDCPState(const DisplaySnapshot& output,
diff --git a/ui/display/manager/content_protection_key_manager.cc b/ui/display/manager/content_protection_key_manager.cc
index 9a2d04b..d3cd980 100644
--- a/ui/display/manager/content_protection_key_manager.cc
+++ b/ui/display/manager/content_protection_key_manager.cc
@@ -105,8 +105,11 @@
 }
 
 void ContentProtectionKeyManager::InjectKeyToKernel(int64_t display_id) {
-  // TODO(markyacoub): Replace and truly inject key to kernel.
-  OnKeyInjectedToKernel(display_id, true);
+  DCHECK(native_display_delegate_);
+  native_display_delegate_->SetHdcpKeyProp(
+      display_id, cached_provisioned_key_,
+      base::BindOnce(&ContentProtectionKeyManager::OnKeyInjectedToKernel,
+                     weak_ptr_factory_.GetWeakPtr(), display_id));
 }
 
 void ContentProtectionKeyManager::OnKeyInjectedToKernel(int64_t display_id,
diff --git a/ui/display/manager/content_protection_key_manager.h b/ui/display/manager/content_protection_key_manager.h
index 2a24c5e..d057bea 100644
--- a/ui/display/manager/content_protection_key_manager.h
+++ b/ui/display/manager/content_protection_key_manager.h
@@ -44,6 +44,10 @@
     provisioned_key_request_ = std::move(request);
   }
 
+  void set_native_display_delegate(NativeDisplayDelegate* delegate) {
+    native_display_delegate_ = delegate;
+  }
+
   // Check for the key prop of |displays_states|, request the key by calling
   // |provisioned_key_request_| and inject the key into the kernel if
   // required. When the displays config is done, call |on_key_set|.
@@ -64,6 +68,8 @@
   // change throughout the life of the process.
   std::string cached_provisioned_key_;
 
+  NativeDisplayDelegate* native_display_delegate_ = nullptr;  // Not owned.
+
   base::flat_map<int64_t, KeySetCallback> pending_display_callbacks_;
   base::flat_set<int64_t> displays_pending_set_key_;
 
diff --git a/ui/display/manager/content_protection_key_manager_unittest.cc b/ui/display/manager/content_protection_key_manager_unittest.cc
index 4960f66f8..bfad1e2 100644
--- a/ui/display/manager/content_protection_key_manager_unittest.cc
+++ b/ui/display/manager/content_protection_key_manager_unittest.cc
@@ -11,6 +11,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/display/display_features.h"
 #include "ui/display/fake/fake_display_snapshot.h"
+#include "ui/display/manager/test/test_native_display_delegate.h"
 #include "ui/display/types/display_constants.h"
 
 namespace display::test {
@@ -51,11 +52,16 @@
   ContentProtectionKeyManager key_manager_;
   std::unique_ptr<DisplaySnapshot> display_;
 
+  ActionLogger log_;
+  TestNativeDisplayDelegate native_display_delegate_{&log_};
+
  private:
   void SetUp() override {
     scoped_feature_list_.InitAndEnableFeature(
         features::kRequireHdcpKeyProvisioning);
 
+    key_manager_.set_native_display_delegate(&native_display_delegate_);
+
     display_ = FakeDisplaySnapshot::Builder()
                    .SetId(kDisplayId)
                    .SetType(DISPLAY_CONNECTION_TYPE_DISPLAYPORT)
@@ -71,6 +77,9 @@
   auto on_key_set = base::BindOnce([](bool result) { EXPECT_TRUE(result); });
 
   SetKeyIfRequiredForDisplay(std::move(on_key_set));
+
+  EXPECT_EQ(GetSetHdcpKeyPropAction(kDisplayId, true),
+            log_.GetActionsAndClear());
 }
 
 TEST_F(ContentProtectionKeyManagerTest, TestIfKeyNotSetWhenServerKeyIsEmpty) {
@@ -112,6 +121,9 @@
   auto displays =
       std::vector<DisplaySnapshot*>{display_.get(), other_display.get()};
   key_manager_.SetKeyIfRequired(displays, kDisplayId, std::move(on_key_set));
+
+  EXPECT_EQ(GetSetHdcpKeyPropAction(kDisplayId, true),
+            log_.GetActionsAndClear());
 }
 
 TEST_F(ContentProtectionKeyManagerTest, TestIfKeyNotSetWhenDisplayIsEdp) {
@@ -141,17 +153,27 @@
   SetKeyIfRequiredForDisplay(std::move(on_key_set));
 }
 
-TEST_F(ContentProtectionKeyManagerTest, TesThatKeyIsSetForMultipleDisplays) {
+TEST_F(ContentProtectionKeyManagerTest, TestThatKeyIsSetForMultipleDisplays) {
   SetProvisionedKeyRequest(true);
 
   auto on_key_set = base::BindOnce([](bool result) { EXPECT_TRUE(result); });
-
-  SetKeyIfRequiredForDisplay(std::move(on_key_set));
-
-  on_key_set = base::BindOnce([](bool result) { EXPECT_TRUE(true); });
-
   key_manager_.SetKeyIfRequired(std::vector<DisplaySnapshot*>{display_.get()},
-                                kDisplayId + 1, std::move(on_key_set));
+                                kDisplayId, std::move(on_key_set));
+
+  auto other_display = FakeDisplaySnapshot::Builder()
+                           .SetId(kDisplayId + 1)
+                           .SetType(DISPLAY_CONNECTION_TYPE_DISPLAYPORT)
+                           .SetHasContentProtectionKey(true)
+                           .SetCurrentMode(kDisplayMode.Clone())
+                           .Build();
+  on_key_set = base::BindOnce([](bool result) { EXPECT_TRUE(result); });
+  key_manager_.SetKeyIfRequired(
+      std::vector<DisplaySnapshot*>{other_display.get()}, kDisplayId + 1,
+      std::move(on_key_set));
+
+  EXPECT_EQ(GetSetHdcpKeyPropAction(kDisplayId, true) + "," +
+                GetSetHdcpKeyPropAction(kDisplayId + 1, true),
+            log_.GetActionsAndClear());
 }
 
 TEST_F(ContentProtectionKeyManagerTest,
diff --git a/ui/display/manager/content_protection_manager.h b/ui/display/manager/content_protection_manager.h
index bceb84c..4f7896e 100644
--- a/ui/display/manager/content_protection_manager.h
+++ b/ui/display/manager/content_protection_manager.h
@@ -79,6 +79,7 @@
 
   void set_native_display_delegate(NativeDisplayDelegate* delegate) {
     native_display_delegate_ = delegate;
+    hdcp_key_manager_.set_native_display_delegate(delegate);
   }
 
   using ClientId = absl::optional<uint64_t>;
diff --git a/ui/display/manager/test/action_logger_util.cc b/ui/display/manager/test/action_logger_util.cc
index f2298e2..82f60996 100644
--- a/ui/display/manager/test/action_logger_util.cc
+++ b/ui/display/manager/test/action_logger_util.cc
@@ -36,6 +36,11 @@
                             display_id, state, protection_method);
 }
 
+std::string GetSetHdcpKeyPropAction(int64_t display_id, bool success) {
+  return base::StringPrintf("set_hdcp_key_prop(id=%" PRId64 ",success=%d)",
+                            display_id, success);
+}
+
 std::string SetColorMatrixAction(int64_t display_id,
                                  const std::vector<float>& color_matrix) {
   std::string ctm;
diff --git a/ui/display/manager/test/action_logger_util.h b/ui/display/manager/test/action_logger_util.h
index bd6ec48..3bddd6e 100644
--- a/ui/display/manager/test/action_logger_util.h
+++ b/ui/display/manager/test/action_logger_util.h
@@ -40,6 +40,10 @@
                                   HDCPState state,
                                   ContentProtectionMethod protection_method);
 
+// Returns a string describing a TestNativeDisplayDelegate::SetHdcpKeyProp()
+// call.
+std::string GetSetHdcpKeyPropAction(int64_t display_id, bool success);
+
 // Returns a string describing a TestNativeDisplayDelegate::SetColorMatrix()
 // call.
 std::string SetColorMatrixAction(int64_t display_id,
diff --git a/ui/display/manager/test/test_native_display_delegate.cc b/ui/display/manager/test/test_native_display_delegate.cc
index d6ea87f..62399c4c 100644
--- a/ui/display/manager/test/test_native_display_delegate.cc
+++ b/ui/display/manager/test/test_native_display_delegate.cc
@@ -146,6 +146,20 @@
   }
 }
 
+void TestNativeDisplayDelegate::SetHdcpKeyProp(
+    int64_t display_id,
+    const std::string& key,
+    SetHdcpKeyPropCallback callback) {
+  log_->AppendAction(GetSetHdcpKeyPropAction(display_id, true));
+
+  if (run_async_) {
+    base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
+        FROM_HERE, base::BindOnce(std::move(callback), true));
+  } else {
+    std::move(callback).Run(true);
+  }
+}
+
 void TestNativeDisplayDelegate::GetHDCPState(const DisplaySnapshot& output,
                                              GetHDCPStateCallback callback) {
   if (run_async_) {
diff --git a/ui/display/manager/test/test_native_display_delegate.h b/ui/display/manager/test/test_native_display_delegate.h
index e433f6f..229b4c5 100644
--- a/ui/display/manager/test/test_native_display_delegate.h
+++ b/ui/display/manager/test/test_native_display_delegate.h
@@ -84,6 +84,9 @@
       const std::vector<display::DisplayConfigurationParams>& config_requests,
       ConfigureCallback callback,
       uint32_t modeset_flag) override;
+  void SetHdcpKeyProp(int64_t display_id,
+                      const std::string& key,
+                      SetHdcpKeyPropCallback callback) override;
   void GetHDCPState(const DisplaySnapshot& output,
                     GetHDCPStateCallback callback) override;
   void SetHDCPState(const DisplaySnapshot& output,
diff --git a/ui/display/types/native_display_delegate.h b/ui/display/types/native_display_delegate.h
index c0a012b7..0b669c7 100644
--- a/ui/display/types/native_display_delegate.h
+++ b/ui/display/types/native_display_delegate.h
@@ -25,6 +25,7 @@
 using GetDisplaysCallback =
     base::OnceCallback<void(const std::vector<DisplaySnapshot*>&)>;
 using ConfigureCallback = base::OnceCallback<void(bool)>;
+using SetHdcpKeyPropCallback = base::OnceCallback<void(bool)>;
 using GetHDCPStateCallback =
     base::OnceCallback<void(bool, HDCPState, ContentProtectionMethod)>;
 using SetHDCPStateCallback = base::OnceCallback<void(bool)>;
@@ -62,6 +63,11 @@
       ConfigureCallback callback,
       uint32_t modeset_flag) = 0;
 
+  // Sets the HDCP Key Property.
+  virtual void SetHdcpKeyProp(int64_t display_id,
+                              const std::string& key,
+                              SetHdcpKeyPropCallback callback) = 0;
+
   // Gets HDCP state of output.
   virtual void GetHDCPState(const DisplaySnapshot& output,
                             GetHDCPStateCallback callback) = 0;
diff --git a/ui/ozone/platform/drm/common/drm_wrapper.cc b/ui/ozone/platform/drm/common/drm_wrapper.cc
index 6236fa3..afc9816 100644
--- a/ui/ozone/platform/drm/common/drm_wrapper.cc
+++ b/ui/ozone/platform/drm/common/drm_wrapper.cc
@@ -429,6 +429,24 @@
   return std::make_unique<DrmPropertyBlobMetadata>(this, id);
 }
 
+ScopedDrmPropertyBlob DrmWrapper::CreatePropertyBlobWithFlags(const void* blob,
+                                                              size_t size,
+                                                              uint32_t flags) {
+// TODO(markyacoub): the flag requires being merged to libdrm then backported to
+// CrOS. Remove the #if once that happens.
+#if defined(DRM_MODE_CREATE_BLOB_WRITE_ONLY)
+  uint32_t id = 0;
+  int ret = -1;
+
+  ret = drmModeCreatePropertyBlobWithFlags(file_.GetPlatformFile(), blob, size,
+                                           &id, flags);
+  DCHECK(!ret && id);
+  return std::make_unique<DrmPropertyBlobMetadata>(this, id);
+#else
+  return nullptr;
+#endif
+}
+
 void DrmWrapper::DestroyPropertyBlob(uint32_t id) {
   drmModeDestroyPropertyBlob(drm_fd_.get(), id);
 }
diff --git a/ui/ozone/platform/drm/common/drm_wrapper.h b/ui/ozone/platform/drm/common/drm_wrapper.h
index 4fbe3b4..45b39b65 100644
--- a/ui/ozone/platform/drm/common/drm_wrapper.h
+++ b/ui/ozone/platform/drm/common/drm_wrapper.h
@@ -232,6 +232,11 @@
   // Creates a property blob with data |blob| of size |size|.
   virtual ScopedDrmPropertyBlob CreatePropertyBlob(const void* blob,
                                                    size_t size);
+  // Creates a property blob with |size| for data |blob| which user space
+  // can't read back.
+  virtual ScopedDrmPropertyBlob CreatePropertyBlobWithFlags(const void* blob,
+                                                            size_t size,
+                                                            uint32_t flags);
   virtual void DestroyPropertyBlob(uint32_t id);
 
   // Returns a binary blob associated with |property_id|. May be nullptr if the
diff --git a/ui/ozone/platform/drm/gpu/drm_display.cc b/ui/ozone/platform/drm/gpu/drm_display.cc
index 5c87ef50..82623df 100644
--- a/ui/ozone/platform/drm/gpu/drm_display.cc
+++ b/ui/ozone/platform/drm/gpu/drm_display.cc
@@ -173,6 +173,35 @@
 #endif
 }
 
+bool DrmDisplay::SetHdcpKeyProp(const std::string& key) {
+  DCHECK(connector_);
+
+  TRACE_EVENT1("drm", "DrmDisplay::SetHdcpKeyProp", "connector",
+               connector_->connector_id);
+
+  // The HDCP key is secret, we want to create it as write only so the user
+  // space can't read it back. (i.e. through `modetest`)
+  ScopedDrmPropertyBlob key_blob;
+  // TODO(markyacoub): the flag requires being merged to libdrm then backported
+  // to CrOS. Remove the #if once that happens.
+#if defined(DRM_MODE_CREATE_BLOB_WRITE_ONLY)
+  key_blob = drm_->CreatePropertyBlobWithFlags(key.data(), key.size(),
+                                               DRM_MODE_CREATE_BLOB_WRITE_ONLY);
+#endif
+
+  if (!key_blob) {
+    LOG(ERROR) << "Failed to create HDCP Key property blob";
+    return false;
+  }
+
+  ScopedDrmPropertyPtr hdcp_key_property(
+      drm_->GetProperty(connector_.get(), kContentProtectionKey));
+  DCHECK(hdcp_key_property);
+
+  return drm_->SetProperty(connector_->connector_id, hdcp_key_property->prop_id,
+                           key_blob->id());
+}
+
 // When reading DRM state always check that it's still valid. Any sort of events
 // (such as disconnects) may invalidate the state.
 bool DrmDisplay::GetHDCPState(
diff --git a/ui/ozone/platform/drm/gpu/drm_display.h b/ui/ozone/platform/drm/gpu/drm_display.h
index 56451d9d..52b8ed43 100644
--- a/ui/ozone/platform/drm/gpu/drm_display.h
+++ b/ui/ozone/platform/drm/gpu/drm_display.h
@@ -77,6 +77,7 @@
   void Update(HardwareDisplayControllerInfo* info,
               const display::DisplaySnapshot* display_snapshot);
   void SetOrigin(const gfx::Point origin) { origin_ = origin; }
+  bool SetHdcpKeyProp(const std::string& key);
   bool GetHDCPState(display::HDCPState* state,
                     display::ContentProtectionMethod* protection_method);
   bool SetHDCPState(display::HDCPState state,
diff --git a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc
index a440872..2d85b7f 100644
--- a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc
+++ b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc
@@ -332,6 +332,17 @@
   return config_success;
 }
 
+bool DrmGpuDisplayManager::SetHdcpKeyProp(int64_t display_id,
+                                          const std::string& key) {
+  DrmDisplay* display = FindDisplay(display_id);
+  if (!display) {
+    LOG(ERROR) << "SetHdcpKeyProp: There is no display with ID " << display_id;
+    return false;
+  }
+
+  return display->SetHdcpKeyProp(key);
+}
+
 bool DrmGpuDisplayManager::GetHDCPState(
     int64_t display_id,
     display::HDCPState* state,
diff --git a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h
index a592b36..02fb14c6 100644
--- a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h
+++ b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h
@@ -60,6 +60,7 @@
   bool ConfigureDisplays(
       const std::vector<display::DisplayConfigurationParams>& config_requests,
       uint32_t modeset_flag);
+  bool SetHdcpKeyProp(int64_t display_id, const std::string& key);
   bool GetHDCPState(int64_t display_id,
                     display::HDCPState* state,
                     display::ContentProtectionMethod* protection_method);
diff --git a/ui/ozone/platform/drm/gpu/drm_thread.cc b/ui/ozone/platform/drm/gpu/drm_thread.cc
index 37fb4c6..f9cd4eb 100644
--- a/ui/ozone/platform/drm/gpu/drm_thread.cc
+++ b/ui/ozone/platform/drm/gpu/drm_thread.cc
@@ -434,6 +434,14 @@
   device_manager_->RemoveDrmDevice(path);
 }
 
+void DrmThread::SetHdcpKeyProp(int64_t display_id,
+                               const std::string& key,
+                               SetHdcpKeyPropCallback callback) {
+  TRACE_EVENT0("drm", "DrmThread::SetHdcpKeyProp");
+  bool is_prop_set = display_manager_->SetHdcpKeyProp(display_id, key);
+  std::move(callback).Run(display_id, is_prop_set);
+}
+
 void DrmThread::GetHDCPState(
     int64_t display_id,
     base::OnceCallback<void(int64_t,
diff --git a/ui/ozone/platform/drm/gpu/drm_thread.h b/ui/ozone/platform/drm/gpu/drm_thread.h
index af7bc9e..c027889 100644
--- a/ui/ozone/platform/drm/gpu/drm_thread.h
+++ b/ui/ozone/platform/drm/gpu/drm_thread.h
@@ -161,6 +161,9 @@
       const std::vector<display::DisplayConfigurationParams>& config_requests,
       uint32_t modeset_flag,
       ConfigureNativeDisplaysCallback callback) override;
+  void SetHdcpKeyProp(int64_t display_id,
+                      const std::string& key,
+                      SetHdcpKeyPropCallback callback) override;
   void GetHDCPState(int64_t display_id,
                     base::OnceCallback<void(int64_t,
                                             bool,
diff --git a/ui/ozone/platform/drm/host/drm_display_host.cc b/ui/ozone/platform/drm/host/drm_display_host.cc
index 273bd3f..32297bac 100644
--- a/ui/ozone/platform/drm/host/drm_display_host.cc
+++ b/ui/ozone/platform/drm/host/drm_display_host.cc
@@ -35,6 +35,27 @@
   snapshot_ = std::move(params);
 }
 
+void DrmDisplayHost::SetHdcpKeyProp(const std::string& key,
+                                    display::SetHdcpKeyPropCallback callback) {
+  set_hdcp_key_prop_callback_ = std::move(callback);
+  if (!sender_->GpuSetHdcpKeyProp(snapshot_->display_id(), key)) {
+    OnHdcpKeyPropSetReceived(false);
+  }
+}
+
+void DrmDisplayHost::OnHdcpKeyPropSetReceived(bool success) {
+  if (!set_hdcp_key_prop_callback_.is_null()) {
+    base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
+        FROM_HERE,
+        base::BindOnce(std::move(set_hdcp_key_prop_callback_), success));
+  } else {
+    LOG(ERROR) << "Got unexpected event for display "
+               << snapshot_->display_id();
+  }
+
+  set_hdcp_key_prop_callback_.Reset();
+}
+
 void DrmDisplayHost::GetHDCPState(display::GetHDCPStateCallback callback) {
   get_hdcp_callback_ = std::move(callback);
   if (!sender_->GpuGetHDCPState(snapshot_->display_id()))
diff --git a/ui/ozone/platform/drm/host/drm_display_host.h b/ui/ozone/platform/drm/host/drm_display_host.h
index 398e003..c05a681 100644
--- a/ui/ozone/platform/drm/host/drm_display_host.h
+++ b/ui/ozone/platform/drm/host/drm_display_host.h
@@ -35,6 +35,8 @@
   bool is_dummy() const { return is_dummy_; }
 
   void UpdateDisplaySnapshot(std::unique_ptr<display::DisplaySnapshot> params);
+  void SetHdcpKeyProp(const std::string& key,
+                      display::SetHdcpKeyPropCallback callback);
   void GetHDCPState(display::GetHDCPStateCallback callback);
   void SetHDCPState(display::HDCPState state,
                     display::ContentProtectionMethod protection_method,
@@ -48,6 +50,7 @@
 
   // Called when the IPC from the GPU process arrives to answer the above
   // commands.
+  void OnHdcpKeyPropSetReceived(bool success);
   void OnHDCPStateReceived(bool status,
                            display::HDCPState state,
                            display::ContentProtectionMethod protection_method);
@@ -70,6 +73,7 @@
   // synchronous and succeed.
   bool is_dummy_;
 
+  display::SetHdcpKeyPropCallback set_hdcp_key_prop_callback_;
   display::GetHDCPStateCallback get_hdcp_callback_;
   display::SetHDCPStateCallback set_hdcp_callback_;
 };
diff --git a/ui/ozone/platform/drm/host/drm_display_host_manager.cc b/ui/ozone/platform/drm/host/drm_display_host_manager.cc
index e590382..ecfffb5 100644
--- a/ui/ozone/platform/drm/host/drm_display_host_manager.cc
+++ b/ui/ozone/platform/drm/host/drm_display_host_manager.cc
@@ -594,6 +594,16 @@
   }
 }
 
+void DrmDisplayHostManager::GpuSetHdcpKeyProp(int64_t display_id,
+                                              bool success) {
+  DrmDisplayHost* display = GetDisplay(display_id);
+  if (display) {
+    display->OnHdcpKeyPropSetReceived(success);
+  } else {
+    LOG(ERROR) << "Couldn't find display with id=" << display_id;
+  }
+}
+
 void DrmDisplayHostManager::GpuReceivedHDCPState(
     int64_t display_id,
     bool status,
diff --git a/ui/ozone/platform/drm/host/drm_display_host_manager.h b/ui/ozone/platform/drm/host/drm_display_host_manager.h
index 8cb2020..f9962ae0 100644
--- a/ui/ozone/platform/drm/host/drm_display_host_manager.h
+++ b/ui/ozone/platform/drm/host/drm_display_host_manager.h
@@ -69,6 +69,7 @@
   // Communication-free implementations of actions performed in response to
   // messages from the GPU thread.
   void GpuHasUpdatedNativeDisplays(MovableDisplaySnapshots displays);
+  void GpuSetHdcpKeyProp(int64_t display_id, bool success);
   void GpuReceivedHDCPState(int64_t display_id,
                             bool status,
                             display::HDCPState state,
diff --git a/ui/ozone/platform/drm/host/drm_native_display_delegate.cc b/ui/ozone/platform/drm/host/drm_native_display_delegate.cc
index 222b53d5..aad9cc5 100644
--- a/ui/ozone/platform/drm/host/drm_native_display_delegate.cc
+++ b/ui/ozone/platform/drm/host/drm_native_display_delegate.cc
@@ -58,6 +58,14 @@
                                       modeset_flag);
 }
 
+void DrmNativeDisplayDelegate::SetHdcpKeyProp(
+    int64_t display_id,
+    const std::string& key,
+    display::SetHdcpKeyPropCallback callback) {
+  DrmDisplayHost* display = display_manager_->GetDisplay(display_id);
+  display->SetHdcpKeyProp(key, std::move(callback));
+}
+
 void DrmNativeDisplayDelegate::GetHDCPState(
     const display::DisplaySnapshot& output,
     display::GetHDCPStateCallback callback) {
diff --git a/ui/ozone/platform/drm/host/drm_native_display_delegate.h b/ui/ozone/platform/drm/host/drm_native_display_delegate.h
index b5b0367..b6b6dc9 100644
--- a/ui/ozone/platform/drm/host/drm_native_display_delegate.h
+++ b/ui/ozone/platform/drm/host/drm_native_display_delegate.h
@@ -36,6 +36,9 @@
       const std::vector<display::DisplayConfigurationParams>& config_requests,
       display::ConfigureCallback callback,
       uint32_t modeset_flag) override;
+  void SetHdcpKeyProp(int64_t display_id,
+                      const std::string& key,
+                      display::SetHdcpKeyPropCallback callback) override;
   void GetHDCPState(const display::DisplaySnapshot& output,
                     display::GetHDCPStateCallback callback) override;
   void SetHDCPState(const display::DisplaySnapshot& output,
diff --git a/ui/ozone/platform/drm/host/gpu_thread_adapter.h b/ui/ozone/platform/drm/host/gpu_thread_adapter.h
index a8705ac..a6dce54 100644
--- a/ui/ozone/platform/drm/host/gpu_thread_adapter.h
+++ b/ui/ozone/platform/drm/host/gpu_thread_adapter.h
@@ -53,6 +53,8 @@
       const std::vector<display::DisplayConfigurationParams>& config_requests,
       display::ConfigureCallback callback,
       uint32_t modeset_flag) = 0;
+  virtual bool GpuSetHdcpKeyProp(int64_t display_id,
+                                 const std::string& key) = 0;
   virtual bool GpuGetHDCPState(int64_t display_id) = 0;
   virtual bool GpuSetHDCPState(
       int64_t display_id,
diff --git a/ui/ozone/platform/drm/host/host_drm_device.cc b/ui/ozone/platform/drm/host/host_drm_device.cc
index dfaf948..7d8e915 100644
--- a/ui/ozone/platform/drm/host/host_drm_device.cc
+++ b/ui/ozone/platform/drm/host/host_drm_device.cc
@@ -203,6 +203,20 @@
                                                       std::move(callback));
 }
 
+bool HostDrmDevice::GpuSetHdcpKeyProp(int64_t display_id,
+                                      const std::string& key) {
+  DCHECK_CALLED_ON_VALID_THREAD(on_ui_thread_);
+  if (!IsConnected()) {
+    return false;
+  }
+
+  auto callback =
+      base::BindOnce(&HostDrmDevice::GpuSetHdcpKeyPropCallback, this);
+  drm_device_->SetHdcpKeyProp(display_id, key, std::move(callback));
+
+  return true;
+}
+
 bool HostDrmDevice::GpuGetHDCPState(int64_t display_id) {
   DCHECK_CALLED_ON_VALID_THREAD(on_ui_thread_);
   if (!IsConnected())
@@ -287,6 +301,12 @@
   display_manager_->GpuShouldDisplayEventTriggerConfiguration(should_trigger);
 }
 
+void HostDrmDevice::GpuSetHdcpKeyPropCallback(int64_t display_id,
+                                              bool success) const {
+  DCHECK_CALLED_ON_VALID_THREAD(on_ui_thread_);
+  display_manager_->GpuSetHdcpKeyProp(display_id, success);
+}
+
 void HostDrmDevice::GpuGetHDCPStateCallback(
     int64_t display_id,
     bool success,
diff --git a/ui/ozone/platform/drm/host/host_drm_device.h b/ui/ozone/platform/drm/host/host_drm_device.h
index fc21ca6..d1de42e 100644
--- a/ui/ozone/platform/drm/host/host_drm_device.h
+++ b/ui/ozone/platform/drm/host/host_drm_device.h
@@ -70,6 +70,7 @@
       const std::vector<display::DisplayConfigurationParams>& config_requests,
       display::ConfigureCallback callback,
       uint32_t modeset_flag) override;
+  bool GpuSetHdcpKeyProp(int64_t display_id, const std::string& key) override;
   bool GpuGetHDCPState(int64_t display_id) override;
   bool GpuSetHDCPState(
       int64_t display_id,
@@ -105,6 +106,7 @@
   void GpuRelinquishDisplayControlCallback(bool success) const;
   void GpuShouldDisplayEventTriggerConfigurationCallback(
       bool should_trigger) const;
+  void GpuSetHdcpKeyPropCallback(int64_t display_id, bool success) const;
   void GpuGetHDCPStateCallback(
       int64_t display_id,
       bool success,
diff --git a/ui/ozone/platform/drm/mojom/drm_device.mojom b/ui/ozone/platform/drm/mojom/drm_device.mojom
index 72028af..8aaa8bb0 100644
--- a/ui/ozone/platform/drm/mojom/drm_device.mojom
+++ b/ui/ozone/platform/drm/mojom/drm_device.mojom
@@ -66,6 +66,10 @@
       uint32 modeset_flag) =>
     (bool config_success);
 
+  // Sets the HDCP Key Property in the connector attached to the |display_id|.
+  SetHdcpKeyProp(int64 display_id, string key) =>
+      (int64 display_id, bool success);
+
   // Gets high-definition content protection (HDCP) (DRM as in
   // digital rights management) state.
   GetHDCPState(int64 display_id) =>
diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.h b/ui/views/widget/desktop_aura/desktop_native_widget_aura.h
index f8403279..8df4569 100644
--- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.h
+++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.h
@@ -283,8 +283,7 @@
                    ui::mojom::DragOperation& output_drag_op);
 
   std::unique_ptr<aura::WindowTreeHost> host_;
-  // DanglingUntriaged because it is assigned a DanglingUntriaged pointer.
-  raw_ptr<DesktopWindowTreeHost, DanglingUntriaged> desktop_window_tree_host_;
+  raw_ptr<DesktopWindowTreeHost> desktop_window_tree_host_;
 
   // See class documentation for Widget in widget.h for a note about ownership.
   Widget::InitParams::Ownership ownership_ =
diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
index 85e4bb8..c179c718 100644
--- a/ui/views/widget/widget.h
+++ b/ui/views/widget/widget.h
@@ -369,9 +369,7 @@
     // of the default one.
     // TODO(beng): Figure out if there's a better way to expose this, e.g. get
     // rid of NW subclasses and do this all via message handling.
-    // DanglingUntriaged because it is assigned a DanglingUntriaged pointer.
-    raw_ptr<DesktopWindowTreeHost, DanglingUntriaged> desktop_window_tree_host =
-        nullptr;
+    raw_ptr<DesktopWindowTreeHost> desktop_window_tree_host = nullptr;
 
     // Only used by NativeWidgetAura. Specifies the type of layer for the
     // aura::Window.